Delphi'de arayüzleri kullanma. Delphi'de arayüzlerle çalışmanın özellikleri. Standart arayüz elemanları

Makale, grubumuzun genç geliştiricileri tarafından yazılan programların analiz sonuçlarına dayanarak yazılmıştır.

Anahtarlama bileşenlerinin sırasını doğru şekilde düzenliyoruz

Pek çok kullanıcı, özellikle daha önce DOS'ta çalışmış olanlar, giriş alanları arasında fareyle değil, Tab tuşuyla klavyeyi kullanarak geçiş yapma alışkanlığına sahiptir. Üstelik her alanı fareyle seçmekten çok daha hızlıdır. Bu nedenle anahtarlama bileşenlerinin sırasının doğru ayarlanması gerekir. Bu, hem tüm konteyner bileşenlerinin (paneller, Grup Kutuları ve benzeri) içindeki bileşenler için hem de formda bunlardan birkaçı varsa konteyner bileşenlerinin kendisi için geçerlidir.

Kabın içindeki bileşenlerin geçiş sırası TabOrder özelliği tarafından belirtilir. Etkin hale gelecek ilk bileşen, tüm bileşenler numaralandırılana kadar TabOrder'ın 0'a eşit olduğu, ikincisi 1 vb. olan bileşendir. Ek olarak bileşen, Sekme tuşuyla değiştirildiğinde bileşenin odaklanıp odaklanmayacağını belirten bir TabStop özelliğine sahiptir. Herhangi bir bileşene geçiş yapılmasını yasaklamanız gerekiyorsa, TabStop = false değerini ayarlayın. Bu durumda bu bileşene yalnızca fareyi kullanarak geçiş yapabilirsiniz.

Bir programda belirli bir tuşla geçiş yapmaya alışkın olan kullanıcıların, alışkanlıktan dolayı onu diğerlerinde kullanmaya devam ettiği durumlar vardır. Bu genellikle, giriş alanlarında gezinmek için Enter tuşunun kullanılabileceği 1C kullanıcılarında meydana gelir. Peki, isterlerse programlarımızda onlara böyle bir fırsat veririz. Formun KeyPreview özelliğini true olarak ayarlayın ve bir OnKeyPress olay işleyicisi yazın:

Prosedür TForm1.FormKeyPress(Sender: TObject; var Key: Char);
başlamak
if ord(anahtar)=vk_Return o zaman
Form1.SelectNext(PriemForm.ActiveControl, true, true);
son;

Bu işleyici, Enter tuşuna basıldığında form öğeleri arasında gezinmeyi sağlar. Bu yöntemin düğmelerle çalışmayacağını unutmayın çünkü... Bir düğme üzerinde Enter'a basmak, o düğmenin tıklanmasına neden olurken, Tab'a basmak, giriş odağını geçiş sırasındaki bir sonraki bileşene verir.

Varsayılan düğmeler

Aynı kullanıcılar, uygulama iletişim kutularında kural olarak seçiminizi Enter tuşuyla onaylayabileceğiniz ve Esc tuşuyla iptal edebileceğiniz gerçeğine hızla alışırlar. Programlarımızda onları hayal kırıklığına uğratmayalım, özellikle de yapılması çok kolay olduğundan. Enter'a yanıt veren bir düğme için Varsayılan özelliğini true olarak ayarlayın. Esc'ye yanıt veren düğme için İptal özelliğini true olarak ayarlayın. Bu kadar.

Evet veya hayır

Tüm diyalog kutuları Kullanıcı işlemlerini talep eden en az iki düğme bulunmalıdır: işlemin onaylanması ve işlemin reddedilmesi (Evet/Hayır, Kaydet/İptal vb.). Eylem, pencere başlığındaki [X] düğmesiyle pencere kapatılarak iptal edilebilir. Eylemi onaylamak için tek bir düğmenin olması kabul edilemez ve bunu reddetmek için başlıktaki [X] düğmesinin bulunduğu pencerenin kapatılması gerekiyor veya reddetme olasılığı hiç yok. Bu, kullanıcının kafasını karıştırır ve mantıklı bir soruyu gündeme getirir: nasıl reddedilir?

Ayrıca yukarıda “Varsayılan düğmeler” paragrafında söylenenleri de unutmayın.

Tüm iletişim kutuları ekranın ortasında açılmalıdır

Ortalanmış, tasarım modunda oluşturuldukları yerde değil. Birincisi daha görsel olması, ikincisi ise farklı kullanıcılar için farklı ekran çözünürlüğü sorununu otomatik olarak ortadan kaldırması.

İletişim kutusu kalıcı değilse ve kullanıcının bu penceredeki çalışması sonucunda ana pencerede hemen değişiklikler meydana gelirse (örneğin, bir veri kümesini filtrelemek, grafikleri yeniden çizmek vb.) bir istisna yapılır.

Pencere boyutları ekranın boyutunu aşmamalıdır

Hiçbir durumda. Pencerenin bir kısmının ekranın dışına taşması utanç verici. Bu gereklilik kullanıcının ekran çözünürlüğüne bağlı değildir; “Daha yüksek çözünürlük ayarlasınlar” gibi bahaneler işe yaramıyor.

Pencere elemanlarının doğru şekilde yeniden boyutlandırılması

