Farklı formdaki Edittin texti boş geliyor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Farklı formdaki Edittin texti boş geliyor

Mesaj gönderen neu84 »

Selam arkadaşlar, Cümleten Hayırlı Ramazanlar..

Çalışma zamanında oluşturdugum editlerin textlerini çekmeye çalışıyorum.
Şu şekilde bi kod yazdım, bi botunada showmessage ile çagırdım, hata vermiyor ancak boş geliyor. editlere deger de giriyorum klavyeden buna ragmen boş geliyo. Eksik olan nedir sizce? Yada yanlış olan?

Kod: Tümünü seç

function TfrmMain.func_txtDegerGetir(txtAdi:string): string;
  var
  myEdit:TEdit;
  strEdit:string;
begin
myEdit:=TEdit.Create(form2);
myEdit:=form2.FindComponent(txtAdi) as TEdit;
Result:=myEdit.Text;
end;
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Farklı formdaki Edittin texti boş geliyor

Mesaj gönderen sabanakman »

-myEdit:=TEdit.Create(form2); satırı gereksiz. Fazlalığı silebilirsiniz. Form2.FindCompenent kodu nedeniyle sadece form2 üzerinde arama yapmaktasınız.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: Farklı formdaki Edittin texti boş geliyor

Mesaj gönderen neu84 »

sabanakman yazdı:-myEdit:=TEdit.Create(form2); satırı gereksiz. Fazlalığı silebilirsiniz. Form2.FindCompenent kodu nedeniyle sadece form2 üzerinde arama yapmaktasınız.
Cevap için tşk ederim. Evet form2 de arama yapıyorum, ulaşamıyor olmamın sebebi scrollbox ın içinde olmasıymış. Form2 de scrollbox var, editlerim onun içinde, scrollbox ı göstermezsem görmedi hata da vermedi. aklımı kurcalayan şu, editler tamam scrollbox ın içinde ama scrollbox ta form2 nin içinde yine de editleri sadece form2 yi gösterinde görmesi gerekmezmiydi? ve neden create dememe gerek yok? o zamanda Access violation hatası vermiycekmi. bazı nesneleri bu şekilde yaratmayınca o hatayı veriyo, bunda neden vermiyo?
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Farklı formdaki Edittin texti boş geliyor

Mesaj gönderen sabanakman »

TEdit.Create(?????) kodu ile hangi bileşeni sahip (owner) olarak belirttiyseniz FindComponent ile ancak o bileşen altında bulabilirsiniz. Burada sahip olarak Form2 yerine ScroolBox ile oluşturduğunuz Editler varsa onları Form2.FindComponent ile bulamazsınız. Çünkü sahibi Form2 değildir. Ayrıca FindComponent ile bulunan nesneler zaten var olan nesnelerdir. Bunlar oluşturulmuş ve kullanıma hazırdırlar. Bileşen yapısı hakkında yüzeysel bilgi olarak viewtopic.php?f=19&t=18415&p=138973 bağlantısındaki ilk kırmızı renkli TStream.WriteComponent(TComponent); satırına kadar göz atabilirsiniz.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
Rew33
Üye
Mesajlar: 70
Kayıt: 10 Tem 2009 02:28

Re: Farklı formdaki Edittin texti boş geliyor

Mesaj gönderen Rew33 »

Kod: Tümünü seç

Result:=(form2.FindComponent(txtAdi) as TEdit).Text;
kodu bu şekilde düzeltirseniz değişken tanımlamanıza gerek kalmaz.
bence bu fonksiyonu form2 'nin içinde public olarak yazarsanız

Kod: Tümünü seç

Result:=(FindComponent(txtAdi) as TEdit).Text;
kodu bu şekilde değiştirseniz de çalışır gibi.
Kimseye hiçbir şey öğretemem, sadece onların düşünmelerini sağlayabilirim.
SOKRATES
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: Farklı formdaki Edittin texti boş geliyor

Mesaj gönderen neu84 »

Cevaplar için tşk ederim arkadaşlar..
Cevapla