Form'dan Frame içindeki nesneye nasıl erişilir.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Form'dan Frame içindeki nesneye nasıl erişilir.

Mesaj gönderen pro_imaj »

Merhaba;

Bir formdan bir diğer formun içindeki nesneye ulaşmak için FormunAdi.NesneninAdi.Özellikleri şeklinde erişiyorken;
Bir formdan bir frame içindeki nesneye nasıl erişimi acaba.

Saygılarımla.
Teşekkürler.
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ı
badkursat
Üye
Mesajlar: 84
Kayıt: 03 Mar 2014 08:58

Re: Form'dan Frame içindeki nesneye nasıl erişilir.

Mesaj gönderen badkursat »

Frame nin adresini bilmen lazım. O yüzden Frame nesnelerini bir TList içine al ve TMyFrame(MyList.Items[0]).Nesnelerin yapabilirsin
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Form'dan Frame içindeki nesneye nasıl erişilir.

Mesaj gönderen pro_imaj »

Adresten kastınız nesne bilgileri ise bunu zaten biliyorum.
Frame içinde Edit1 var mesela buraya bir değer göndereceğim.
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]
_________________
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Form'dan Frame içindeki nesneye nasıl erişilir.

Mesaj gönderen ikra »

Kod: Tümünü seç

Form1.Frame1.Edit1.Text
kıdemsiz üye
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Form'dan Frame içindeki nesneye nasıl erişilir.

Mesaj gönderen pro_imaj »

ikra yazdı:

Kod: Tümünü seç

Form1.Frame1.Edit1.Text
Bu şekil olmuyor.

Main formda Bir PageControl var bu pagecontrol içine runtime da Frame oluşturuyorum.
Frame oluşturulmuş üzerinde nesneler design time zamanında ekli. sadece runtime zamanında Pagecontrol içine çağırıyorum.
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]
_________________
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Form'dan Frame içindeki nesneye nasıl erişilir.

Mesaj gönderen ikra »

Parent pagecontrol ise page'in controlcountu ile döngüye gir.

Kod: Tümünü seç

var
  i: integer;
  frm: tmyframe;
begin
  with pagecontrol1 do
    for i := 0 to pred(pages[x].controlcount) do
      if pages[x].controls[i] is tframe then
      begin
        frm := tmyframe(pages[x].controls[i]);
        frm.edit1.text := 'test';
        break;
      end;
end;
kıdemsiz üye
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Form'dan Frame içindeki nesneye nasıl erişilir.

Mesaj gönderen pro_imaj »

@ikra cevabınız için teşekkür ederim. Kod için teşekkür ederim, sorunumu biraz daha açmanın faydalı olacağını düşünüyorum.

1-Main formumda bir adet PageControl var.
2-Main Formun içinde bir adet frame'i runtime da çağırıyorum (Normalde Main formda yok ben bir buton ile PageControl içine çağırıyorum)
3-Oluşan Frame'in içinde bir buton ile başka bir Form çağırıyorum.
4-Çağırdığım bu formda bir işlem yapıyorum ve işlemlerin sonucunu Formu kapatıp sonuç verilerini Frame'in içindeki editlere yazmak istiyorum.

*Neden bir formdaki gibi FormAdi.Nesne adı yazamıyorum çok basit gibi gözüküyor fakat kafayı yedirtecek.
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ı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Form'dan Frame içindeki nesneye nasıl erişilir.

Mesaj gönderen mrmarman »

Şöyle yaparak Frame'i create etmiyor musun ?

Kod: Tümünü seç

Var
  xFrame : TFrame1;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if NOT Assigned( xFrame ) then begin
    xFrame := TFrame1.Create( self );
    xFrame.Parent  := self;
    xFrame.Height  := 100;
    xFrame.Align   := alBottom;
    xFrame.Visible := True;
  end;

end;
Sonra de bu şekilde erişim yapabilirsin. Olmayan nedir bir örnek de senden görürsek anlarız.

Kod: Tümünü seç

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  xFrame.Edit1.Text := 'ARMAN';
end;
Resim
Resim ....Resim
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Form'dan Frame içindeki nesneye nasıl erişilir.

Mesaj gönderen pro_imaj »

mrmarman yazdı:Şöyle yaparak Frame'i create etmiyor musun ?

Kod: Tümünü seç

Var
  xFrame : TFrame1;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if NOT Assigned( xFrame ) then begin
    xFrame := TFrame1.Create( self );
    xFrame.Parent  := self;
    xFrame.Height  := 100;
    xFrame.Align   := alBottom;
    xFrame.Visible := True;
  end;

end;
Sonra de bu şekilde erişim yapabilirsin. Olmayan nedir bir örnek de senden görürsek anlarız.

Kod: Tümünü seç

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  xFrame.Edit1.Text := 'ARMAN';
end;
Frame'i sizin yazdığınız gibi runtime'de create etmiyorum.
Frame Design time anında üzerine nesneler koyulmuş şekilde oluşturdum.

Çağırırken.

Kod: Tümünü seç

AddFrame( 'TTetkik_Frame' ,  'Kalite Tetkik;' );
Şeklinde çağırıyorum.

Zaten olması gerekn de sizin yazdığınız gibi.

Kod: Tümünü seç

xFrame.Edit1.Text := 'ARMAN';
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ı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Form'dan Frame içindeki nesneye nasıl erişilir.

Mesaj gönderen mrmarman »

Zaten ben de burada gösterirken kullandığım TFrame'in runtime'da sadece Frame'ini create ediyorum, üzerindeki TLabel TEdit vs. design time'da daha önceden ekliydi.

AddFrame'i neyin altından çağırıyorsun ? AddFrame procedure sana ait mi yoksa bir class altında mı ? AddFrama procedure yeni frame ne ile yani hangi kod ile oluşturuyor ?

Cımbızla soruyu sordurmadan biraz daha net olursa daha çabuk cevap alabilirsin.
Ayrıca zaten statik bir çağırma amacın olduğuna göre ( statik demişken sorunda geçiyor ya Frame1.Edit1.Text := ''; yazıcam) standart kullanımı yukarıdaki gibi zaten, ona göre böyle standart bir yapıya dönüştürebilirsin. Sonra da başlıkları AddFrame'deki ile güncellersin.
Resim
Resim ....Resim
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Form'dan Frame içindeki nesneye nasıl erişilir.

Mesaj gönderen pro_imaj »

Merhaba, değerli yardımlarınızdan dolayı teşekkür ederim.
Runtime'de Frame oluşturduğum için geçişlere Frame tipinde bir global değişken tanımlayarak çözüldü. @vkamadan

Çözüm;
Siparis_Listesi Formunda

Kod: Tümünü seç

  
  public
   CagiranTetkik : TTetkik_Frame;

Kod: Tümünü seç

uses
  Tetkik;

Kod: Tümünü seç

procedure TSiparis_Listesi_Form.DBGrid2DblClick(Sender: TObject);
begin
CagiranTetkik.Siparis_No_Edit.Text := '99';
Close;
end;

Tetkik Frame'de

Kod: Tümünü seç

procedure TTetkik_Frame.Siparis_No_ButtonClick(Sender: TObject);
begin
Siparis_Listesi_Form.CagiranTetkik := Self;
Siparis_Listesi_Form.Show;
End;
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]
_________________
Cevapla