handle ile ulaştığım nesnenin değerini değiştiremiyorum
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
handle ile ulaştığım nesnenin değerini değiştiremiyorum
selamlar
Rxtools dan RxDBComboedit diye bildiğimiz dbedit e benzer bi bileşen var. ben bu bileşene
setwindowtext(RxDBComboedit,pchar(sonuc));
şeklinde değer yolluyorum. Bu yöntemle bildiğimiz dbeditlerde başarılı sonuçlar alırken, bu veya buna benzer bazı bileşenlerde değeri değiştirmesine rağmen nesneden çıkınca veya kaydederken, içine handle ile yolladığım değer kayboluyor. acaba bunun sebebi nedir? nasıl çözülebilir?
Rxtools dan RxDBComboedit diye bildiğimiz dbedit e benzer bi bileşen var. ben bu bileşene
setwindowtext(RxDBComboedit,pchar(sonuc));
şeklinde değer yolluyorum. Bu yöntemle bildiğimiz dbeditlerde başarılı sonuçlar alırken, bu veya buna benzer bazı bileşenlerde değeri değiştirmesine rağmen nesneden çıkınca veya kaydederken, içine handle ile yolladığım değer kayboluyor. acaba bunun sebebi nedir? nasıl çözülebilir?
Rxdbcomboedit.handle olmasın o ?
Eğer o konuda bir yanlışlık yoksa,
kullandığınız fonksiyoun yüksek ihtimalle nesneye mesagge yolluyor. Eğer nesne bu message ı alıp işlenmeye ayarlanmamışsa bu durum oluşuyodur. 3. parti VCL'ler standartlara uymayabiliyor.
Veya doğru fonksiyonu kullanmıyorsunuz.
deneyin
Eğer o konuda bir yanlışlık yoksa,
kullandığınız fonksiyoun yüksek ihtimalle nesneye mesagge yolluyor. Eğer nesne bu message ı alıp işlenmeye ayarlanmamışsa bu durum oluşuyodur. 3. parti VCL'ler standartlara uymayabiliyor.
Veya doğru fonksiyonu kullanmıyorsunuz.
Kod: Tümünü seç
SendMessage(Rxdbcomboedit.Handle, WM_SETTEXT, 0, LongInt(PChar(sonuc)));
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
@undefined özür dilerim setwindowtext(RxDBComboedit.handle,pchar(sonuc)); şeklinde gönderiyorum. yukarıya yazarken yanlış aktardım ama SendMessage(Rxdbcomboedit.Handle, WM_SETTEXT, 0, LongInt(PChar(sonuc))); şeklindeki bir yazımla da dediğim gibi oldu.
Yani esasen derdim nesneye veriyi yollamak değil onu zaten yapabiliyorum. benim sıkıntım nesneye veriyi yolladıktan sonra nesneden çıkınca veya kaydı post ederken nesneye yolladığım değer yerine eski değere dönüş yapıyor. normal dbeditte bi sıkıntı yok ancak bu bileşende sorun yaşıyorum
Yani esasen derdim nesneye veriyi yollamak değil onu zaten yapabiliyorum. benim sıkıntım nesneye veriyi yolladıktan sonra nesneden çıkınca veya kaydı post ederken nesneye yolladığım değer yerine eski değere dönüş yapıyor. normal dbeditte bi sıkıntı yok ancak bu bileşende sorun yaşıyorum
Derdini daha açık dile getirseydin keşke. Ben senin başka bişey yapma amacında olduğunu zannederek cevap verdim.
gibi bişeyler kullan
Kod: Tümünü seç
table.fielfbyname('ilgifield').asstring := 'hedehödö';
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
Merhaba,
Bahsettiğiniz şekilde normal dbedite bilgi yolladığınızda aynı sonucu almadığınızdan eminmisiniz ?
Böyle bir sorun benim başıma normal bir combox tan dbedite bilgi yollarken oluşmuştu. Bu tip sorunlarda veri db bileşenlerde gözüküyor ama halbuki orada o veri yok
Ben sorunu edite farklı şekilde bilgi yolluyarak çözmüştüm.
Not:Normal olarak kaydedince sorun olmuyor sadece kaydetmeden önce o bileşene tıklandığında bu sorun gözüküyor değilmi.
Saygılarımla
Kolay gelsin.
Bahsettiğiniz şekilde normal dbedite bilgi yolladığınızda aynı sonucu almadığınızdan eminmisiniz ?
Böyle bir sorun benim başıma normal bir combox tan dbedite bilgi yollarken oluşmuştu. Bu tip sorunlarda veri db bileşenlerde gözüküyor ama halbuki orada o veri yok
Ben sorunu edite farklı şekilde bilgi yolluyarak çözmüştüm.
Not:Normal olarak kaydedince sorun olmuyor sadece kaydetmeden önce o bileşene tıklandığında bu sorun gözüküyor değilmi.
Saygılarımla
Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
teşekkür ederim pro_imaj
bilinen dbeditte sıkıntı olmuyor. 3. parti bileşenlerden birini kullanınca bu sorunu yaşıyorum. esasen sorun query in edit modunda olmamasından ziyade nesnenin onchange olayını algılamamasından kaynaklanıyor. dataset edit modda olsa bile yapılan değişiklik nesne üzerinde değişse dahi datasete yansımıyor. hatta şunu denedim: nesnenin onchange olayına showmessage ile uyarı vermesini yazdım, sonra nesneye handle ile veri yolladım ve change olayı tetiklenmedi. bileşen yapısı gereği veritabanındaki değişikliği sadece onchange den sonra edit ediyor. sanırım bu sorunu çözmenin tek yolu 3. parti bileşen kullanmamak.
bilinen dbeditte sıkıntı olmuyor. 3. parti bileşenlerden birini kullanınca bu sorunu yaşıyorum. esasen sorun query in edit modunda olmamasından ziyade nesnenin onchange olayını algılamamasından kaynaklanıyor. dataset edit modda olsa bile yapılan değişiklik nesne üzerinde değişse dahi datasete yansımıyor. hatta şunu denedim: nesnenin onchange olayına showmessage ile uyarı vermesini yazdım, sonra nesneye handle ile veri yolladım ve change olayı tetiklenmedi. bileşen yapısı gereği veritabanındaki değişikliği sadece onchange den sonra edit ediyor. sanırım bu sorunu çözmenin tek yolu 3. parti bileşen kullanmamak.
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Merhaba.
Bahsettiğiniz bileşen (ve setteki diğer bileşenler..) hiçbir fark olmaksızın standart CustomEdit sınıfından (temelde..) türetilmiştir ve ilgili eventlerde ya da alt yordamlarda herhangi bir override söz konusu değildir..Kullandığınız kodları tam olarak görmeden birşey söylemek güç, ancak anormal bir durum olmadığını da belirtmek isterim.
Kolay gelsin..
Bahsettiğiniz bileşen (ve setteki diğer bileşenler..) hiçbir fark olmaksızın standart CustomEdit sınıfından (temelde..) türetilmiştir ve ilgili eventlerde ya da alt yordamlarda herhangi bir override söz konusu değildir..Kullandığınız kodları tam olarak görmeden birşey söylemek güç, ancak anormal bir durum olmadığını da belirtmek isterim.
Kolay gelsin..
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
@bLue aLonE handle ile ulaşmak için kullandığım kodları yukarda yazdım. bunun dışında bir kod yok. ama yine de sıralamak gerekirse
1- bir butona tıklanması esnasında ibquery edit moduna alınıyor.
2- sonra farklı bir formun propertisine kendisini çağıran nesnenin handle değeri ve ilgili table dan sorgu yapan sql komutu yolllanıyor (butonun yanındaki edit oluyor bu, örneğin dbedit ise db editin yanındaki butona tıklanınca diğer formu aç ve o forma ilgili db editin handle bilgisini ve çağırılmak istenen kaydın sql sorgusunu property ile aktarılarak)
3- açılan formda ilgili sql doğrultusunda seçilen kaydın içeriğini kendini çağıran nesneye (handle bilgisi oluyor) setwindowtext(CagiranNesneninHandleBilgisi,pchar(sonuc)); yoluyla aktarılıyor
4- çağıran dbedit,RxDBComboedit veya türevinin değerinin istediğim gibi değiştiği görülüyor
şimdi sorun ise şurda eğer çağıran nesne dbedit ise hiçbir sorun yok kaydı post ediyorum ve verdiğim değeri db e kaydediyor ancak RxDBComboedit ise içine handle ile getirdiğim değeri kayıt esnasında yok sayıyor. şayet yapı olarak dbedit (yani standart dataacces bileşenleri) ile RxDBaware bileşenleri aynı olsa hiçbir sıkıntım olmadan zaten kaydımı yapacam arada biyerlerde bi fark olduğu için kayıt yapamıyorum. yani kodlarda bi sorun yok. yöntem de doğru. bileşenin kayıt mantığıyla standart db controllerin kayıt mantıkları farklı olduğu için sorun yaşıyorum. Bunun çözümü de 3. parti bileşen kullanmamak gibi geldi bana
1- bir butona tıklanması esnasında ibquery edit moduna alınıyor.
2- sonra farklı bir formun propertisine kendisini çağıran nesnenin handle değeri ve ilgili table dan sorgu yapan sql komutu yolllanıyor (butonun yanındaki edit oluyor bu, örneğin dbedit ise db editin yanındaki butona tıklanınca diğer formu aç ve o forma ilgili db editin handle bilgisini ve çağırılmak istenen kaydın sql sorgusunu property ile aktarılarak)
3- açılan formda ilgili sql doğrultusunda seçilen kaydın içeriğini kendini çağıran nesneye (handle bilgisi oluyor) setwindowtext(CagiranNesneninHandleBilgisi,pchar(sonuc)); yoluyla aktarılıyor
4- çağıran dbedit,RxDBComboedit veya türevinin değerinin istediğim gibi değiştiği görülüyor
şimdi sorun ise şurda eğer çağıran nesne dbedit ise hiçbir sorun yok kaydı post ediyorum ve verdiğim değeri db e kaydediyor ancak RxDBComboedit ise içine handle ile getirdiğim değeri kayıt esnasında yok sayıyor. şayet yapı olarak dbedit (yani standart dataacces bileşenleri) ile RxDBaware bileşenleri aynı olsa hiçbir sıkıntım olmadan zaten kaydımı yapacam arada biyerlerde bi fark olduğu için kayıt yapamıyorum. yani kodlarda bi sorun yok. yöntem de doğru. bileşenin kayıt mantığıyla standart db controllerin kayıt mantıkları farklı olduğu için sorun yaşıyorum. Bunun çözümü de 3. parti bileşen kullanmamak gibi geldi bana
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim: