Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Çalışma Anında Çoklu Bileşen Türetme
#1
Merhaba,

Çalışma anında (Runtime);
Aşağıdaki ekranda Panel2'den Panel1'in içine en kolay nasıl türetebilirim, her bir nesneyi tek tek türetmeden yapmanın kolay bir yolu var mıdır.
Daha basit deyimle Panel2'nin içindeki tüm nesnelerin özellikleriyle birlikte Panel1'in içine istediğim sayıda türetmek istiyorum.

Teşekkürler.
ag5Kup.png
Cevapla
#2
merhaba,
tasarım anında panel2'yi frame içersinde oluştursan
runtime'da ise ilgili frame'i panel1 içinde istedğin sayıda oluşturmayı denedin mi
Cevapla
#3
Basit anlamda bu yapıdan kopyalar oluşturulacaksa Frame'ler çok idealdir. Kullanıcı tanımlı gibi daha değişken ve karmaşık bir işlem için Write/Read-Component metotlarına göz atmak gerekebilir. Owner'ı panel olacak şekilde oluşan nesneleri panel.WriteComponent ile kayıt edebilirsiniz. Daha sonra bu kayıttan ReadComponent ile kopyalar oluşturabilirsiniz.
Cevapla
#4
@pro_imaj , aşağıdaki yazıyı okumanızı tavsiye ederim;

http://www.delphican.com/showthread.php?tid=2602

YouTube Delphi Tips

"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" P.Safa
WWW
Cevapla
#5
Panel2 içerisindekilerle beraber bağımsız bir komponent olarak oluşturulup derlense, sonra bu projede runtime'da ihtiyacınız kadarını döngüye alıp üretip parent atamasını yapsanız nasıl olur? En derli toplu ve pratik yöntem bu gibi geliyor bana.
Cevapla
#6
Değerli tavsiyeleriniz için teşekkür ederim, konuyla ilgili tavsiyeleriniziokuyorum araştırıyorum.

Görsel olarak yapmak istediğim şey aşağıdaki gibi bir yapıyı standart bileşenlerle delphide kurmak.
vUvq1G.png
Cevapla
#7
(20-08-2019, Saat: 11:37)serdar Adlı Kullanıcıdan Alıntı: Merhaba bunu kullanabilirsiniz

https://drive.google.com/open?id=1xUo5AR...YRAPYLM4Jm

(03-09-2019, Saat: 18:16)sabanakman Adlı Kullanıcıdan Alıntı: Basit anlamda bu yapıdan kopyalar oluşturulacaksa Frame'ler çok idealdir. Kullanıcı tanımlı gibi daha değişken ve karmaşık bir işlem için Write/Read-Component metotlarına göz atmak gerekebilir. Owner'ı panel olacak şekilde oluşan nesneleri panel.WriteComponent ile kayıt edebilirsiniz. Daha sonra bu kayıttan ReadComponent ile kopyalar oluşturabilirsiniz.

Merhabalar,

Fikir oluşturması açısında veya,

1. DBCtrlGrid
2. https://www.tmssoftware.com/site/advcardlist.asp
3. cxGrid List

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#8
(04-09-2019, Saat: 11:18)hi_selamlar Adlı Kullanıcıdan Alıntı:
(20-08-2019, Saat: 11:37)serdar Adlı Kullanıcıdan Alıntı: Merhaba bunu kullanabilirsiniz

https://drive.google.com/open?id=1xUo5AR...YRAPYLM4Jm

(03-09-2019, Saat: 18:16)sabanakman Adlı Kullanıcıdan Alıntı: Basit anlamda bu yapıdan kopyalar oluşturulacaksa Frame'ler çok idealdir. Kullanıcı tanımlı gibi daha değişken ve karmaşık bir işlem için Write/Read-Component metotlarına göz atmak gerekebilir. Owner'ı panel olacak şekilde oluşan nesneleri  panel.WriteComponent ile kayıt edebilirsiniz. Daha sonra bu kayıttan ReadComponent ile kopyalar oluşturabilirsiniz.

Merhabalar,

Fikir oluşturması açısında veya,

1. DBCtrlGrid
2. https://www.tmssoftware.com/site/advcardlist.asp
3. cxGrid List

Kolay gelsin.

Cevap için teşekkürler, yukarıda yazmıştım gözünüzden kaçmış, standart bileşenlerle yapmak istiyorum. Nedeni; Malum artık hem mobil hem web projelerde var, bahsettiğiniz componenelerle bu mümkün değil.
Cevapla
#9
Merhaba, bu işlemi şu şekilde çözdüm;

1-Yeni bir frame oluşturup hangi nesneleri göstermek istiyorsam tek tek ekledim.
2-Bir form içine Panel koyarak frame'i bu panel içinde istediğim kadar çağırdım.

procedure TMainForm.UniFormCreate(Sender: TObject);
begin
 UrunOlustur;
end;

procedure TMainForm.UrunOlustur;
var
 i: Integer;
begin
 Randomize;
 for i := 0 to 10 do
 begin
   with TUniFrame1.Create(UniPanel1) do
   begin
     Parent:= UniPanel1;
     Name:= 'Urun'+IntToStr(i);
     UniBitBtn1.OnClick := Ekle;
     UniBitBtn1.Tag := i;
   end;
 end;
end;

procedure TMainForm.Ekle(Sender: TObject);
begin
 if QSepet.Locate('UrunAd', 'Urun'+IntToStr((Sender as TUniBitBtn).Tag), [loCaseInsensitive] ) then
 begin
   Showmessage(' Sepete Eklendi.');
 end;
end;

Buna benzer bir sonuç elde etmek mümkün oldu.
4csbZX.png
Cevapla
#10
Delphi'de Component Template diye bir olay var. Bu gibi durumlar için çok yararlıdır:

http://docwiki.embarcadero.com/RADStudio..._Templates
There's no place like 127.0.0.1
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Listeleme çoklu ve random ekank 3 411 21-07-2020, Saat: 14:54
Son Yorum: hi_selamlar
  Zebedee ile daha önce çalışma yapan oldumu. Ahmet İPEKÇİ 2 340 25-06-2020, Saat: 01:06
Son Yorum: sadettinpolat
  OrangeUI çoklu dil sorunu nguzeller 0 298 17-05-2020, Saat: 12:15
Son Yorum: nguzeller
  Table Bileşen Yazımında Event Yakalama (BeforeDelete Beforepost vb.) ugorkem 2 571 01-05-2020, Saat: 14:35
Son Yorum: ugorkem
  Radyo için Bileşen ercanskose 10 1.710 20-02-2020, Saat: 23:53
Son Yorum: ercanskose



Konuyu Okuyanlar: 1 Ziyaretçi