Pencere yeniden boyutlandırıldığında, pencere büyütüldüğünde ve büyütüldükten sonra pencere geri yüklendiğinde, pencere öğeleri yeniden boyutlandırılmalı veya doğru şekilde hareket etmelidir.

Her şey her zaman görünür

Pencere boyutunun küçültülmesi, pencere öğelerinin kaybolmasına yol açmamalı ve tercihen pencerenin kendi kaydırma çubuklarının (kaydırma çubuklarının) görünmesine yol açmamalıdır. Tüm öğelerin görünür ve erişilebilir olması için minimum pencere boyutlarını sınırlayabilirsiniz. Bileşenleri pencerede tamamı görünecek şekilde yerleştirmek mümkün değilse, bileşenleri gruplara ayırmak için yer işaretlerini (PageControl gibi) kullanabilirsiniz. Ekran çözünürlüğü ile ilgili bahaneleri de göz ardı etmiyoruz.

Her yerde ipucu, her zaman ipucu

Özellikle araç çubuklarındaki (Araç Çubuğu gibi) düğmeler için, şu veya bu düğmeye neden ihtiyaç duyulduğunun her zaman açık olması için ipuçları belirtilmelidir.

Renk tayfı

Formdaki bileşenleri gökkuşağının tüm renklerine boyamamalısınız. Bu durum gözleri yorar ve kullanıcının dikkatini dağıtır. "Harika" görünmüyor. Vurgulama, kullanıcının dikkatini pencerenin belirli bir öğesine veya belirli bir bölümüne çekmek gerektiğinde kullanılır. Örneğin, hatalar içeren renkli kayıtlar açık kırmızı renktedir veya tam tersi, başarılı bir şekilde kontrol edilen kayıtlar açık yeşil renktedir.

Çözüm

Genel olarak programdaki, özel olarak da arayüzdeki kusurları bulmanızı sağlayan çok iyi bir yöntem var. Çok basit: Kendinizi kullanıcının yerinde hayal edin ve yarım saat boyunca onun çalıştığı şekilde çalışmaya çalışın. Kullanıcınızın kapsama alanı içinde olması (örneğin, aynı kuruluşta çalışıyor olması) daha da iyidir. Bu durumda onun yanına ya da daha iyisi onun yerine oturun ve işini yapmaya çalışın. Verileri girin, değiştirin, raporları görüntüleyin vb. Bunu nasıl doğru yapacağınızı bilmiyorsanız kullanıcınıza sorun. Hata ayıklama modunda olduğu gibi aynı türde yalnızca bir veya iki işlem değil, farklı sıralarda 20-30 veya hatta daha fazla farklı işlem yapın. Bir şeyi girmeyi veya yanlış girmeyi unutun ve programın buna nasıl tepki verdiğini görün. Programınızın zayıf yönlerini hızla göreceksiniz.

Makalenin yazarı, üniversitedeki kabul komitesinin çalışmalarını otomatik hale getirdi ve programın tanıtıldığı ilk yılda, kabul komitesinde günde 3-4 saat geçirdi, başvuru sahiplerini kaydettirdi, kişisel verilerini doldurdu ve yayınladı. Sınav geçme raporları. Ve geri kalanı için çalışma zamanı hatalar ve eksiklikler düzeltildi. İnanın bana, gelecek yıl neredeyse hiç sorun kalmayacak. Personel modülünü devreye alırken de aynı şey oldu.

Bu nedenle kullanıcı deneyimini aklınızda bulundurun. Programlarınızla çalışmalarını kolay ve keyifli hale getirin.

Bir ve en güçlüçevre Delphi programlama Delphi'nin "programlama ortamını programlamanıza" olanak tanıyan bir tür metaprogramlamaya izin vermesi sayesinde açık mimarisidir. Bu yaklaşım Delphi'yi yüksek kaliteye dönüştürür yeni seviye uygulama geliştirme sistemleri ve bu ürüne, yaratımın hemen hemen tüm aşamalarını destekleyen ek araçlar yerleştirmenize olanak tanır uygulama sistemleri. IDE (Entegre Geliştirme Ortamı) ile harici araçlar arasındaki bağlantı halkası olan Delphi'de uygulanan açık arayüzler kavramı sayesinde böylesine geniş bir olasılık yelpazesi açılıyor.

Bu makale Delphi'nin açık arayüzlerine ayrılmıştır ve sağladıkları yeteneklere genel bir bakış sunmaktadır. Delphi altı açık arayüz tanımlar: Araç Arayüzü, Tasarım Arayüzü, Uzman Arayüzü, Dosya Arayüzü, Düzenleme Arayüzü ve Sürüm Kontrol Arayüzü. Bu makale çerçevesinde her birinin yeteneklerini ayrıntılı olarak ele almamız ve göstermemiz pek olası değildir. Delphi kaynak metinleri, ele alınan konuları daha iyi anlamanıza yardımcı olacaktır; neyse ki geliştiriciler onlara ayrıntılı yorumlar sunmuşlardır. Genel arayüzleri temsil eden sınıfların bildirimleri...\Delphi\Source\ToolsAPI dizinindeki ilgili modüllerde bulunur. Tasarım Arayüzü (DsgnIntf.pas modülü), özellik editörleri ve bileşen editörleri oluşturmaya yönelik araçlar sağlar.

