Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi komponente selber erstellen!!???!!! (https://www.delphipraxis.net/8996-komponente-selber-erstellen.html)

ffomoon 16. Sep 2003 14:21


komponente selber erstellen!!???!!!
 
ich hab mal versucht ein komponente selber zu erstellen!
ich sag mal ebend vobei es sich genau dreht:
also ich brauch sowas wie eine ComboBox die daten aus einer tabelle lesen kann(wie die DBLookUpComboBox)
und in der ich items add'en kann(wie die normale ComboBox)
so jezz hab ich mal ein wenig damit beschäftigt und komm einfach nicht mehr klar!!
also ich hab bis jezz die klasse abgeleitet

TLookCombo = class(TDBLookupComboBox)

dann die procedure

public
procedure ADDItems (:String);
{ Public-Deklarationen }

und nun?

wie leg ich fest das die komponente die zusätzliche eigenschaft 'additem wie in der normalen combobox erhält?

es wäre toll wenn mir jemand das ganze mal von anfang bis ende erläutern könnte!!

danke moon

Christian Seehase 16. Sep 2003 14:26

Re: komponente selber erstellen!!???!!!
 
Moin Moon,

ich versteh' jetzt Dein Problem nicht.
Wenn Du eine Methode unter Public hinzufügst, steht sie anschliessend auch zur Verfügung. Da musst Du nichts weiter machen.

ffomoon 16. Sep 2003 14:36

Re: komponente selber erstellen!!???!!!
 
naja aber irgendwo muss ich doch festlegen welche eigenschaft wie benutzt wird!
also zB bei der Combobox kann ich ja items hinzufügen!!
bei der lookupcombob... nicht aber irgendwie muss ich doch diese eigenschaft rüber bekommen blos wie versteh ich nicht!!

verstehste wie ich mein??
wo leg ich das den fest (und vorallem wie leg ich das fest)

mfg

moon

Christian Seehase 16. Sep 2003 14:42

Re: komponente selber erstellen!!???!!!
 
Moin Moon,

Items sind ein private Feld in der ComboBox, abgeleitet vom Typ TStrings.
I.d.R. werden die internen Datenbereiche einer Kompo als private Felder implementiert, und als Properties dann nach aussen hin zugänglich gemacht.
Ist die Eigenschaft selber wieder ein Objekt (wie eben bei den Items), so dienen die Methoden eben dieses Objektes dazu die Eigenschaft zu manipulieren (z.b. Einträge hinzuzufügen).

ffomoon 17. Sep 2003 06:58

Re: komponente selber erstellen!!???!!!
 
oh man das versteh ich nicht ganz richtig!

also ich man das ja noch nicht lange!

Properties?????

ich hab ja schon so einiges gehört aber das kenn ich net!!
kannste mir das mal erklären!

mfg

moon

Christian Seehase 17. Sep 2003 11:26

Re: komponente selber erstellen!!???!!!
 
Moin Moon,

mal ein Beispiel:

Delphi-Quellcode:
type
  TMyObject = class(TObject)
  private
    FslLines : TStringList;
  public
    constructor Create;
    destructor Destroy; override;
    property Lines : TStringList read FslLines;
  end;

implementation

{$R *.DFM}

constructor TMyObject.Create;
begin
  inherited;
  FslLines := TStringList.Create;
end;

destructor TMyObject.Destroy;
begin
  FreeAndNil(FslLines);
  inherited;
end;

procedure TForm1.Button1Click(Sender: TObject);

var
  mo : TMyObject;

begin
  mo := TMyObject.Create;
  try
    mo.Lines.Add('TEXT');
    ShowMessage(mo.Lines[mo.Lines.Count-1]);
  finally
    FreeAndNil(mo);
  end;
end;
Das wäre jetzt ein Objekt, dass eine Eigenschaft Lines hat, die wiederum vom Typ TStringList ist.
Lines kann alle Methoden und Eigenschaften der Klasse TStringList verwenden.
Die müsstest Du also nicht selber implementieren.

Motzi 17. Sep 2003 11:29

Re: komponente selber erstellen!!???!!!
 
Vielleicht hilft dir meine Ausarbeitung über OOP in Delphi ein bisschen weiter: www.x-spy.net/personal


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz