otaskiran Posted August 23, 2017 Share Posted August 23, 2017 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? Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 23, 2017 Administrators Share Posted August 23, 2017 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. Quote Link to comment Share on other sites More sharing options...
mehmet07 Posted August 23, 2017 Share Posted August 23, 2017 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. Quote Link to comment Share on other sites More sharing options...
otaskiran Posted August 23, 2017 Author Share Posted August 23, 2017 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. Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted August 23, 2017 Administrators Share Posted August 23, 2017 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. Quote Link to comment Share on other sites More sharing options...
otaskiran Posted August 23, 2017 Author Share Posted August 23, 2017 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.