Özellik ve bileşen düzenleyicileri ayrı bir tartışmaya değer bir konudur; bu nedenle, özellik düzenleyicisinin, ilgili özelliğin değerini değiştirmeye çalışırken Nesne Denetçisinin davranışını kontrol ettiğini ve bileşen düzenleyicinin, ilgili özelliğin değerini değiştirmeye çalışırken etkinleştirildiğini hatırlayalım. çift ​​tıklama forma yerleştirilen bileşenin görüntüsü üzerine farenin sol tuşu. Versiyon Kontrol Arayüzü (VCSIntf.pas modülü), versiyon kontrol sistemleri oluşturmak için tasarlanmıştır. Sürüm 2.0'dan bu yana Delphi, entegre sürüm kontrol sistemi Intersolv PVCS'yi desteklemektedir, dolayısıyla çoğu durumda kendi sisteminizi geliştirmenize gerek yoktur. Bu nedenle Sürüm Kontrol Arayüzünü de dikkate almayacağız. Dosya Arayüzü (FileIntf.pas modülü), IDE'nin çalışma dosya sistemini geçersiz kılmanıza olanak tanır; bu da, dosyaları depolamak için kendi yönteminizi seçmenizi mümkün kılar (örneğin, veritabanı sunucusundaki Not alanlarında). Düzenleme Arayüzü (EditIntf.pas modülü), kodu analiz etmenize ve oluşturmanıza, kod düzenleyici penceresinde imleç konumunu belirlemenize ve değiştirmenize ve ayrıca kaynak metnin sözdizimsel vurgulamasını kontrol etmenize olanak tanıyan kaynak metin arabelleğine erişim sağlar.

Özel sınıflar, forma yerleştirilen bileşenlere (bileşenin türünü tanımlama, üst ve alt bileşenlere referanslar alma, özelliklere erişme, odağı aktarma, silme vb.), formun kendisine ve proje kaynak dosyasına arayüzler sağlar. Arayüzü Düzenle ayrıca bir modülün kaynak metnini değiştirmek, bir formu değiştirmek, bir bileşeni yeniden adlandırmak, bir modülü kaydetmek, yeniden adlandırmak veya silmek, bir proje kaynak dosyasını değiştirmek gibi olaylara tepkiyi belirleyen modüler bildirimcileri tanımlamanıza da olanak tanır. vb. Araç Arayüzü (ToolIntf module.pas), geliştiricilerin Genel bilgi IDE'nin durumu hakkında ve projeleri ve bireysel dosyaları açma, kaydetme ve kapatma, modül oluşturma, mevcut proje hakkında bilgi edinme (modül ve form sayısı, adları vb.), kayıt gibi eylemlerin gerçekleştirilmesi dosya sistemi, bireysel modüllere yönelik arayüzlerin organizasyonu vb. Araç Arayüzü, modüler bildirimcilere ek olarak, dosya ve projelerin açılması/kapanması, bir masaüstü proje dosyasının yüklenmesi ve kaydedilmesi, proje modüllerinin eklenmesi/hariç tutulması, paketlerin kurulması/kaldırılması, bir projenin derlenmesi gibi olaylar hakkında bildirimde bulunan eklenti bildirimcilerini tanımlar. Modüler bildirimcilerden farklı olarak, eklenti bildirimcileri bazı olayların yürütülmesini iptal etmenize olanak tanır.

Ek olarak Araç Arayüzü, Delphi IDE'nin ana menüsüne erişmenin bir yolunu sağlayarak bu menüye ek öğeler yerleştirmenize olanak tanır. Uzman Arayüzü (ExtIntf.pas modülü), IDE'nin işlevselliğini genişletmek için yerleşik yazılım modülleri olan uzmanlar oluşturmanın temelidir. Uzmana örnek olarak, bir veritabanı tablosunun içeriğini görüntülemek ve değiştirmek için bir form oluşturan Delphi Veritabanı Form Sihirbazı verilebilir. Uzman sınıfını tanımladıktan sonra Delphi'nin uzmanımız hakkında "öğrendiğinden" emin olmalıyız. Bunu yapmak için, RegisterLibraryExpert prosedürünü çağırarak ve ona uzman sınıfının bir örneğini parametre olarak ileterek kaydetmeniz gerekir. Örnek olarak, ilgili Delphi menü öğesini seçtiğinizde çalıştığını belirten bir mesaj görüntüleyen esStandard stilinde basit bir uzman oluşturalım. Yukarıdaki tablodan görebileceğiniz gibi, esStandard stili altı yöntemin geçersiz kılınmasını gerektirir:

Uzmanın "harekete geçirilmesi" için, Bileşen/Bileşen Yükle... menü öğesini seçmeniz, Gözat iletişim kutusunda uzmanı içeren modülü (bizim durumumuzda exmpl_01.pas) seçmeniz, Tamam'a tıklamanız ve Tamam'a tıklamanız gerekir. dclusr30.dpk paketini derledikten sonra Delphi ana menüsünde Yardım bölümünde Simple Expert 1 maddesi görünmeli, seçildiğinde “Standart Expert başladı!” bilgi mesajı çıkmalıdır. Delphi'nin uzman menüsü öğesini Yardım bölümüne neden yerleştirdiği bir sır olarak kalıyor. Menü öğesinin Delphi'nin istediğiniz yerde değil de istediği yerde görünmesi hoşunuza gitmiyorsa, aşağıdaki seçenek mümkündür: menü öğesinin otomatik olarak oluşturulmasını ortadan kaldıran eklenti stilinde bir uzman oluşturun ve Araç Arayüzünü kullanarak menü öğesini “manuel olarak” ekleyin. Bu, ana menüdeki yeni öğenin konumunu keyfi bir şekilde ayarlamanıza olanak tanır.

