Hangi Formdan Gelindiği

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
F.Atagun
Üye
Mesajlar: 158
Kayıt: 01 Oca 2008 01:56

Hangi Formdan Gelindiği

Mesaj gönderen F.Atagun »

Merhaba,
Formlarla ilgili forumda cevabını bulamadığım bir sorum olacaktı.

Ben Formları aşağıdaki şekilde oluşturuyorum.

Kod: Tümünü seç

unit Unit2;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    btn1: TButton;
    edt1: TEdit;
    procedure btn1Click(Sender: TObject);
  private
  public
  end;
 procedure Form2Ac;
//var
  //Form2: TForm2;
implementation

 uses
    Unit3;
{$R *.dfm}

procedure Form2Ac;
var
  Form2: TForm2;
begin
    Form2:=TForm2.Create(nil);
    Form2.Show;
end;
end.

Yapmak istediğim;
Form3de bulunan labelin değerini Form2ye aktarmak istemem.

Kullanıcı Birkaç tane form2 oluşturdu diyelim. Form3, hangi form2ye veriyi aktaracagını nasıl bilecek ?

Teşekkürler
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Hangi Formdan Gelindiği

Mesaj gönderen csunguray »

Diyelim 3 tane Form2 var. Sen hangisine aktarmak istiyorsun?
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
F.Atagun
Üye
Mesajlar: 158
Kayıt: 01 Oca 2008 01:56

Re: Hangi Formdan Gelindiği

Mesaj gönderen F.Atagun »

Mesela 3 tane form 2 açtık.
2. açılan form2'ye aktarmak istiyoruz
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Hangi Formdan Gelindiği

Mesaj gönderen csunguray »

Neden 2. Form. 2. Form2 nin belirgin bir özelliği olması gerekir?
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
F.Atagun
Üye
Mesajlar: 158
Kayıt: 01 Oca 2008 01:56

Re: Hangi Formdan Gelindiği

Mesaj gönderen F.Atagun »

Kod: Tümünü seç

procedure Form2Ac;
var
  Form2: TForm2;
begin
    Form2:=TForm2.Create(nil);
    Form2.Show;
end;
Kardeş, Şu şekilde toparlıyayım.
Yukarıdaki yolla bir sürü Form2 oluşturuldu diyelim.
Yapmak istediğim; Form2den Form3ü açarak, Form3de bulunan labelin içeriğini Form2ye aktarmak.

Forumda okuduklarımdan şöyle bir çözüm olabilir diye düşünüyorum ama yapamadım
Form2nin handle değerini Form3e gönderirsek, Form3 hangi form2 den geldiğini anlar diye düşünüyorum.

Mantık sanırım böyle ama nasıl uygulayacagız ?
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Hangi Formdan Gelindiği

Mesaj gönderen csunguray »

Form3 içeriği

Kod: Tümünü seç

unit Form3;

interface

uses
  Form2, falanfilan.....

type
  TForm3 = class(TForm)
    falanfilan....
    procedure Form2Ac;
    procedure LabelGoster;
  private
    { Private declarations }
  public
    { Public declarations }
    MyForm2: TForm2;
  end;

var
  Form3: TForm3;

implementation

uses falanfilan.....;

{$R *.dfm}

procedure TForm3.Form2Ac;
begin
  MyForm2 := TForm2.Create(nil);
  MyForm2.Show;
end;

procedure TForm3.LabelGoster;
begin
  MyForm2.Labelxx := 'AliVeli';
  ShowMessage('Label değeri: ' + MyForm2.Labelxx);
end;

end.
1. Form2 bir MdiChild form ise nasıl oluyor da TForm2.Create(nil) ile oluşturuyorsunuz. Bu durumda bu form hiç bir Mdi ana fomun içerisinde yer almaz.

2. Form2 içerisinden birden fazla Form2 oluşturacaksanız MyForm2_1, MyForm2_2 diye tanımlamaları çoğaltabilirsiniz.

3. Eğer Form2 bir MdiChild form değilse formu yaratırken TForm2.Create(Self) diye yaratırsanız Form2 nin owner'ı (sahibi) Form3 olur. Böylece Form3 ü kapattığınızda (daha doğrusu Free ile yok ettiğinizde) otomatikman Form3'e bağlı oluşturulmuş tüm Form2'ler de yok edilir.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Hangi Formdan Gelindiği

Mesaj gönderen vkamadan »

csunguray yazdı:Form3 içeriği
3. Eğer Form2 bir MdiChild form değilse formu yaratırken TForm2.Create(Self) diye yaratırsanız Form2 nin owner'ı (sahibi) Form3 olur. Böylece Form3 ü kapattığınızda (daha doğrusu Free ile yok ettiğinizde) otomatikman Form3'e bağlı oluşturulmuş tüm Form2'ler de yok edilir.
Evet bir çok Form3 varsa ve her form3 bir çok Form2 üretiyorsa Form2 leri oluşturuken @csunguray ın belirttiği gibi Owner olarak Form3 ü belirtmelisiniz, ve form2 nin içindeki LabelYaz prosedürü aşağıdakine benzemeli

Kod: Tümünü seç

  if Self.Owner is TForm3 then TForm3(Self.Owner).Label2.Caption :='Denemee';
Volkan KAMADAN
www.polisoft.com.tr
F.Atagun
Üye
Mesajlar: 158
Kayıt: 01 Oca 2008 01:56

Re: Hangi Formdan Gelindiği

Mesaj gönderen F.Atagun »

Teşekkür Ederim
Verdiğiniz bilgiler ışıgında çözüme kavuştum.
Cevapla