Birden fazla component create etmek?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Birden fazla component create etmek?

Mesaj gönderen hdayi »

Merhaba,
Yaptığım programda şekilde görüldüğü gibi yerleştirilmiş groupbox'lar var.
Bunları runtime'da nasıl oluşturabilirim? Verilen bir parametre ile mesela 10x7 tane oluşturmak istiyorum.

Teşekkürler
Resim
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

eğer oluşturmak istediğiniz grupboxların sayısı sabit ise diziGrupBox dizisinin eleman sayısı ile oynayarak aşağıdaki kodu kullanabilirsiniz. aksi halde diziGrupBox dizisini dinamik dizi olarak tanımlamanız gerekecek.

Kod: Tümünü seç

  public
  diziGrupBox :array [0..14] of TGroupBox;
  procedure GrupBoxlariOlustur(const x,y:byte);

Kod: Tümünü seç

procedure TForm1.GrupBoxlariOlustur(const x, y: byte);
var
sayac,i,j,intLeft,intTop:Integer;
begin

intLeft := 100;
intTop := 100;
sayac := 0;
for i:=0 to x do
Begin
  for j:=0 to y do
  Begin
    diziGrupBox[sayac]:=TGroupBox.Create(Self);
    diziGrupBox[sayac].Parent := Self;
    diziGrupBox[sayac].Width := 50;
    diziGrupBox[sayac].Height := 50;
    diziGrupBox[sayac].Name := 'grupbox'+IntToStr(Sayac);
    diziGrupBox[sayac].Left := intLeft;
    diziGrupBox[sayac].Top := intTop;
    Inc(intLeft,60);
    Inc(Sayac);
  end;
  Inc(intTop,60);
  intLeft := 100;
end;

end;

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
  GrupBoxlariOlustur(4,2);
end;
işimiz bitince yok ediyoruz

Kod: Tümünü seç

for i:=0 to 14 do
begin
  FreeAndNil(diziGrupBox[i]);
end;

En son sadettinpolat tarafından 29 Haz 2004 12:57 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
    AyTakvim:TMonthCalendar;
begin
    AyTakvim := TMonthCalendar.Create(Self);
    AyTakvim.Parent := Form1;
end;
Bu Şekilde Create edersin.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

hehühü bende bi örnek yapmıştım tam göndericem hüsonet hocam daha hızlı çekmiş silahını neyse bende paste edeyim bari :)

iki buton koyun bunlardan biri create eder diğeri is istediğiniz edite istediğiniz işlemi yaptırır :) fikir babında

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
   myEdit :TEdit;
   i,y:integer;
begin
for i:= 0 to 9 do begin
 for y:= 0 to 9 do begin
       myEdit:= TEdit.Create(Self);
       MyEdit.Parent := Self;
       myEdit.Name:= 'Edit'+inttostr(i)+inttostr(y);
       myEdit.Tag:= i*10+y;
       myEdit.Text := myEdit.Name;
       myEdit.Top := 10+i*30;
       myEdit.Left := 10+(y-1)*60;
       myEdit.Width := 50;
       myEdit.Height := 20;
 end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
for I := 0 to (ComponentCount - 1) do
    if TEdit(Components[I]).Tag = 55 then
      TEdit(Components[I]).Text:= 'Budur';
end;
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Teşekkürler,
halletim, ellerinizesağlık.
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Cevapla