Bir menü öğesi eklemek için, Araç Arayüzünün temeli olan TIToolServices sınıfını ve IDE ana menüsüne ve öğelerine arayüzler uygulayan TIMainMenuIntf, TIMenuItemIntf sınıflarını kullanın. ToolServices sınıfı TIToolServices'in bir örneği, başlatıldığında IDE'nin kendisi tarafından oluşturulur. Delphi ana menüsüne ve öğelerine arayüzler sunma sorumluluğunun tamamen geliştiriciye ait olduğunu lütfen unutmayın. Bu arada, uzmanın işlevsel yükünü biraz karmaşıklaştıralım: Menü öğesini etkinleştirdiğinizde, içinde açılan projenin adı hakkında bir sertifika verecektir. şu an ortamda: Bu örnekte merkezi yer, Delphi IDE'nin ana menüsüne bir menü öğesi ekleyen AddIDEMenuItem işlevi tarafından işgal edilmiştir. Parametre olarak, yeni menü öğesinin metnini, tanımlayıcısını, önüne yeni öğenin eklendiği öğenin tanımlayıcısını, Ctrl tuşuyla birlikte kullanılabilen anahtarın sembolik gösterimini alır. hızlı erişim yeni bir öğeye ve yeni bir öğenin seçimine karşılık gelen bir olay işleyicisine. Görünüm bölümünde Saatler öğesinin önüne yeni bir menü öğesi ekledik.

Şimdi bildirimleri tanıyalım. Projelerin kapanışını/açılışını izleyen ve aktif projenin adını saklayan alanı buna göre ayarlayan bir eklenti bildirimcisi tanımlayalım (önceki örneğe göre değişiklik yapılmayan yöntemlerin uygulanmasını kısa tutmak için atlayacağız): bildirimi uygulamak için, TIAddInNotifier'ın soyundan olan TAddInNotifier sınıfını tanımladık ve FileNotification yöntemini geçersiz kıldık. Eklenti bildirimcisinin yanıt verebileceği bir olay meydana geldiğinde IDE bu yöntemi çağıracaktır (bu tür olayların her biri, TFileNotification türünde karşılık gelen bir sabitle gösterilir). TAddInNotifier sınıfındaki Expert alanı şunları yapmak için kullanılır: geri bildirim bir uzmanla (TAddInNotifier.FileNotification yöntemi). Expert's destroyer'da bildirimcinin kaydı silinir ve bildirimci yok edilir. Şimdi modüler bildirimlerin kullanımını örnekleyelim. Bir proje dosyasını kaydetmenin her eylemiyle ilgili mesajlar yayınlayan bir eklenti uzmanı oluşturalım (kısacalık adına, zaten bildiğimiz yöntemlerin uygulanmasını sunmuyoruz): Bu örnekte, eklenti uzmanı olayları izliyor projelerin açılış/kapanışına karşılık gelir.

Bir proje her açıldığında proje dosyasına karşılık gelen modüler bir bildirim kaydedilir. Uygulama açısından, modüler bildirimciler eklenti bildirimcilerine benzer: TIModuleNotifier'ın soyundan gelen TModuleNotifier sınıfını tanımlarız ve onun Notify ve ComponentRenamed yöntemlerini geçersiz kılarız. IDE, bu modülle ilgili belirli olaylar meydana geldiğinde Notify yöntemini çağırır; Bu yöntemde belirli bir olaya verilen tepki belirlenir. ComponentRenamed yöntemi, modül formundaki bir bileşenin adı değiştirildiğinde çağrılır. Lütfen bu yöntemi kullanmadığımızı ancak onu geçersiz kılmamız gerektiğini unutmayın; aksi takdirde bileşen adı değiştiğinde, temel sınıfın soyut bir yöntemi çağrılacak ve bu da öngörülemeyen sonuçlara yol açacaktır.

Modüler bir bildirimin kaydedilmesi, bir eklenti bildiriminin kaydedilmesine kıyasla biraz daha karmaşık bir işlemdir: önce modül arayüzünü (TIModuleInterface) elde ederiz ve ardından modül arayüzünü kullanarak bildirimi kaydederiz. Proje kapatıldığında modüler bildirimcinin kaydı silinir (yine TIModuleInterface kullanılarak) ve bildirimci yok edilir. Sonuç olarak, imlecin konumunu kod düzenleyici penceresinde nasıl belirleyebileceğinizi göstereceğiz. Uygun menü öğesini seçerken, aktif dosyanın adını ve içindeki imleç konumunu içeren bir mesaj görüntüleyecek bir uzman oluşturalım (yalnızca bu örnek için gerekli olan yöntemlerin uygulanması gösterilmektedir): İmleç konumunu belirlemek için, aşağıdaki arayüz sırasını elde etmeliyiz: modüler arayüz (TIModuleInterface); kod düzenleyici arayüzü (TIEditorInterface); editör penceresindeki modül sunum arayüzü (TIEditView).

