internet pencereler Android
Genişletmek

1C uçtan uca hizalama. "Yönetilen Formlar" yapmak biraz daha yönetilebilir

Giriş

Kontrollü formlar. Yeni gelişme 1C Geliştiricinin çalışmasını kolaylaştırmak için tasarlanmış, arayüzün tasarımını basitleştirerek kod yazmak için daha fazla zaman verin. Aslında, genellikle bu sözde ortaya çıkar. " kontrollü formlar"Tamamen kontrol edilemez. UV, bu tür banal şeyleri pencereyi katlayarak / çevirerek, ekrandaki konumlandırmasını ve piksel cinsinden görev boyutunu söylememek için nasıl çalıştırılacağını bilmiyorum. Belki de bu işlevler sahipsiz kabul edildi ve açılmadı yeni arayüzAncak pratik, çok fazla eksik olduklarını gösterir. Bir süredir, problem kısmen WSH nedeniyle çözüldü, ama daha fazlasını bir şey istedim. Böylece dış bileşen, "yönetilen formları" biraz daha yönetilebilir hale getirmek için uygulandı.

Ne? Nerede? Ne zaman?

Bu VK, Windows'un durumunu ve konumunu kontrol etmek için bir fonksiyon kütüphanesidir. Ayrıca kütüphanede birkaç faydalı sistem işlevi vardır.

Pencere Durumu Yönetimi:

Genişletmek ( Typrookok ) bir pencere tam ekrana dağıtıyor

Çöküş (titre) - görev çubuğundaki pencereyi kıvrtırır

Gizle (başlık) - pencereyi gizler (aynı zamanda kod kodu yürütülmeye devam eder)

Göstermek () - İkincisini gösterir gizli Fonksiyon () Penceresini gizle

Yükseltilmiş (başlık bloğu) - içinde uydurma ilk durum pencere

Gerçek Görünürlük (titre-blok) - n pencerenin görünüşte ekranda olup olmadığını kontrol eder

Gerçek konuşlandırıldı (başlık bloğu) - pencerenin tam ekrana genişletilip genişlenmediğini kontrol eder.

Gerçek yuvarlandı (başlık bloğu) - pencerenin görev çubuğuna girip dönmeyeceğini kontrol eder.

Transkripsiyon yükleyin(Başlık, Katsayı) - pencerenin şeffaflığını ayarlar. Şeffaflık derecesi katsayısı (0-255) ile ayarlanır.

Pencere Yönetimi Yönetimi:

Recomemposition(Başlık, X., Y.) - pencerenin sol üst köşesinin koordinatlarını ekrana göre alır. Koordinatlar parametrelerden iade edilirX, Y.

Hareket(Başlık, X., Y.) - pencereyi belirtilen bir konuma getirirXy.Bu durumda Xy.pencerenin sol üst köşesinin koordinatlarıdır.

Çalışmak - Pencerenin boyutlarını piksel cinsinden alır. Değerler karşılık gelen parametrelerden iade edilir.

Boyutları ayarla(Başlık, Genişlik, Yükseklik) - Pencerenin boyutunu piksel cinsinden ayarlar.

Sistem fonksiyonları:

Farklı gelişme(Horz, Vert) - Geçerli ekran çözünürlüğünü alır. Değerler karşılık gelen parametrelerden iade edilir.

Emir almak() - Sistemde bulunan ekran izinlerinin bir listesini alır. Veriler "çözünürlük1, çözünürlük2, çözünürlük3 ..." olarak döndürülür. Demo işlemede, formda bir izin listesi oluşturmanın bir örneği vardır.

Kurulum(Ekrana seçilen defrost) - Ekran çözünürlüğünü ayarlar. Parametre, iznin sırası numarasını belirtir. Demo işleme, önceden oluşturulan bir listeden izin izninin bir örneğini gösterir.

Bonuslar:

Uyku (konaklamalar) uyku ().Zaman milisaniyede belirtilir.

Sinyal (Frekans, Süre) - Klasik fonksiyonun uygulanmasıbip sesi ().Sesin sıklığını ve süresini ayarlamanızı sağlar.

TOPLAM

Kütüphane kendi ihtiyaçları için yazdı ve gerektiği gibi rafine edilebilir. Birisi, düşündüğü konu alanı çerçevesinde işlevselliğini genişletmek için parlak bir fikri varsa, o zaman dilekleri yazın. Fikirler değerli ise, uygulanacaklar.

Paket şunları içerir: Paylaşılan bir düzen ve gösteri işlemi şeklinde bağlı VC ile taban. Zip Arşivinde VC.

Sıradan formlarda, elemanların yeri tamamen manuel olarak gerçekleştirilir. Bu süreci kolaylaştırmak için, platform birkaç mekanizma sunar:

- hizalama elemanları - Otomatik merkezleme veya "" kontrollere "kontrollere" presleme ", birbirlerinin kılavuzlarına doğru basılarak veya kontrollerin boyutlarını hizalayın:

- kafes- Öğelerin doğru manuel hizalaması için, Mesh ekranını parametreler aracılığıyla yapılandırabilirsiniz:

Doğru cevap ikincisidir. Bu, hizalama paneli ve öğelerin boyutunun birleşmesidir.

Soru 10.79 Sınav 1C: Platformda profesyonel.

  1. Hiçbir şey değişmeyecek
  2. "Muayene1" yatay olarak "muayene1" vardiyası olacak ve sağ sınırını "yazıt2" unsurunun sağ sınırına hizalayacak
  3. "Yazıtı2" yatay olarak bir ofset olacak ve "yazıt1" unsurunun sağ sınırındaki sağ sınırını hizalayacak.
  4. Her iki öğe de sağ kenar seviyelendirme hattına geçecektir

Doğru cevap ikincisidir. Yazıtlar doğru şekilde seviyelendirilir.

