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" Peyami 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
  4 İşlem - PDF Çalışma Sayfası Hazırlama Frrst 0 239 25-08-2023, Saat: 09:58
Son Yorum: Frrst
  OrangeUI çoklu dil sorunu nguzeller 1 1.257 11-07-2023, Saat: 12:50
Son Yorum: delphiman
  Görsel Bileşen konusunda uzman arkadaşlar... baloglurecep 1 492 14-01-2023, Saat: 08:49
Son Yorum: cinarbil
  XML Json dosyaları ile Çalışma masteryoda 10 8.791 10-08-2022, Saat: 23:21
Son Yorum: varyemez
  Hangi bileşen tıklandı Aktolgali 8 2.430 10-08-2022, Saat: 22:56
Son Yorum: Aktolgali



Konuyu Okuyanlar: 1 Ziyaretçi