Bir uzman menü öğesini seçerken kaynak metin dosyası (*.pas) etkinse, etkin dosyanın adını ve içindeki geçerli imleç konumunu içeren bir mesaj görüntülenir. Etkin dosya bir pas dosyası değilse mesaj yayınlanmaz. Etkin dosyanın adını almak için TIToolServices sınıfının GetCurrentFile yöntemini kullanın. Bu, açık arayüzleri kullanma yolları hakkındaki değerlendirmemizi tamamlıyor. CD-ROM, verilen tüm örneklerin kaynak kodunu içerir. CD-ROM ayrıca, kullanıcının Delphi modüllerinin kaynak metnini işaretlemesine olanak tanıyan bir eklenti uzmanı içeren daha karmaşık ve ayrıntılı bir örnek de içerir. Bookmarks Expert'in kurulumu ve kullanımına ilişkin kısa bir kılavuz bkmrks97.htm dosyasında bulunmaktadır. Bu nedenle, bu makale açık arayüzlere genel bir bakış sunuyor ve bunların kullanımına ilişkin örnekler sunuyor. Bir kez daha tekrarlayalım: Açık arayüzlere yönelik kaynak kodlarının bulunması sayesinde ilginizi çeken detayları kolaylıkla anlayabilirsiniz. Açık arayüzlerin sağladığı çeşitli olanakların size birden fazla cesur ve kullanışlı fikir vereceğini umuyoruz.

sadece sonuç için

Son teslim tarihlerine sıkı sıkıya bağlılık

Şeffaflık

proje uygulaması

hediye olarak teknik destek

1C'de programlama, değişiklikler, istişareler

Nasıl çalışıyoruz?

1. Sorunu telefonda tartışıyoruz. huzurunda uzaktan erişim- bilgisayar ekranınızda gösterin.

2. Proje büyükse işi ruble cinsinden, değilse yaklaşık saat sayısını tahmin ediyoruz.

3. İşi hallederiz.

4. Programınızdaki çalışmayı kabul edersiniz, eksiklikler varsa düzeltiriz.

5. Biz fatura keseriz, siz ödersiniz.

İşin maliyeti

1. Tüm çalışmalar 3 kategoriye ayrılmıştır: danışma, standart konfigürasyonun güncellenmesi, yeni bir raporun geliştirilmesi veya programlanması, işleme, düğme vb.

3. 10 saatten fazla çalışma önceden hazırlanmalıdır. teknik görev açıklama ve işin maliyeti ile. Teknik özellikler üzerinde sizinle mutabakata varıldıktan sonra çalışma başlar.

Teknik Destek

1. Daha önce kabul edilen çalışmalarda 3 ay içerisinde herhangi bir hata bulursanız ücretsiz olarak düzeltiyoruz.

2. Düzenli müşterilerimiz için çalışmalarımızdaki eksiklikleri bir yıl içinde ücretsiz olarak düzeltiyoruz.

İşinizi yönetmek için yazılım.

1C:Enterprise'ı satın alın

Biz resmi satıcı 1C şirketi, bizden çeşitli satın alabilirsiniz yazılım ürünleri ve lisanslar. “Kutu”yu satın almanın yanı sıra, programı kurmanıza, tavsiyelerde bulunmanıza ve temel ayarları yapmanıza da yardımcı olacağız.

  • Muhasebe
  • Mağaza otomasyonu
  • Toptan
  • Kurulum yardımı ve ilk kurulum pakete dahil!
  • Konfigürasyonların müşteri ihtiyaçlarına göre ince ayarlanması, standart konfigürasyonda gerekli fonksiyonların bulunmadığı durumlarda yeni modüller geliştirilmesi.
1c muhasebe 1C: Ticaret Yönetimi 1C: Perakende 1C: Maaş ve Personel Yönetimi
3300 ruble'den. 6700 ruble'den. 3300 ruble'den. 7400 ruble'den.

Sunucu provizyonu.

Sunucu + 1C'nin anında kurulumu.

Sunucu yok mu? Sorun değil, bulutta bir sunucu seçip hızlı bir şekilde kuracağız. Küçük bir ücret karşılığında çok güvenilir bir çözüm elde edersiniz.

  • Kullanılabilirlik 7/24
  • Kendinizinkini saklamanıza gerek yok sistem yöneticisi(tasarruf sunucu maliyetlerinizi karşılayacaktır).
  • 1C'nin sunucuya hızlı kurulumu ve kurulumu, 3 gün içinde zaten tam olarak çalışan bir sisteme sahip olacaksınız.
  • Şuraya taşınabilirsiniz: Yerel sunucuÇözüm tatmin edici değilse.

1C'nizden SMS

Müşterilerinizin promosyon ve indirimlerden haberdar olmasını mı istiyorsunuz? Müşteriler geri dönmüyor mu? Doğrudan 1C'den SMS göndermeyi ayarlayın!

Şirketimiz müşterilerinize doğrudan 1C'den SMS göndermeyi hızlı bir şekilde ayarlayabilecektir. Otomatikleştirilebilecek olaylara örnekler:

  • Satın alma işleminiz için teşekkür ederiz ve bonuslar bir sonraki satın alma işleminden hemen sonra verilir.
  • Doğum günü, diğer önemli günler veya tatiller için hediye olarak karta bonus tahakkuku.
  • Malların depoya ulaştığının bildirilmesi.
  • Hediye bonuslarının sona ermesi.
  • Avans ödemesinin alındığına ve malların rezervasyonuna ilişkin bildirim.
  • Mağaza/ofis yol tarifini içeren adres, telefon numaraları.
  • Ve benzeri.