Soru 10.82 Sınav 1C: Platformda profesyonel. Resimde işaretlenmiş komut paneli düğmesine basarsanız ne olur?

  1. Tüm yazılar aynı boyutta yatay olacaktır.
  2. Hiçbir şey değişmeyecek
  3. Yazıtların yer değiştirmesi olacak. Her kontrolün simetrisinin dikey ekseni, şekil simetrisinin dikey ekseni ile çakışacaktır, yani. Her kontrol yatay kontrolünün merkezlenmesi
  4. Yatay yazıtlarda bir kayma olacaktır. Grup içinde birbirine göre hareketli kontrol elemanları gerçekleşmeyecek, yani bir element gibi bir bütün olarak merkezleme
  5. Yazıtların dikey olarak kayması olacak. Grup içinde birbirine göre hareketli kontrol elemanları gerçekleşmeyecek, yani bir element gibi bir bütün olarak merkezleme

Doğru cevap dördüncü. Seçilen tüm kontroller ortak merkez çizgisine göre ortalanır.

Soru 10.83 Sınav 1C: Platformda profesyonel. Resimde işaretlenmiş komut paneli düğmesine basarsanız ne olur?

  1. Tüm yazılar dikey olarak aynı boyutta olacaktır. Numunenin üstünde "Yazıtı1" unsur alınacak
  2. Hiçbir şey değişmeyecek
  3. Tüm yazılar dikey olarak aynı boyutta olacaktır. Örnek için bir öğe "Yazıtı3" alınacaktır.
  4. Her bir yazıtın dikey olarak merkezlenmesi olacak
  5. Dikey yönde yazıtların tek tip dağılımı olacaktır. Kontrol elemanları "Yazıtı1" ve "Yazıtı3" yerinde kalır ve "Yazıt2" öğesi istenen tarafta kaydırılacaktır. Öğe yerinden edildiğinde, İşaretleme ızgarasına bağlanma dikkate alınmaz
  6. Dikey yönde yazıtların tek tip dağılımı olacaktır. Kontrol elemanları "Yazıtı1" ve "Yazıtı3" yerinde kalır ve "Yazıt2" öğesi istenen tarafta kaydırılacaktır. Bir eleman yerinden edildiğinde, kullanım modu ayarlanmışsa, bir öğütme ızgarasına bir bağlama gerçekleştirilecektir.

Doğru cevap ilk. Elementlerin yüksekliği standartlaştırılacak

Soru 10.86 Sınav 1C: Platformda profesyonel. Resimde komut panel düğmesine basarsanız ne olur?

  1. Tüm yazılar aynı boyutta dikey ve yatay olacaktır. Numunenin üstünde "Yazıtı1" unsur alınacak
  2. Tüm yazılar aynı boyutta dikey ve yatay olacaktır. Örnek için bir öğe "Yazıtı3" alınacaktır.
  3. Hiçbir şey değişmeyecek
  4. Yazıtların otomatik hizalanması gerçekleştirilecektir
  5. Tüm yazıtlar için şeffaf bir arka plan verilecektir.

Doğru cevap dördüncü, gerçek düğmenin "otomatik olarak hizala" denir

Soru 10.90 Sınav 1C: Platformda profesyonel. Hizalama modunu önceden oluşturulan formdaki tesviye çizgileri ile devre dışı bırakın:

  1. Bu imkansız
  2. Yapabilmek. Bunu yapmak için, Form Properties Paleti'nde, "Seviyelendirme Hatları Kullan" özelliğini devre dışı bırakmanız gerekir.
  3. Yapabilmek. Bunu yapmak için, "Servis-Parametreleri" menü öğesini seçerek, "Form" sekmesinde, "Hizalama Hattı Kullan" özelliğini devre dışı bırakmanız gerekir.
  4. Yapabilmek. Bunu yapmak için, form özellikleri paletinde, "Hizalama Hattını Kullan" özelliğini devre dışı bırakmanız gerekir veya "Hizalama Hattını Kullan" ı devre dışı bırakmak için "Form" sekmesinde "Servis-Parametreleri" menü öğesini seçerek "

Doğru cevap ikincisidir. Hizalama çizgileri (ok ile işaretlenmiş), formun ilgili özelliği ile bağlantısı kesilir:

Soru 10.92 Sınav 1C: Platformda profesyonel. Form elemanlarını hizalarken, İşaretleme Mesh gösterilebilir:

  1. Sürekli çizgiler
  2. Bir denetleyici sırasına yerleştirilmiş noktalar
  3. İşaretleme çizgilerinin geçiş yerlerinde bulunan noktalar
  4. Sağ Cevaplar 1 ve 2
  5. Sağ Cevaplar 2 ve 3
  6. Doğru Cevaplar 1, 2 ve 3

Doğru cevap beşinci. Puanların konumu, sistem parametrelerinin satranç sırası seçeneği ile düzenlenir (mesajdaki ekran görüntüsüne bakın).

Soru 10.95 Sınav 1C: Platformda profesyonel.

  1. Ofset kontrollerini gösteren özel hizalama belirteci. Sola doğru hareket etmesi için özel kontrol önerildi
  2. Ofset kontrollerini gösteren özel hizalama belirteci. Özel kontrolün aşağı hareket etmesi önerildi
  3. Kaplama kontrollerini gösteren özel hizalama belirteci. Sola doğru hareket etmesi için özel kontrol önerildi
  4. Kaplama kontrollerini gösteren özel hizalama belirteci. Özel kontrolün aşağı hareket etmesi önerildi

Doğru cevap ilk. Alt alan, sırasıyla üste göre sağa doğru kaydırılır, sola hareket etmesi önerilir.

Soru 10.96 Sınav 1C: Platformda profesyonel. Boyutları değiştirmek ve formel çizgileri kullanarak form kontrollerini hareket ettirmek mümkün müdür?

  1. Bu imkansız
  2. Kontroller bu satırlara eklenebilirse,
  3. Kontroller bu satırlara bağlıysa, ancak yalnızca hareket edebilirsiniz.
  4. Kontroller bu satırlara bağlıysa, ancak yalnızca boyutları değiştirebilirsiniz.
  5. Her zaman yapabilirsin

Doğru cevap ikincisidir. Bir jeline bağlı elemanlar birbirine taşınabilir.

Soru 10.97 Sınav 1C: Platformda profesyonel. Resimde, kırmızı daire işaretlenmiştir:

  1. Ofset kontrollerini gösteren özel hizalama belirteci. Özel kontrol sola ve yukarı hareket etmesi önerilir
  2. Ofset kontrollerini gösteren özel hizalama belirteci. Özel kontrol sağa doğru ilerlemek için önerilmiştir
  3. Kaplama kontrollerini gösteren özel hizalama belirteci. Özel kontrol sola ve yukarı hareket etmesi önerilir
  4. Kaplama kontrollerini gösteren özel hizalama belirteci. Özel kontrol sağa doğru ilerlemek için önerilmiştir

Doğru cevap dördüncü. Vardiya oklarının bulunduğu yere gitmeniz gerekir.

Soru 10.98 Sınav 1C: Platformda profesyonel. Resimde, kırmızı daire işaretlenmiştir:


Soru 10.110 Sınav 1C: Platformda profesyonel. Şekilde gösterilen komut paneli düğmesini nasıl kullanırsanız, her üç yazıtın da sağ kenardaki tümünü hizalayın?

  1. Öncelikle, "Yazıt" kontrol elemanını, aynı anda tuşuna basarak, sol fare düğmesiyle tıklatarak seçin. Ardından belirtilen düğmeye basın
  2. Sadece belirtilen düğmeye tıklayın
  3. Belirtilen düğmeyi kullanarak, farklı panellere ait oldukları için yazıları hizalamak imkansızdır.
Doğru cevap üçüncü. Hizalama aynı panelde çalışır.

Soru 10.115 Sınav 1C: Platformda profesyonel. Muhtemel market ızgarasının mevcut biçiminde yeterince görüntülemek için:

  1. Form Özellikleri Paleti'nde, mülkü "çok kullanır" olarak ayarlayın.
  2. "Servis-parametreleri" ana menü öğesini seçtikten sonra, "Form" sekmesinde "Tablo Kullan" bayrağını ayarlayın
  3. "Servis-parametreleri" menü öğesini seçme, "Form" sekmesinde, "Ekran Mesh" bayrağını ayarlayın
  4. "Servis-Parametreleri" menü öğesini seçtikten sonra, "Form" sekmesinde, "Ekran Mesh" bayrağını, ardından form özellikleri panel kurulumunda ayarlayın.
  5. Ana menü öğesini "Servis-Parametreler", bayrakları "Grid'i görüntüleyin" ve "Çok Kullan" ve "Form" sekmesinde seçme

Doğru cevap dördüncü, form için görüntüleme seçeneğini de belirleyebilirsiniz.

8.3.7.1759 sürümünde uygulandı.

Bu makalenin hakkında ne konuştuğumuzu netleştirmek için küçük bir açıklama yapmanız gerekir.

Tahrikli formların özelliği, geliştiricinin oluşturmadığıdır. görünüm Doğrudan formlar. Geliştirici yalnızca bazı mantıksal kurallarla bir form açıklaması oluşturur. Bu kurallara dayanarak, platform bağımsız olarak formun görsel bir gösterimini oluşturur. Ayrıca, bu görsel gösterim, formun görüntülendiği pencerenin boyutuna bağlıdır. Dar pencerede veya ekranda açıklanan pencerede gösterilen aynı formda farklı bir görsel gösterime sahip olacaktır.

Böylece, formun görsel olarak gösterilmesini oluşturan platformun bu kısmı denir. Öğeleri formda yerleştirmek için mekanizma.

Neden yeni bir mekanizmaya ihtiyacınız var?

İlk olarak, eski mekanizma, ne yazık ki, eksiklikleri vardı. En önemlisi, müşterinin üzerinde yapılan form elemanlarının özelliklerinde birçok değişiklik, sunucuya zorunlu bir temyiz başvurusunda bulundu. Ve sunucuya yapılan herhangi bir temyiz, işte yavaşlamaya yol açar.

İkincisi, yönetilen formları kullanma deneyimini değerlendirdik ve uygulanması gereken çok sayıda kritik ihtiyaç bulduk.

Ve üçüncüsü, gelecekteki gelişme olasılığını yeni bir mekanizmaya koymak istedik.

Ana değişiklikler

Önceki mekanizmanın çalışmalarını şunları şöyle şimdilik:

Yapılandırıcıdaki geliştirici, form öğeleri ağacını oluşturur ve elemanların özelliklerini ayarlar. O anda, uygulama çözümü kullanıcının formunu göstermesi gerektiğinde, aşağıdakiler gerçekleşir. İlk önce sunucuda platform oluşturur görsel formun açıklaması. Ardından bu açıklama istemciye iletilir. Ve müşteride görselleştirici Kullanıcının göreceği görüntüyü oluşturur.

Görsel formun bir açıklaması oluştururken sunucuda gerçekleştirilen ana eylem, dize uzunluklarının hesaplanmasıdır. Her türlü başlık, yazıt ve benzeri anlamına gelir. Dize uzunluklarını bilmek, formdaki öğelerin konumunu zaten hesaplayabilir.

Bu işlem sunucuda yapıldığından, iki olumsuz nokta vardı. Öncelikle, istemcide kullanılacak yazı tipleri, hesaplamak için kullanılır, ancak sunucuya yüklü olanlar. Ve özellikle farklı platformlardan bahsediyoruz (Windows, Linux). Ya da istenen yazı tipleri bile sunucuya yüklenemez. İkincisi, uzunlukları hesaplamak için sunucuda olan yazı tiplerinin rasterizasyonunun bir "motoru" kullanıldı. Örneğin, Internet tarayıcısındaki istemcide mevcut metin dizelerini oluşturma mekanizması kadar çalışamaz. Sonuç olarak, formlar "kırpılmış" metinler veya aksine, çok geniş yazıtlar ile görünebilir.

