Jump to content
uniGUI Discussion Forums
Sign in to follow this  
otaskiran

Form Links

Recommended Posts

Merhaba,

 

Örnek projemde 2 form var. İlk form listeleme ve datasetlerin olduğu form, ikinci form iste listedeki elemanın tanım formu. Tanım formunda dbeditler mevcut. İkinci formdaki dbedit lere birinci formdaki dataseti ilk esnada başarıyla bağlıyorum. Ancak projeji kapatığ açtığımda "Module XXX links to module XXX which cannot be found in the current project. Do you wish to remove/redirect the links to another module?" soru ile karşılaşıyorum ve linkleri kaldırıyor.

 

Bu hatayı normal vcl projesi olsa neden aldığını biliyorum ancak bu projemde bir sorun yok ve bu dialog penceresi sürekli geliyor. Çözüm önerisi yada tecrübe etmiş arkadaş var mıdır?

post-3900-0-54234700-1503482402_thumb.png

Share this post


Link to post
Share on other sites

Merhaba,

 

Hiçbir zaman bir formdaki controlleri başka bir formdaki dataset'lere bağlamyın. Bunun için MainModule veya uniGUI wizard'dan yarattığınız DataModule'leri kullanın.

 

Bu problem Delphi VCL'de de aynen karşınıza çıkacaktır.

Share this post


Link to post
Share on other sites

Bu sorunun cikmamasi icin illaki baska bir formdaki dataset e baglanti yapacaksam. ilgili forma bir datasource ekliyorum.Tum bilesenleride bu datasource e iliskilendiriyorum. formun onshow olayinda da  kodla bu datasource baska formdaki datasete bagliyorum.

Boylece o hata mesaji cikmiyor.

Share this post


Link to post
Share on other sites

Tekrar merhaba arkadaşlar,

 

Sorunun üzerine ısrar etmek istemiyorum ancak ilk formum zaten parent ve ikinci formda child mantığında bir form.

DataModule leri olabildiğince kullanırım ancak yüzlerce formlu bir uygulamada dataset ve db objelerini olabildiğince bağımsız olarak parent formlarda konumlandırırım ve child lar ile arasında ilişki olarak child formlarda sorunsuzca data gösteririm. Bin adetlik formu olan projemde var ve bu tarz sorun yok. Child form kesinlikle parent form create ve show olmadan açılabilecek bir form değil, bu nedenle linkler mutlaka kurulur ve sorun olmaz. Ancak burada UniGui ye özel durum varsa bilemiyorum.

 

Yüzlerce form olan bir uygulama tüm datasetleri datamodule e konumlandırmak karışıklığa ve takip zorluğuna hatta ,yüzlerce dataset olduğunda datamodule un create olması bile bellek kullanımını gereksiz yere kullanılmayan objeler nedeniyle arttırır diye düşünüyorum.

Share this post


Link to post
Share on other sites

Tasarım prensibi olarak da kesinlikle bunu yapmanızı tavsiye etmiyorum. Sadece dataset'ler değil. İki form hiçbir zaman doğrudan birbirini referans göstermemeli. uniGUI'de formlar dinamiktir. Framework tarafından gerektiği zaman yaratılırlar ve kapatıldıkları anda otomatik şekilde yok edilirler. Bu yüzden bir form diğer formdaki bileşenlere bağlamak bizim açımızdan doğru değildir.

 

İllaki datamodule kullanmak istemiyorsanız o zaman her form için ayrı dataset'ler kullanın ve ilgili formun üzerine yerleştirin.

 

Yalnız bu sorun sadece tasarım anında olan bir sorundur. Runtime'da tabiki bir form diğer bir formun bileşenlerini kullanabiliyor (tabi üstte bahsettiğim sakıncalarla beraber) . Tasarım anında ise eğer parent form IDE'de açık ise sorun olmaması lazım. Sorun ilgili form kapalı ise kendini gösterir. Bu VCL'de de aynıdır diye biliyorum.

Share this post


Link to post
Share on other sites

VCL de form açık olsada kapalı olsada sorun olmuyor. Child form açık, parent form kapalıyken bile linkte sorun görünmüyor. Ancak bu projede gördüm ki bunu design time da desteklemiyor. Bende ona göre hareket edeceğim. Her forma dataset eklemeyi seçmiştim bende şimdilik. Bilgilendirme için teşekkür ederim.

 

Herkese kolay gelsin.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×