1C'de kurulum uzmanlarımız veya çalışanlarınız tarafından yapılabilir. Tarifeleri SMS tarifeleri sayfasından görüntüleyebilirsiniz.

  • Garantili SMS teslimatı, yalnızca gönderilen SMS için para tahsil edilir.
  • Her SMS için ayrı fiyatlandırma.
  • Bakiyenizi farklı şekillerde doldurun.
  • Gönderilen tüm SMS'lerin geçmişini istediğiniz zaman görüntüleyin.
  • Mesaj alıcısının telefonundaki dijital numara yerine gönderenin adı.

Nesne yönelimli programlama (OOP), sınıf kavramının yanı sıra, temel arayüz kavramını da sağlar.

Arayüz nedir ve Delphi programlama dilinde onunla çalışmanın özellikleri nelerdir?

Arayüz, bir sınıf veya bileşen (Wikipedia) tarafından sağlanan hizmetleri belirtmek için kullanılan program kodundaki anlamsal ve sözdizimsel bir yapıdır.

Temel olarak bir arayüz, bu arayüzün uyguladığı sınıfla çalışırken kullanılması gereken özelliklerin ve yöntemlerin bir listesini ve bunların imzasını (ad, veri türü, kabul edilen parametreler (prosedürler ve işlevler için), vb.) tanımlar. Bu nedenle, belirli bir arayüzü uygulayan bir sınıfın tüm bileşenlerini uygulaması gerekir. Üstelik, içinde tanımlanma biçimlerine tam olarak uygun olarak.

Arayüzler sıklıkla soyut sınıflarla karşılaştırılır ancak tüm benzerliklere rağmen bu karşılaştırma tamamen doğru değildir. En azından soyut sınıflar üyelerin görünürlüğünü kontrol etmenize olanak tanır. Aynı zamanda arayüzler için kapsamlar tanımlanmamıştır.

Arayüzler, şu veya bu işlevselliğe erişimi birleştirdikleri için mimariyi daha esnek hale getirmenize olanak tanır ve ayrıca sınıf mirasıyla ilişkili bir takım sorunlardan kaçınmanıza olanak tanır (arayüzler ayrıca birbirlerinden miras alınabilir).

Delphi'de bir arayüz bildirmek için arayüz anahtar sözcüğünü kullanın. Bu, modülün dışarıdan erişilebilen bölümünü (arayüz ve uygulama anahtar kelimeleri arasında) tanımlayan anahtar kelimenin aynısıdır. Ancak bir arayüz bildirilirken, sınıfların bildirilmesine benzer şekilde farklı bir sözdizimi kullanılır.

Delphi/Pascal

IMyNewInterface = arayüz prosedürü InterfaceProc; son;

IMyNewInterface =arayüz

prosedür ArayüzProc ;

son ;