Başka bir problem, formun müşteri tarafından gösterileceği pencerenin boyutuna hiçbir uyarlama olmamasıdır. Aslında, sunucuda, formun açıklaması asgari olası pencere boyutuna göre oluşturulmuştur ve ekranının daha da başarısı gerilebileceğine bağlı olarak bağlıdır.

Yeni mekanizmadan, daha önce sunucuya tam olarak uygulanan görsel formun açıklamasının üretilmesi, iki parçaya, sunucuya ve istemciye ayrıldık:

Sunucu kısmı önemli ölçüde daha az hale geldi. İçinde hiçbir hesap yapılmaz. Sunucuda, yalnızca metin alanlarının doğru uzunluklarını içermeyen açıklamanın "boş" oluşturulması ve uyarlanabilirlik unsurlarına izin verilmemektedir. Öğelerin görünürlüğü sunucuda işlenir, ancak yalnızca fonksiyonel seçenekler tarafından belirlenen ve kullanıcı tarafından yüklenen kişi. Ancak burada ve aksi halde imkansızdır, çünkü işlevsel seçenekler yalnızca sunucuda kullanılabilir. Ve herhangi bir durumda kullanıcı ayarlarındaki etkileşimli değişiklik, sunucu çağrısına yol açacaktır.

Sonuç olarak, formun görsel sunumunun belirli bir "yarı mamul ürünü" müşteriye iletilir.

Müşteri, görsel formun açıklamasının gerekli iyileştirilmesini sağlar. Dize uzunlukları hesaplanır, istemci ekranın boyutuyla ilişkili uyarlanabilirlik unsurları hesaplanır ve görünürlük uygulanır. Bundan sonra, daha önce olduğu gibi, bir görselleştirici çalışmaya başlar, bu da müşterinin gördüğü son formu oluşturur.

Dizelerin uzunluklarının hesaplanmasının müşteride yapılması nedeniyle, unsurlar arasındaki gereksiz ve doğru olmayan "yuvalardan" kurtulmak mümkündü. Ve müşterinin etrafında dolaşımsız olarak görünürlük gelişimi, formların çalışmalarını hızlandırmasına izin verildi. Form öğelerinin etkinleştirilmesi / devre dışı bırakılması, çünkü en sık kullanılan işlemlerden biridir.

Bazı yeni özellikler

Uyarlanabilir arayüzün unsurları

Öğeleri formda yerleştirmek için yeni mekanizma sadece daha önce olan fırsatları iyileştirir, aynı zamanda yeni özellikler de ekler. Örneğin, formun görünümünü istemci ekranın boyutuna uyarlar. Bunun için birkaç yol kullanılır.

İlk olarak, başlıkların ve manzaranın bir kenarı yüksekliğine sahip satırların otomatik transferi gerçekleştirilir. Nasıl çalışır, resimde görebilirsiniz:

Formda, ayrı kelimelere ayrılabilen uzun çizgiler varsa, bu tür satırlar bir ihtiyaç varsa aktarılır. Buna göre, formun yüksekliği artar, çünkü alt kısmı "ayrılır". Sonuç olarak, form normalde dar ekranlarda bile görünecektir. Dahası, bu mekanizma dinamik olarak çalışır ve bu nedenle formu gerçek zamanlı olarak sıkıştırabilirsiniz ve bununla birlikte uzun çizgiler aktarılır.

Elementlerin başlıkları için otomatik transfer çalışmaları, Grup başlıkları, metin manzarası ve ilgili düğmelerde metin Hyperlink.

İkinci uyarlanabilirlik unsuru, grupların yönünü değiştirmektir. Gruplar ve bir bütün olarak form ortaya çıktı yeni seçenek Oryantasyon - " Yatay olarak, mümkünse" Bu düzenlemede, istemci ekranı öğeleri yatay olarak konumlandırmanıza izin verirse, yatay olarak bulunurlar. Değilse, dikey olarak bulunurlar.

Uyumlulukun üçüncü unsuru otomatik tanım Anahtardaki veya geçişdeki sütunların sayısı. Önceden, özel bir talimat yoksa, sütun sayısı maksimum olarak ayarlandı ve bir satırda görüntülendi. Şimdi, aynı durumda, formun genişliği analiz edilir ve sütun sayısı, anahtar / geçiş anahtarının ekranda iyi görüneceği sütun sayısı ayarlanır.

Yatay ve dikey hizalama

Daha önce, böyle bir fırsat yoktu ve farklı olmayan hizaları uygulamak için farklı "hileler" i iciyet etmek zorunda kaldım. Şimdi form ve grup, elemanlarının dikey olarak nasıl hizalanmalı ve yatay hale getirilmesi gerektiği gösterilebilir. Örneğin, aşağıdaki şekilde, bir grup düğme, üç olası hizalama seçeneğini gösterir: Leo, Merkez ve Sağ:

Bu modelde, düğmeler yatay olarak gerilmiş geleneksel bir gruba yerleştirilir. Grubun içindeki düğmelerin yeri Grup özelliği tarafından kontrol edilir. Yatay tutumlar.

Dış Hizalama Kontrolü

Örneğin, alanın bulunduğu bir formunuz var. Alt bölüm, gruplar Adres ve Telefon. Eski mekanizma, bu grupların alanlarını sol rakamda gösterildiği gibi hizalayın. Formdaki alanlar kendileri arasında hizalandı ve her gruptaki alanlar birbirleriyle hizalandı.

