component

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Tahsinzencir
Üye
Mesajlar: 48
Kayıt: 15 May 2009 12:16

component

Mesaj gönderen Tahsinzencir »

derlediğim bir unit'i nasıl component olarak yüklerim
ertank
Kıdemli Üye
Mesajlar: 1652
Kayıt: 12 Eyl 2015 12:45

Re: component

Mesaj gönderen ertank »

Merhaba,

Component (bileşen) ile unit farklı şeylerdir. Her ünite bileşen olamaz. Ünite içinde bileşen oluşturacak yapıda kod yazılmış olması gereklidir. bir ünite içinde birden fazla bileşen de olabilir. En basit örneklerden birisi aşağıdaki gibidir.

Kod: Tümünü seç

unit uMyComponent;

interface

uses
  System.Classes;

type
 TMyComponent = class(TComponent)
  private
    FComponentVersion: string;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy(); override;
  published
    property Version: string read FComponentVersion;
  end;

{TMyComponent }

implementation

//------------------------------------------------------------------------------
constructor TMyComponent.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  // benim bileşenime özel kodlar bu satırdan sonra başlar.  
  FComponentVersion := '1.0';
end;

//------------------------------------------------------------------------------
destructor TMigrosYemekWS.Destroy();
begin
  // benim bileşenime özel kodlar bu satırdan sonra başlar

  inherited Destroy();
end;

end.
Delphi içinde bileşen listesinde gözükmesini istiyor iseniz bileşen paketi haline getirmelisiniz. Uzun zamandır ihtiyaç duymadım. Genelde kod yazarak kullanırım. Yukarıdaki örnek aşağıdaki şekilde kullanılabilir

Kod: Tümünü seç

uses
  uMyComponent;

var
  MyComponent: TMyComponent;
begin
  MyComponent := TMyComponent.Create(nil); // Form veya data module içinde kod yazılıyor ise Self parametresi kullanılabilir
  try
    ShowMessage(MyComponent.Version);
  finally
    MyComponent.Free();
  end;  
end;
Ancak bu konular hakkında araştırma yapmanız gerekir.

Açık kaynak kodlu bileşenlerin kodlarını inceleyebilirsiniz.
Cevapla