Ç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?
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;
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?
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. - .