Artık hizalama grupları üzerinden yükleme fırsatınız var, sonuçla, örneğin, tüm alan alanlarının eşit şekilde hizalanacağı sonucu. Bu varyantı doğru şekilde gösterilir.

Ayrıca, her grup için uçtan uca hizalamayı ayrı ayrı kontrol edebilirsiniz. Bu nedenle, örneğin, grup için hizalama yoluyla kapanabilirsiniz. TelefonVe sonra form doğru çizimde gösterilen gibi görünecektir.

Hizalama elemanları ve başlıkları

Görünen bir başka yeni özellik, elementlerin ve başlıkların karşılıklı düzenlemesini kontrol etme yeteneğidir. Hem tüm formda hem de bireysel gruplarda. Örneğin, başlıklar ve öğeler, formun farklı kenarlarına "gerebilir" veya bunun tersi, "bunları birbirlerine çekin", başlıkları sağa doğru ve elementler - sola doğru yapabilirsiniz.

Elementlerin maksimum genişliğinin kısıtlanması

Önceden, gerilmesi gereken öğeleri belirlediyseniz, eleman mümkün olana kadar uzanır. Örneğin, tam ekran. Bazı unsurlar için, iyi (örneğin, HTML alanı) ve diğer unsurlar için çok iyi olmayabilirdi. Örneğin, sayısal alanlar için. Sayısal veriler veya saha kontrol düğmeleri, sağdan uzak bir yere çıktı.

Artık elemanların, otomatik germe modunu genişlik veya yükseklikte ayarlayabileceğiniz Boolean özelliklerine sahiptir. Bu modda, platform bağımsız olarak, hangi sınırların alanı gerebileceğini belirler. Otomatik mod kapalıysa, platform daha önce olduğu gibi davranır. Alanın belirli bir genişliğini / yüksekliğini belirtirseniz, kullanılacaktır. Ve 0 değeri belirlerseniz, eleman mümkün olana kadar uzanır.

Elemanlar arasındaki mesafe kontrolü

Ayrıca, elementler arasındaki yatay ve dikey aralıkları kontrol etme yeteneği de ortaya çıktı. Örneğin, aşağıdaki şekilde sol grupta dikey aralık arttırılır ve sağa düşürülür.

Germe formunu devre dışı bırakma

Dikey elemanlarını gerdiren başka bir, yeni form çalışma modunu uyguladık. Bu mod, içermeyen formlar için faydalı olacaktır. çok sayıda Elementler.

Sayfalarda Kaydırmayı Devre Dışı Bırak

Çok sayıda unsur içeren formlar için, birkaç davranış da değiştirdik. Şimdi sayfalardaki dikey kaydırma görünmüyor. Dikey kaydırma Şimdi, tablo gibi formun elemanlarının içinde veya içinde olabilir, tablo belgesi vb. Ve form sayfası her zaman tam bir yüksekliğe sahip olacaktır. Kullanıcı çalışmasını kolaylaştırmalıdır, çünkü formdaki çok sayıda kaydırma sıklıkla karıştırılır ve karıştırır.

Özet

Bu derleme makalesinde, yalnızca formda elemanları yerleştirmek için yeni bir mekanizma veren ana özellikleri listeledik. Ancak görüşümüzde daha az önemli değil ve bu mekanizmada gelecekteki gelişme için önemli bir stok olması gerçeği yoktur.

Form editörü, uygulamalı çözümlerin formlarını oluşturmak ve düzenlemek için kullanılır. Nesnelerin formları, kullanıcının çalışması sırasında nesne verilerinin görsel gösterimi için sistem tarafından kullanılır.

Herhangi bir form, üç bileşenin bir kombinasyonunu temsil eder:

  • form iletişim kutusu - ekranda görüntülenecek olan pencereler;
  • modül formları - form kontrolleri ve olay işleme unsurları ile çalışmaktan sorumlu olan gömülü dilde programlar;
  • formun detayları, çalışmalarında kullandığı verilere ait bir dizi nesnedir.

Doğrudan Form Editörü, form iletişim kutusunu, ayrıntılarını, detaylarını ve modüllerin formun modülünü düzenlemesine neden olur.

Form Editör penceresi, formun üç bileşenini düzenleyen üç yer imini içerir.

Diyalog formunu düzenleme

Form Editor, geliştiricinin çok çeşitli diyalog yeteneklerini tam olarak kullanmasını sağlar. Bu özelliklerin temelini listeliyoruz:

Paneller, sayfalar, yer imleri

Diyalogun editörü, geliştiricinin, kendi tanınabilir stillerinin bir formunu oluşturmaya yardımcı olan formda özel kontroller yerleştirmesini sağlar, bu da verilere basit ve anlaşılabilir bir şekilde erişebilir ve sınırlı bir alan hakkında büyük miktarda bilgi yerleştirin.

Editör, her biri birkaç sayfa içerebilen formda birkaç panel yerleştirmenizi sağlar. Örneğin, belge formu iki sayfaya sahip bir panel içerebilir: mallar ve ayrıca:

Geliştirici, sayfaların panel içinde kaydıracağı modu ayarlama yeteneğine sahiptir veya sayfalar arasında geçiş yapmak için yer imleri kullanın. Editör, çok sayıda çeşitli yerleri tanımlamanıza ve yer imlerini görüntülemenizi sağlar:

Örneğin, yer imleri yukarıdan yatay olarak düzenlenebilir:

Ya da soldaki yer imlerini dikey olarak bırakabilirsiniz:

Kontrol elemanları

Editör, formda çok sayıda farklı kontrol yerleştirmenizi sağlar. Kontrolleri sürükleyerek veya seçilen kontrol öğesinin istenen özelliklerini eşzamanlı olarak ayarlamanıza olanak sağlayan özel bir kontrol iletişim ekleme kontrolleri kullanarak yerleştirebilirsiniz:

