Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Komponente erstellen: Left und Top festlegen?

  Alt 22. Jun 2006, 03:52
Echt erstaunlich, daß überhaupt ein Antwortversuch kommt. Denn es wurde nicht mal gesagt, von was die Komponente abgeleitet werden soll. 8) Befürchte es ist wieder mal TComponent oder Co. und insofern dann eigentlich für diese Zwecke nicht zu gebrauchen. Falls es aber eine existierende Komponente ist, die erweitert werden soll : nächstes Problem. Man müßte im Zweifelsfall schon den VCL-Code parat haben um beim Vorfahr nachzugucken, was aber wegen D7PE nicht gegeben ist. Ich gehe aber davon aus, daß dieser Code beim "Nachbar" jederzeit nachgeguckt oder kurzfristig "ausgeliehen" werden kann. Das Prinzip ist recht einfach : im Create der Komponente die property zuweisen. Left, Top usw. ABER ! Der alte Wert muß gelesen und der neue geschrieben werden. Deshalb braucht man Read und Write Methoden an der richtigen Stelle, die die Werte eben lesen oder auch schreiben.

Vor allem bei DB-Komponenten ist manchmal folgendes zu bemerken (falls Rechner sehr beschäftigt ist und die Komponente eine DB-Verbindung braucht) : zieht man die auf die Form, so hängt sie da kurz links oben in der Ecke und bewegt sich dann automatisch an die auf der Form angeklickte Stelle. Warum ? Die ist von Vorfahr abgeleitet. Und diesem ist Left/Top egal. Er initialisiert sie allerdings schon, weil Left und Top schon bekannt sind und zwar auf 1,1. Die neue Komponente hat eben nur "inherited" aufgerufen. Nun werden von der abgeleiteten die Left/Top Werte ausgelesen und eigene Sachen initialisiert (auch Left/Top usw. auch). Und die kann man auch selber setzen ! Die Komponente ist dann an gewünschter Stelle. Im OI passiert übrigens genau dasselbe.
Gruß
Hansa
  Mit Zitat antworten Zitat