Thema: Delphi TEdit in Klasse ?

Einzelnen Beitrag anzeigen

TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#25

Re: TEdit in Klasse ?

  Alt 9. Mai 2005, 08:36
Moin

1.) fehlt in deinem Constructor immer noch das "inherited" am Anfang.

2.) sollten die Unterkomponenten für ihren eigenen Owner einfacherweise nur das "Self" mitbekommen. Der extra Destructor wird dann unnötig und kann rausfliegen, weil die Unterkomponenten dann nämlich automatisch mit der Komponente selbst destroyed werden (also dann, wenn die ja ihrerseits durch ihren eigenen Owner destroyed wird).

3.) musst du TObjectList in "FormCreate" createn (und dann wieder in "FormDestroy" free'n), sonst erzeugst du ja bei jedem MouseDown immer wieder eine neue ObjectListe ...und welche demzufolge dann natürlich auch jedesmal nur einen einzigen Eintrag groß werden kann.

Dann müsste es eigentlich gehn...


Sonst noch zu deiner obigen Frage2: Objekte in einer Objectlist haben keine Namen. Das dortige "items" (das in anderen Komponenten sonst oft eine TStringList ist) ist hier quasi nur eine Array of TObject, also ohnehin nur sowas wie eine Array of Pointer.

Zu deiner obigen Frage3: Du könntest z.B. im Rahmen deiner Komponente darin eine weitere Routine schreiben, also z.B.:

procedure TMapObject.EditMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
...
end;

und im Constructor dann folgendes eintragen:

Edit.OnMouseDown := EditMouseDown;


PS. Wenn du möchtest, dass das Objekt seine Koordinaten selbst berechnet, dann solltest du diesem die aktuelle Maus-Position zum Zeitpunkt seiner Erstellung am Besten auch gleich über dessen Constructor-Parameterliste mitteilen.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat