Jump to content

Form Links


otaskiran

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

Link to comment
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.

Link to comment
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.

Link to comment
Share on other sites

  • Administrators

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.

Link to comment
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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...