Formun çok sayıda kontrol içerdiği durumlarda, geliştirici listedeki kontrollerin kontrol modunu kullanabilir, bu da istenen kontrole hızlı bir şekilde hareket etmenizi sağlar:

Editör, verileri girerken ve düzenlerken, kullanıcının form kontrollerinin elemanlarını dolaştıracağı sırayı belirtme yeteneğini sunar. Özel kontrol listesindeki hesabın hesabının otomatik bypass sırasını veya manuel görevini yüklemek veya formda sağ tıklamak mümkündür:

Izgara, Hizalama

Editoriform, elementlerin formdaki yerleşimini yönetmek için büyük fırsatları vardır. Özellikle, kontrollerin sınırları ve boyutları, formda bulunan bir frezeleme kılavuzuyla hizalandığında, bir İşaretleme Mesh ile çalışmayı destekler. Geliştirici, pompalama ızgarası adımı değiştirme yeteneğine sahiptir ve böylece kontrollerin daha doğru bir yerini arayabilir:

Ayrıca, editör, form kontrollerinin hizalamasını ve karşılıklı konumunu kolaylaştırmaya hizmet eden tesviye hatlarının kullanımını desteklemektedir. Örneğin, aşağıdaki şekilde, seviyelendirme hatları ayrıca sayfaya kontrolleri ek olarak kullanılır:

Geliştirici, istenen yatay veya dikey seviyelendirme çizgisini sayfaya yerleştirme ve görünmez tesviye hatlarını kullanabilme yeteneğine sahiptir. Görünmez tesviye hatları editörü, iki veya daha fazla kontrolin sınırlarından herhangi biriyle aynı hizada olduktan sonra otomatik olarak oluşturur. Örneğin, aynı boyutta iki alan sol kenarlıkta hizalandıysa, görünmez seviyelendirme hattı bu alanların sağa hizalı sınırları boyunca oluşturulur.

Hizalama kontrolleri, istenen kontrollerin kontrolünü gösteren özel belirteçler kullanılarak da yapılabilir. İşaretçiler birbirine yakın bir yana yakın olduğunda belirir.

Mavi hizalama belirteçleri, bitişik kontrolün sınırlarından birine hizalamak için kontrol elemanının istenen hareket yönünü gösterir:

Kırmızı tesviye belirteçleri, başka bir kontrolün üst üste geldiği durumdaki kontrolü kontrol etme yönünü gösterir:

Editörün bir grup kontrol için hizalama işlemlerini, boyutlarını ve sipariş gruplarını desteklediği söylenmelidir:

Bağlama

Form editörü, formda bulunan kontrollerin davranışlarını yapılandırmanıza olanak sağlar, böylece formun boyutundaki değişiklikle, doğal bilgi algısı sağlanmıştır: Elementlerin bir kısmı, diğer kısım yerinde kaldı Formun sınırları ile birlikte hareket etti ve üçüncü bölüm, formun boyutunu değiştirerek boyutunu değiştirdi.

Form elemanlarının böyle bir davranışını belirtmek için, geliştirici bağları tanımlayabilir - kontrol sınırlarının pozisyonunun formun sınırlarının konumundan bağımlılığını gösterebilir. Kontrolün sınırı hem sınırına hem de formun ortasına ve başka bir kontrolün sınırını veya merkezine bağlanabilir.

Editör, çeşitli çeşitli cilt çeşitlerini destekler ve bunları grafiksel biçimde görüntüleyebilir:

Bölücüler

Ayırıcılar, boyut alanını boyutunu değiştirmeden yeniden dağıtmanın mümkün olduğu, kontrollerin özel elemanlarıdır. 1C modunda: Kurumsal ayırıcı, fare ile "yakalama ve formun içindeki formun içine hareket etme, diğer kontrol ve oryantasyonun diğer kontrol ve oryantasyon unsurlarının yerini dikkate alarak sınırları göz önünde bulundurun:

Ayırıcı taşındığında, ayırıcıya bağlı tüm kontroller boyutlarını değiştirir veya oluşturulan ciltlere göre hareket eder:

ActiveX.

Editör, ActiveX Tipi kontrol elemanlarını, geliştiricinin dahili dil araçlarını kullanarak onları yapılandırabileceği ve yönetebileceği formda yerleştirmenizi sağlar:

Düzenleme Modülü Formu

Modulaformları düzenlemek için, yapılandırıcı metin düzenleyici ve modülleri çağırır. Bu Editör, geliştiriciye modülün metnini oluşturmak ve değiştirmek için çok çeşitli fırsatlar sunar.

Form Detaylarını Düzenleme

Düzenleme Formun ayrıntılarını listede gerçekleştirilir, bu da yeni detaylar oluşturmanıza, var olanı değiştirmenize ve gereksiz detayları kaldırmanıza olanak sağlar:

Form, formun davranışını belirleyen ana sahne varsa, tipikten farklı, kalınca vurgulanır. Geliştirici, imleci istenen sahne ile ayarlayabilir ve menü komutunu kullanarak, hemen şekil iletişim kutusunu kullanarak, seçilen sahnelere karşılık gelen kontrolün bu öğesine gidin.

Ek Bilgiler

Form editörüyle gerçek zamanlı olarak tanışabilirsiniz. Bunu yapmak için, "Parish Fatura", "Sarf Malzemeleri" belgelerinin biçimlerini oluşturmak için bu editörü kullanarak bir ticaret mini sistemi geliştirme işlemini gösteren bir gösteri klibini indirebilirsiniz. "Satış Analizi" ve "Satışların Dönemlere Göre Analizi" raporları.

19.05.2015

8.3.7.1759 sürümünde uygulandı.

Bu makalenin hakkında ne konuştuğumuzu netleştirmek için küçük bir açıklama yapmanız gerekir.

