Konuyu Oyla:
  • Derecelendirme: 3/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Bileşenden bileşen türetme veya özellik ekleme
#1
Smile 
Merhaba, 
  Bir bileşenden yeni bileşen oluşturup ek özellik ekleyerek kendi bileşenini oluşturmayı öğrenmek istiyorum. Bu konu hakkında epey bir araştırma yaptım fakat görsel olarak anlatılmış (video veya resimli açıklamalar ) bir kaynak bulamadım.  Class yapıları , miras alma, yeni class oluşturma gibi konulara okuyarak deneyerek azda olsa bilgi sahibiyim. Benim tek istediğim Delphiyi açtık. Sonraki adımlar nedir, new unit diyerekmi oluşturmaya başlıyoruz. Adımlar neler bunları gösteren veya yazan bir bilgi bulamadım. Elimde 4 adet delphi kitabı var fakat hiç birinde bunu göremedim.
  Konu hakkında bilginizi benle paylaşır gösterirseniz sevinirim (Tabiki  derin bir konu olduğunu biliyorum, sadece başlangıç aşamasını )
İmkanı olan arkadaşlarımız varsa  bu konu hakkında basit bir video paylaşmaları çok güzel olabilir. Böylece bu konuda ilk türk kaynak olma özelliğinede sahip olmuş olur Smile

Örnek yeni ek bir özelliğe sahip edit veya label gibi....

Teşekkürler
Cevapla
#2
Merhaba,

Bileşenlerden yeni bileşenler oluşturmak için Delphi Package uygulaması oluşturmalısınız.

1. İlk önce IDE üzerinden File > New > Package - Delphi seçeneğini seçerek projeyi oluşturun.
2. Daha sonra normal bir Unit oluşturur gibi ToolPalette'te yer alacak olan komponentinizin (bileşeninizin) ismini yazarak bir pas dosyası oluşturun.
3. Ardından miras alacağınız komponentin kullandığı kütüphaneleri interface'in altındaki uses kısmına ekleyin.
(Standart bir FMX komponenti için; (System.SysUtils, System.Classes, FMX.Types, FMX.Controls))
4. Yeni yazacağınız komponentin miras alacağı komponenti referans alın.
(type TYeniKomponentinAdi = class(TComboBox) gibi)
4. interface'in içerisindeki private deklarasyonlarımıza Object Inspector yada kod üzerinden erişmek, doldur-çağır (write-read) işlemleri yapacağınız özellikleri (property) ekleyin.
(EkAlan:string; gibi)
5. Daha sonra Get ve Set metodlarını yazmamız gerekiyor. (function GetEkAlan:string; ) ve (procedure SetEkAlan(alan:string); ) fonksiyonlarının imzalarını ekleyin.
6. Implementation gövdelerini yazmak için CTRL + SHIFT + C yapın.
7. Şimdi fonksiyonlarınızın gövdelerini şu şekilde doldurun;

function TYeniKomponentinAdi.GetEkAlan:string; 
begin
Result := EkAlan;
end;

procedure TYeniKomponentinAdi.SetEkAlan(alan:string);
begin
EkAlan := alan;
end;


8. Şimdi bu özelliklerin yer aldığı yeni komponentimizin oluşma ve yok olma anlarına göz atalım.
9. public belirtecinin altına yapıcı ve yıkıcı metodları override eden metodları ekleyin.

constructor Create(AOwner: TComponent); override; 
destructor Destroy; override; 

10. Create'in içinde ( inherited; ) yazarak varsayılan metodu tetikleyin. Şimdi de yeni eklediğiniz gelişmiş özellikleri (TStringList, TList vb.) oluşturmanız gerekir.
(FStringList := TStringList.Create; gibi)
11. Destroy'un içinde önce bu gelişmiş özellikleri Free edin. Daha sonra ( inherited; ) yapın.

Şimdi gelelim bu özelliklere komponentinizi kurduğunuzda nasıl erişeceğinize;
12.  "published" isminde eni bir belirteç açmanız gerekiyor. (public'in altına açabilirsiniz) daha sonra;
* property OzelEkAlan: string read EkAlan write SetEkAlan;  şeklinde tüm özel alanlarınızı ekleyin.

13. Şimdi derleyin ve sağ taraftaki Project Manager'dan sağ tuş yaparak Install Component'e basın.
14. IDE'yi yeniden başlatın ve komponentlerinizi kullanmaya başlayın.
Cevapla
#3
Emeğinize sağlık çok teşekkür ediyorum. Harika anlatmışsınız..
Cevapla
#4
Çok açıklayıcı olmuş, elinize sağlık...
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Rest Request Parametre Ekleme m_ekici 9 981 09-02-2026, Saat: 00:33
Son Yorum: m_ekici
  Delphi tms vcl ui pack veya alternatifi eroniko 0 656 25-02-2025, Saat: 20:09
Son Yorum: eroniko
  Delphi IDE project kısmına Klasör ekleme yanniosman 1 696 01-12-2024, Saat: 12:17
Son Yorum: frmman
  saat biciminin algilanmasi 12 saat veya 24 saat sadikacar60 1 712 11-11-2024, Saat: 09:36
Son Yorum: hi_selamlar
  timeLine bileşen bydelphi 3 721 07-10-2024, Saat: 11:10
Son Yorum: bydelphi



Konuyu Okuyanlar: 1 Ziyaretçi