Button Configurator¶
trexMes Main Form veya diğer operasyon formlarındaki standart butonları yapılandırır. Buton görünürlüğü, etiketi, varsayılan handler override durumu gibi ayarları tek seferde yönetir.
Buton İndeksleri¶
Main Form ve operasyon formlarındaki butonlar 0-indexed olarak sıralıdır. Aşağıdaki görselde her butonun ID numarası görünmektedir:

Önemli
props listesindeki p değeri 1'den başlar (kullanıcı dostu). Kod tarafında ButtonIndexType = p - 1 dönüşümü yapılır.
Property Tablosu¶
| Alan | Tip | Varsayılan | Açıklama |
|---|---|---|---|
name |
string | — | Canvas üzerinde gösterilecek ad |
formname |
string | (boş) | Hedef form adı |
formainform |
boolean | false |
Ana form (AppForm) mı? |
props |
array | [] |
Buton konfigürasyon listesi |
props Yapısı¶
Her satır 5 alandan oluşur:
| Anahtar | Açıklama | Örnek |
|---|---|---|
p |
Buton indeksi (1-based) | 1, 2, 3 |
v |
Varsayılan etiket (DefaultCaption) |
"Kaydet" |
d |
Görünür mü? (IsVisible) |
true |
e |
Default handler override? | true (kendi handler'ımız çalışsın) |
f |
Component adı (ComponentName) |
"btnSave" |
[
{
"p": "1",
"v": "Yeni Sipariş",
"d": true,
"e": false,
"f": "btnNewOrder"
},
{
"p": "2",
"v": "Kaydet",
"d": true,
"e": true,
"f": "btnSave"
},
{
"p": "5",
"v": "İptal",
"d": false,
"e": false,
"f": "btnCancel"
}
]
Çıkış Mesajı¶
{
"operationtype": "UIButtonConfig",
"receiveddata": { /* event data */ },
"value": [
{
"ButtonIndexType": 0,
"DefaultCaption": "Yeni Sipariş",
"IsVisible": true,
"IsToOverrideDefaultHandler": false,
"ComponentName": "btnNewOrder"
},
{
"ButtonIndexType": 1,
"DefaultCaption": "Kaydet",
"IsVisible": true,
"IsToOverrideDefaultHandler": true,
"ComponentName": "btnSave"
}
]
}
IsToOverrideDefaultHandler Davranışı¶
| Değer | Anlam |
|---|---|
true |
Panel'in varsayılan buton işlevini iptal et, sadece bizim handler'ımız (Form Events) çalışsın |
false |
Panel'in standart işlevi devam etsin (örn. "İptal" panel default'unda formu kapatır) |
Komponent İsmi Yeniden Tanımlama¶
ComponentName alanı sayesinde sistemdeki buton indeksini özel bir isimle çağırabilirsiniz. Bu sayede:
- Bir
Form Eventsnode'unda buton click yakalarken indeks yerine isim kullanabilirsiniz. - Birden fazla projede aynı isim/iş mantığı tutarlı kalır.
Tipik Akış¶
flowchart LR
A[Business Events] --> B[Custom Form<br/>OrderEntryForm]
B --> C[Form Bind Controls]
C --> D[Button Configurator<br/>Yeni/Kaydet/İptal]
D --> E[Responser]
style A fill:#ccffcc,color:#000
style B fill:#ccffcc,color:#000
style C fill:#ccffcc,color:#000
style D fill:#ccffcc,color:#000
style E fill:#ccffcc,color:#000
Sık Karşılaşılan Hatalar¶
Buton hala görünmüyor / değişmedi
formnamedoğru mu girildi? (formainform: trueiseAppForm)- Buton indeksi geçerli aralıkta mı? (Görsele bakın)
- Akışta
Custom Formönce gelmiş mi?
Buton tıklaması cevapsız kalıyor
IsToOverrideDefaultHandler: true set ettiyseniz mutlaka bir Form Events ile buton click'i yakalayıp işlem yapın. Aksi takdirde tıklama sessizce yutulur.
İpuçları¶
İsim standardizasyonu
ComponentName'leri btnSave, btnCancel, btnNew gibi prefix'li tutmak Form Events node'larında düzenli yakalama sağlar.
Konfigürasyonu reuse etmek
Aynı buton düzenini birden fazla formda kullanıyorsanız bu node'u link out / link in ile paylaşılabilir bir alt-akışa yerleştirin.
İlgili¶
- Custom Form
- Form Events — Buton tıklaması yakalama
- Main Form Action — Buton tetikleme