isimle form çağırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
nfazakli
Üye
Mesajlar: 34
Kayıt: 25 Mar 2005 01:20

isimle form çağırma

Mesaj gönderen nfazakli »

Merhaba,

Programda kullandığım formlar için arama formu yapmak istiyorum. fakat her formun arama formu farklı olacağı için formları isimle çağırmak istiyorum. Örneğin :

Kod: Tümünü seç

public
procedure RunSearchForm;
published
property SearchForm:TComponentName;
Acaba böyle bir arama formu uygulamasını nasıl yapabilirim ismini belirttiğim formu nasıl create edebilirim.

Teşekkür Ederim.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

soyle bir yol izleyebilirsin.
Bir base form olusturup buna
FSearchForm:TForm protected özelligini ekleyelim.
protected bir Search isimli abstract procedure tanımlayalım...
simdi bunları kod olarak :

Kod: Tümünü seç

  TBaseForm = class(TForm)
  protected
    FSearchForm:TForm;
    procedure Search;virtual;
ve Ctrl-C ye basarsanız Search procedurunun govdesini olusturacaktır.
buraya arama formunu create eden, yerini ayarlayan
tum formlar icin ortak ozellikleri ayarlayan kodu girin
hatta KeyPreview true yapıp
bir kısayol ile arama formu cagıracak kodu bile ekleyebilirsiniz.

diger butun formların bu baseform dan tureyecek

Kod: Tümünü seç

TStokFormu=class(TBaseForm)
protected
    procedure Search;override;
ve Ctrl-C ye basarsanız Search procedurunun govdesini olusturacaktır.

Kod: Tümünü seç

procedure TStokFormu.Search;
begin
  inherited;
  //Bu forma ozel arama islemleri kodlarını yazınız
end;
bu sekilde Search procedurunu her form icin yazarak ama
cagırmak icin ekstra bir kod yazmadan (form isimleri ile ugrasmadan)
bu isi becerebiliriz.
ÜŞENME,ERTELEME,VAZGEÇME
nfazakli
Üye
Mesajlar: 34
Kayıt: 25 Mar 2005 01:20

çok teşekkür ederim

Mesaj gönderen nfazakli »

çok teşekkür ederim. şu anda üzerinde çalışıyorum. inşallah çözeceğim..
nfazakli
Üye
Mesajlar: 34
Kayıt: 25 Mar 2005 01:20

çözümü buldum

Mesaj gönderen nfazakli »

çözümü buldum

Kod: Tümünü seç

var
  FormName: string;
  AForm: TForm; 
begin
  Application.CreateForm(TFormClass(FindClass('T'+FormName)), AForm);
end; 

//fakat 

initialization
 RegisterClass(TForm2); 
end. 

//olması gerekiyor muş.. 

Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

gkimirti yazdı:soyle bir yol izleyebilirsin.
Bir base form olusturup buna
FSearchForm:TForm protected özelligini ekleyelim.
protected bir Search isimli abstract procedure tanımlayalım...
simdi bunları kod olarak :

Kod: Tümünü seç

  TBaseForm = class(TForm)
  protected
    FSearchForm:TForm;
    procedure Search;virtual;
ve Ctrl-C ye basarsanız Search procedurunun govdesini olusturacaktır.
buraya arama formunu create eden, yerini ayarlayan
tum formlar icin ortak ozellikleri ayarlayan kodu girin
hatta KeyPreview true yapıp
bir kısayol ile arama formu cagıracak kodu bile ekleyebilirsiniz.

diger butun formların bu baseform dan tureyecek

Kod: Tümünü seç

TStokFormu=class(TBaseForm)
protected
    procedure Search;override;
ve Ctrl-C ye basarsanız Search procedurunun govdesini olusturacaktır.

Kod: Tümünü seç

procedure TStokFormu.Search;
begin
  inherited;
  //Bu forma ozel arama islemleri kodlarını yazınız
end;
bu sekilde Search procedurunu her form icin yazarak ama
cagırmak icin ekstra bir kod yazmadan (form isimleri ile ugrasmadan)
bu isi becerebiliriz.

Ben bunu yapamadım olmadı acaba hatamı yaptım yardımlarınızı bekliyorum arkadaşlar.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Cevapla