Bu nedenle, arayüz bildirimi sözdiziminin kendisi temel olarak diğer programlama dillerinden farklı değildir (Pascal'a dayalı sözdiziminin özellikleri sayılmaz). Aynı zamanda arayüzlerin uygulanmasının bir takım karakteristik özellikleri vardır.

Gerçek şu ki Delphi arayüzleri başlangıçta COM teknolojisini desteklemek için tanıtıldı. Bu nedenle, Delphi'de diğer tüm arayüzlerin atası olan IInterface arayüzü (bir tür TObject analoğu), bu teknolojiyle çalışmak için zaten üç temel yöntem içerir: QueryInterface, _AddRef, _Release. Sonuç olarak, eğer bir sınıf herhangi bir arayüzü uyguluyorsa bu yöntemleri de uygulamalıdır. Bu sınıf COM çalışması için tasarlanmasa bile.

IInterface arayüzünün bu özelliği nedeniyle Delphi'de arayüzlerin kullanımı çoğu durumda sınıfa açıkça kullanılmayan yeteneklerin eklenmesine yol açar.

Bu yöntemlerin uygulanmasını zaten içeren bir TInterfaceObject kütüphane sınıfı vardır ve ondan miras alırken bunları kendiniz uygulamaya gerek yoktur. Ancak Delphi çoklu sınıf kalıtımını desteklemediğinden, kullanımı genellikle zaten gerekli olan işlevselliğin tasarlanması ve uygulanmasında yalnızca ek zorluklara neden olur.

Bütün bunlar, arayüzlerin sağladığı tüm olanaklara rağmen, bunların pratik kullanım Delphi'de neredeyse hiçbir şey COM ile çalışmanın ötesine geçemedi.

Esas olarak bu teknolojiyle çalışacak şekilde optimize edilen arayüzler, daha doğrusu zorunlu olarak ekledikleri işlevsellik ve mimari kısıtlamalar, diğer sorunları çözerken kendilerini haklı çıkarmaz.

Bu nedenle birçok Delphi programcısı aslında uygulama mimarisini geliştirmeye yönelik güçlü ve esnek bir araçtan hâlâ yoksundur.

Yaratılış arayüz Kullanıcı, programın çalışması için gerekli olan bileşenler paletinden seçim yapmak zorunda kalır Delphi bileşenleri, çalışanlar arayüz yönetimin yanı sıra arayüz bilgilerin görüntülenmesi ve sonraki düzen ile Forma aktarılması.

Oluşturduğunuz kullanıcı arayüzü, kullanıcıların aşina olduğu standart unsurları kullanmalı ve maksimum kolaylık sağlamalıdır. Bütün bunlar sonuçta arayüzün etkinliği gibi bir kriterle belirlenir - minimum çabayla maksimum sonuçlar.
Kullanıcı dostu bir arayüz oluşturmanın ilkeleri bilinmektedir. Oluştururken en genel ilkeler olarak Kullanıcı arayüzleriÜç ana nokta dikkate alınabilir:

  1. Program bir görevin tamamlanmasına yardımcı olmalı ve o göreve dönüşmemelidir.
  2. Programla çalışırken kullanıcı kendini aptal gibi hissetmemelidir.
  3. Program, kullanıcının bilgisayarı aptal olarak görmemesini sağlayacak şekilde çalışmalıdır.
İlk prensip- bu, arayüzün sözde "şeffaflığıdır". Kullanıcı arayüzü sezgisel olmalı, öğrenmesi kolay olmalı ve kullanıcı için çalışma süreci boyunca üstesinden gelmek zorunda kalacağı sorunlar yaratmamalıdır. Gereksiz süslemeler olmadan standart bileşenleri kullanın, benzer programlar tarafından kullanılan tanıdık kontrol tekniklerini kullanın; performans kriterlerini elde edeceksiniz ilk prensip.

İkinci prensip kullanıcıların entelektüel yeteneklerini ihmal etmektir. Kendi deneyimlerime dayanarak, kullanıcıların çoğu zaman bilgisayarda nasıl çalışacaklarını bilmediklerini, aynı zamanda kendi başlarına herhangi bir şey yapmaktan korktuklarını biliyorum. Bu nedenle kullanıcı arayüzü mümkün olduğunca kullanıcı dostu olmalıdır.
Dahası, kullanıcıların korkuları çoğu zaman haklıdır, çünkü programın ve hatta bilgisayarın maliyeti, örneğin uzun yıllar süren çabalarla oluşturulan bir veritabanının maliyetiyle karşılaştırılamaz. Bu nedenle, bir kullanıcı arayüzü oluştururken, programcının her zaman programa yanlış eylemlere ve kullanıcının yanlış veri girişine karşı "kusursuz koruma" oluşturması gerekir. Ancak bazı programcılar bu tür bir korumaya kendilerini fazla kaptırırlar, onu çok müdahaleci hale getirirler ve sonuç olarak programın işleyişi ünlü "bir adım sola, sağa bir adım kaçış olarak kabul edilir" işlemine benzer! Ve programcının bir soruna çözüm olarak yarattığı şey, kendisi de sorun yaratmaya başlar.
Uyum sağlamak ikinci prensip programın kullanıcının eylemlerini "düzeltmesine" ve tam olarak nasıl davranması gerektiğini göstererek onu dar bir çerçeveye zorlamasına izin vermeye gerek yoktur. Ayrıca, kullanıcının dikkatini işten uzaklaştıracağından, bilgilendirici istem mesajlarını, özellikle diyalog mesajlarını görüntülemeye fazla kapılmamalısınız. İpuçlarını tamamen devre dışı bırakma olanağı sağlamak daha iyi olurdu.

Üçüncü prensip mümkün olan en yüksek "zihinsel" yeteneklere sahip bir program yaratmaktır. Hızlı gelişmeye rağmen bilgisayar ekipmanı Yaygın olarak kullanılan programların bile ancak çok şartlı olarak yapay zekaya sahip olduğu söylenebilir. En basit durumlarda bile kafa karışıklığına neden olan aptalca sorular içeren iletişim kutuları görüntüleyerek kullanıcının çalışmasına müdahale ederler. Sonuç olarak kullanıcılar yüreklerinden haykırıyor: "Ne aptal bir makine!"
Kişisel olarak neredeyse herkesin sürekli sorduğu sorulardan rahatsız oluyorum metin editörleri Orijinal ve mevcut metin herhangi bir sembol açısından farklılık göstermese de, değiştirilen metnin kaydedilip kaydedilmeyeceği hakkında. Evet, bir şeyler yazdım ama sonra her şeyi geri verdim, bunu anlamak gerçekten imkansız mı? Sonuçta hiçbir şeyi mahvetmediğimi kontrol etmem gerekiyor.

Aşağıdaki kurallara uymaya çalışın:

Standart arayüz elemanları
Bu arayüz öğesi için standart olan bileşenleri kullanın. Programınızla karşılaşan kullanıcı, birbirini tanımak için zaman kaybetmeyecek, ancak hemen çalışmaya başlayacaktır - bu, profesyonelce hazırlanmış bir programın işaretlerinden biridir.
Küçük araç paleti
Çok fazla farklı bileşen kullanmamaya çalışın. Ve doğal olarak, bir standart bileşeni bir yerde kullanmışsanız, onu benzer bir durumda da kullanın.
Kontroller arasında eşit aralık
Arayüz elemanlarını birbirinden aynı mesafeye yerleştirin. Rastgele dağılmış bileşenler, profesyonelce yapılmamış bir ürün hissi yaratıyor. Ve tam tersi, arayüzü oluşturan düğmelerin, anahtarların, onay kutularının ve diğer bileşenlerin Form üzerindeki dikkatlice doğrulanmış yerleşimi, yüksek kaliteli çalışmanın bir işaretidir.
Sekme emri. "Doğru sipariş
Sekme emri bir tuşa basıldığında ekran imlecinin kontroller arasında hareket etme sırasıdır Sekme. Düzgün yazılmış bir programda imleç, kullanıcının programla çalışmasının mantığını takip ederek hareket eder. Bir program oluştururken, programcı sıklıkla bileşenleri değiştirir, bazılarını kaldırır ve gerektiğinde diğerlerini ekler. Sonuç olarak, biten programda imleç Form üzerinde düzensiz bir şekilde atlar. Programı tamamladıktan sonra yapılandırmayı unutmayın. Sekme emri.
Yazı tipi seçimi
Yazı tiplerini yalnız bırakın. Delphi'nin varsayılan yazı tipleri, programınızın çalışabileceği her sistem için uygundur. Kalın yazı tipini yalnızca önemli öğeleri vurgulamak için kullanın. Başvuru italik ve özellikle altını çizme Kullanıcının köprü zannettiği kötü bir biçimdir.
Renk seçimi
Arayüz elemanlarının renklerine gelince, tıpkı yazı tiplerinde olduğu gibi, bunları varsayılan olarak standart bırakmak daha iyidir. Delphi, Windows sistem paletini kullanır ve kullanıcı, renkleri değiştirerek kolayca özelleştirebilir.
Alternatif yönetim
Profesyonelce yapılmış bir program sadece fare ile değil klavye ile de kontrol edilebilmelidir. Yalnızca fare ile gerçekleştirilebilecek işlevler (fare ile çizim) olmamalıdır. grafik editörleri sayılmaz!). En çok kullanılan işlevlere hızlı erişim için "kısayol tuşları" sağlamalısınız.
Arayüz tuğlaları
Kullanıcı arayüzünün belirli öğelerine gelince, kullanıcının programla etkileşiminin kalitesi aşağıdakilere bağlıdır:
  • kontrol elemanının gerçekleştirdiği göreve uygunluğu;
  • Kontrol elemanının çalıştığı kurallar.
    Bu sayfada bazı arayüz öğeleri oluşturmaya ilişkin kurallar tartışılmaktadır.
Şimdi Delphi'nin Formdaki bileşenleri yönetmek için hangi araçları sunduğunu, bunların göreceli konumlarını ve bir tuşa basıldığında imleç davranışlarını göstermek istiyorum. Sekme.

Bileşenleri birbirine göre doğru sırada düzenlemek için öncelikle bunları vurgulamak lazım. Formda seçilen bileşenleri içeren alanı daire içine almanız yeterlidir. Veya "tutarak Vardiya", seçilecek her bir bileşeni belirtmek için aynı fareyi kullanın. Seçilen bileşenin üzerine fareyi tekrar tıklayın (" tuşuna basarken) Vardiya") seçimini kaldırır.

Seçilen bileşenler tek bir bütün olarak yönetilebilir - Form çevresinde hareket ettirilebilir, aynı özelliklere değerler atanabilir, kopyalanabilir (örneğin kurulum için başka bir Form'a), hatta silinebilir.

Şimdi bileşenlerden birine sağ tıklayın ve açılır menüden seçim yapın Konum -> Hizala... Gruptaki bileşenlerin yatay ve dikey konumunu ayarlamanıza olanak tanıyan bir iletişim kutusu görünecektir. Örneğin dört butonumuzu sola hizalamamız ve aralarında aynı dikey mesafenin olduğundan emin olmamız gerekiyor. Bunu yapmak için radyo düğmelerini seçin Yatay: Sol taraflar Ve Dikey: Eşit boşluk.

Öğeyi seçerek Merkez bileşenleri, merkezleri yatay veya dikey olarak aynı çizgide olacak şekilde düzenleyeceğiz ve öğe Pencerede ortala Bileşenleri yatay veya dikey olarak pencerenin ortasına taşır.

Aynı menü satırında Sekme Ö sipariş... bir tuşa basıldığında imlecin arayüz öğeleri arasında nasıl hareket edeceğini kontrol eden bir iletişim kutusunun görünmesine neden olur Sekme. Form ekranda göründüğünde, imleç doğal olarak iletişim kutusunun ilk satırında bulunan bileşenin üzerinde olacaktır. Ve sonra listede aşağı doğru hareket edecek. İletişim kutusunda iki mavi yukarı ve aşağı ok, seçilen bileşenin konumunu kontrol eder. Gerekli bileşeni seçin, okları kullanarak onu listede istediğiniz satıra taşıyın vb.

Bir menü öğesi seçerken Kontrol ->İki öğeden oluşan bir alt menü görüntülenir:

  • Öne getirmek
  • Geri gönder
Bunlar programlı olarak da kullanılabilen bileşen yöntemleridir. Düğme1.Geri Gönder düğmeyi "arka plana" taşır ve Düğme1.Öne Getir- öne getirmek". Yani, eğer bir bileşen diğerinin üzerinde konumlandırılmışsa, bu yöntemler konumlarını değiştirir. Bunun geçerli olabileceği durumlar oldukça açıktır.


Tepe