handle ile ulaştığım nesnenin değerini değiştiremiyorum

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

handle ile ulaştığım nesnenin değerini değiştiremiyorum

Mesaj gönderen pentiumkivanc »

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?
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Mesaj gönderen undefined »

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.

Kod: Tümünü seç

SendMessage(Rxdbcomboedit.Handle, WM_SETTEXT, 0, LongInt(PChar(sonuc)));
deneyin
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

@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
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

RxDBComboedit.text özelliği yokmu acep ama ben bu bileşeni hiç kullanmadım bu arada
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Mesaj gönderen undefined »

Derdini daha açık dile getirseydin keşke. Ben senin başka bişey yapma amacında olduğunu zannederek cevap verdim.

Kod: Tümünü seç

table.fielfbyname('ilgifield').asstring := 'hedehödö'; 
gibi bişeyler kullan
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

aradaşlar verdiğiniz cevaplar için teşekkür ederim ancak, veritabanına table.fielfbyname('ilgifield').asstring := şeklinde ulaşmam mümkün olmadığı için handle ile ulaşmaya çalışıyorum. RxDBComboedit.text özelliğini de bu yüzden kullanamam. nesneye ulaşıp handle ile değiştirmem lazım.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

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.
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]
_________________
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

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.
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

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..
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

@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
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

selam kardeş
aslına bakarsanız bazen bu şekilde sizin bahsetttiğiiz gibi sorunlar çıkabilioyor.Ama çok güzel bileşenler var .Aslında onları kullanmak daha mantıklı ama ücretli.Mesela devexpres,Raize gibi kolay gelsin.
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

teşekkürler selman bahsettiğin bileşenleri bi araştırayım.
Cevapla