Yönetilen formların tuhaflığı, geliştiricinin doğrudan formun görünümünü oluşturmadığıdır. Geliştirici yalnızca bazı mantıksal kurallarla bir form açıklaması oluşturur. Bu kurallara dayanarak, platform bağımsız olarak formun görsel bir gösterimini oluşturur. Ayrıca, bu görsel gösterim, formun görüntülendiği pencerenin boyutuna bağlıdır. Dar pencerede veya ekranda açıklanan pencerede gösterilen aynı formda farklı bir görsel gösterime sahip olacaktır.

Bu nedenle, formun görsel olarak gösterilmesini oluşturan platformun bu kısmı, elemanları forma yerleştirme mekanizması olarak adlandırılır.

Neden yeni bir mekanizmaya ihtiyacınız var?

İlk olarak, eski mekanizma, ne yazık ki, eksiklikleri vardı. En önemlisi, müşterinin üzerinde yapılan form elemanlarının özelliklerinde birçok değişiklik, sunucuya zorunlu bir temyiz başvurusunda bulundu. Ve sunucuya yapılan herhangi bir temyiz, işte yavaşlamaya yol açar.

İkincisi, yönetilen formları kullanma deneyimini değerlendirdik ve uygulanması gereken çok sayıda kritik ihtiyaç bulduk.

Ve üçüncüsü, gelecekteki gelişme olasılığını yeni bir mekanizmaya koymak istedik.

Ana değişiklikler

Önceki mekanizmanın çalışmalarını şunları şöyle şimdilik:

Yapılandırıcıdaki geliştirici, form öğeleri ağacını oluşturur ve elemanların özelliklerini ayarlar. O anda, uygulama çözümü kullanıcının formunu göstermesi gerektiğinde, aşağıdakiler gerçekleşir. Öncelikle sunucuda, platform görsel formun bir açıklaması oluşturur. Ardından bu açıklama istemciye iletilir. Ve istemcide, görselleştirici, kullanıcının göreceği görüntüyü oluşturur.

Görsel formun bir açıklaması oluştururken sunucuda gerçekleştirilen ana eylem, dize uzunluklarının hesaplanmasıdır. Her türlü başlık, yazıt ve benzeri anlamına gelir. Dize uzunluklarını bilmek, formdaki öğelerin konumunu zaten hesaplayabilir.

Bu işlem sunucuda yapıldığından, iki olumsuz nokta vardı. Öncelikle, istemcide kullanılacak yazı tipleri, hesaplamak için kullanılır, ancak sunucuya yüklü olanlar. Ve özellikle farklı platformlardan bahsediyoruz (Windows, Linux). Ya da istenen yazı tipleri bile sunucuya yüklenemez. İkincisi, uzunlukları hesaplamak için sunucuda olan yazı tiplerinin rasterizasyonunun bir "motoru" kullanıldı. Örneğin, Internet tarayıcısındaki istemcide mevcut metin dizelerini oluşturma mekanizması kadar çalışamaz. Sonuç olarak, formlar "kırpılmış" metinler veya aksine, çok geniş yazıtlar ile görünebilir.

Başka bir problem, formun müşteri tarafından gösterileceği pencerenin boyutuna hiçbir uyarlama olmamasıdır. Aslında, sunucuda, formun açıklaması asgari olası pencere boyutuna göre oluşturulmuştur ve ekranının daha da başarısı gerilebileceğine bağlı olarak bağlıdır.

Yeni mekanizmadan, daha önce sunucuya tam olarak uygulanan görsel formun açıklamasının üretilmesi, iki parçaya, sunucuya ve istemciye ayrıldık:

Sunucu kısmı önemli ölçüde daha az hale geldi. İçinde hiçbir hesap yapılmaz. Sunucuda, yalnızca metin alanlarının doğru uzunluklarını içermeyen açıklamanın "boş" oluşturulması ve uyarlanabilirlik unsurlarına izin verilmemektedir. Öğelerin görünürlüğü sunucuda işlenir, ancak yalnızca fonksiyonel seçenekler tarafından belirlenen ve kullanıcı tarafından yüklenen kişi. Ancak burada ve aksi halde imkansızdır, çünkü işlevsel seçenekler yalnızca sunucuda kullanılabilir. Ve herhangi bir durumda kullanıcı ayarlarındaki etkileşimli değişiklik, sunucu çağrısına yol açacaktır.

Sonuç olarak, formun görsel sunumunun belirli bir "yarı mamul ürünü" müşteriye iletilir.

Müşteri, görsel formun açıklamasının gerekli iyileştirilmesini sağlar. Dize uzunlukları hesaplanır, istemci ekranın boyutuyla ilişkili uyarlanabilirlik unsurları hesaplanır ve görünürlük uygulanır. Bundan sonra, daha önce olduğu gibi, bir görselleştirici çalışmaya başlar, bu da müşterinin gördüğü son formu oluşturur.

Dizelerin uzunluklarının hesaplanmasının müşteride yapılması nedeniyle, unsurlar arasındaki gereksiz ve doğru olmayan "yuvalardan" kurtulmak mümkündü. Ve müşterinin etrafında dolaşımsız olarak görünürlük gelişimi, formların çalışmalarını hızlandırmasına izin verildi. Form öğelerinin etkinleştirilmesi / devre dışı bırakılması, çünkü en sık kullanılan işlemlerden biridir.

Bazı yeni özellikler

Uyarlanabilir arayüzün unsurları

Öğeleri formda yerleştirmek için yeni mekanizma sadece daha önce olan fırsatları iyileştirir, aynı zamanda yeni özellikler de ekler. Örneğin, formun görünümünü istemci ekranın boyutuna uyarlar. Bunun için birkaç yol kullanılır.

İlk olarak, başlıkların ve manzaranın bir kenarı yüksekliğine sahip satırların otomatik transferi gerçekleştirilir. Nasıl çalışır, resimde görebilirsiniz:

Formda, ayrı kelimelere ayrılabilen uzun çizgiler varsa, bu tür satırlar bir ihtiyaç varsa aktarılır. Buna göre, formun yüksekliği artar, çünkü alt kısmı "ayrılır". Sonuç olarak, form normalde dar ekranlarda bile görünecektir. Dahası, bu mekanizma dinamik olarak çalışır ve bu nedenle formu gerçek zamanlı olarak sıkıştırabilirsiniz ve bununla birlikte uzun çizgiler aktarılır.

Elementlerin başlıkları, grup başlıkları, grup başlıkları, metin manzarası ve köprü ile ilgili düğmelerde metin için otomatik transfer çalışmaları.

İkinci uyarlanabilirlik unsuru, grupların yönünü değiştirmektir. Bir bütün olarak gruplar ve form, yeni bir oryantasyon seçeneği - "yatay olarak, mümkünse" görüntüydü. Bu düzenlemede, istemci ekranı öğeleri yatay olarak konumlandırmanıza izin verirse, yatay olarak bulunurlar. Değilse, dikey olarak bulunurlar.

Üçüncü uyarlanabilirlik elemanı, anahtardaki veya geçişdeki sütun sayısının otomatik olarak belirlenmesidir. Önceden, özel bir talimat yoksa, sütun sayısı maksimum olarak ayarlandı ve bir satırda görüntülendi. Şimdi, aynı durumda, formun genişliği analiz edilir ve sütun sayısı, anahtar / geçiş anahtarının ekranda iyi görüneceği sütun sayısı ayarlanır.

Yatay ve dikey hizalama

Daha önce, böyle bir fırsat yoktu ve farklı olmayan hizaları uygulamak için farklı "hileler" i iciyet etmek zorunda kaldım. Şimdi form ve grup, elemanlarının dikey olarak nasıl hizalanmalı ve yatay hale getirilmesi gerektiği gösterilebilir. Örneğin, aşağıdaki şekilde, bir grup düğme üç olası hizalama seçeneğini gösterir: sol, merkez ve sağ:

Bu modelde, düğmeler yatay olarak gerilmiş geleneksel bir gruba yerleştirilir. Grup içindeki düğmelerin yeri Grup özelliği yatay niteliğinde kontrol edilir.

Dış Hizalama Kontrolü

Örneğin, alanın bulunduğu bir formunuz var, grup adresi ve telefon. Eski mekanizma, bu grupların alanlarını sol rakamda gösterildiği gibi hizalayın. Formdaki alanlar kendileri arasında hizalandı ve her gruptaki alanlar birbirleriyle hizalandı.

Artık hizalama grupları üzerinden yükleme fırsatınız var, sonuçla, örneğin, tüm alan alanlarının eşit şekilde hizalanacağı sonucu. Bu varyantı doğru şekilde gösterilir.

Ayrıca, her grup için uçtan uca hizalamayı ayrı ayrı kontrol edebilirsiniz. Bu nedenle, örneğin, telefon grubu için hizalama yoluyla bağlantısını kesebilir ve daha sonra form doğru çizimde gösterilen gibi görünecektir.

Hizalama elemanları ve başlıkları

Görünen bir başka yeni özellik, elementlerin ve başlıkların karşılıklı düzenlemesini kontrol etme yeteneğidir. Hem tüm formda hem de bireysel gruplarda. Örneğin, başlıklar ve öğeler, formun farklı kenarlarına "gerebilir" veya bunun tersi, "bunları birbirlerine çekin", başlıkları sağa doğru ve elementler - sola doğru yapabilirsiniz.

Elementlerin maksimum genişliğinin kısıtlanması

Önceden, gerilmesi gereken öğeleri belirlediyseniz, eleman mümkün olana kadar uzanır. Örneğin, tam ekran. Bazı unsurlar için, iyi (örneğin, HTML alanı) ve diğer unsurlar için çok iyi olmayabilirdi. Örneğin, sayısal alanlar için. Sayısal veriler veya saha kontrol düğmeleri, sağdan uzak bir yere çıktı.

Artık elemanların, otomatik germe modunu genişlik veya yükseklikte ayarlayabileceğiniz Boolean özelliklerine sahiptir. Bu modda, platform bağımsız olarak, hangi sınırların alanı gerebileceğini belirler. Otomatik mod kapalıysa, platform daha önce olduğu gibi davranır. Alanın belirli bir genişliğini / yüksekliğini belirtirseniz, kullanılacaktır. Ve 0 değeri belirlerseniz, eleman mümkün olana kadar uzanır.

Elemanlar arasındaki mesafe kontrolü

Ayrıca, elementler arasındaki yatay ve dikey aralıkları kontrol etme yeteneği de ortaya çıktı. Örneğin, aşağıdaki şekilde sol grupta dikey aralık arttırılır ve sağa düşürülür.

Germe formunu devre dışı bırakma

Dikey elemanlarını gerdiren başka bir, yeni form çalışma modunu uyguladık. Bu mod, az sayıda öğe içeren formlar için faydalı olacaktır.

Sayfalarda Kaydırmayı Devre Dışı Bırak

Çok sayıda unsur içeren formlar için, birkaç davranış da değiştirdik. Şimdi sayfalardaki dikey kaydırma görünmüyor. Dikey kaydırma şimdi bir tablo, tablo belgesi ve benzeri gibi form öğelerinin içinde veya içinde olabilir. Ve form sayfası her zaman tam bir yüksekliğe sahip olacaktır. Kullanıcı çalışmasını kolaylaştırmalıdır, çünkü formdaki çok sayıda kaydırma sıklıkla karıştırılır ve karıştırır.

Özet

Bu derleme makalesinde, yalnızca formda elemanları yerleştirmek için yeni bir mekanizma veren ana özellikleri listeledik. Ancak görüşümüzde daha az önemli değil ve bu mekanizmada gelecekteki gelişme için önemli bir stok olması gerçeği yoktur.