Zitat von
oki:
Hi Motzi,
das mit dem "syncronisieren" ist eine tolle Idee, auch dass du das übernehmen willst (ich hätte dafür auf Anhieb keine Idee).
Mal schaun wie wir das am blödesten äh.. besten machn.
Zitat:
Schau Dir mal meinen Code an. Ich hab die Thematik "Pos setzen" in eine eigene Methode ausgelagert. Ich halte das für sinnvoll. Hier ist doch die Möglichkeit recht übersichtlich auf alle Eigenschaften zur Positionierung des Labels zu reagieren und in den notwendigerweise überschriebenen Methoden des TEdit wird es übersichtlicher.
Ja, find ich auch sinnvoll!
Zitat:
Zum Thema Wrapper-Object bin ich gespannt. Auf dem Gebiet bin ich richtig blaß.
Jo.. ich hab mich mal gestern drangemacht. Folgendes Prinzip: es gibt ja die Möglichkeit im
OI "Unteroptionen" (die mit diesem "+" dahinter) einzutragen. Siehe zB TFont - wenn man da auf das "+" klickt klappen die "unteroptionen" auf. Vorsicht, nicht verwechseln mit den Enumerations-Typen! Die haben zwar auch ein "+" allerdings enthält die aufklappbare Liste nur Boolean-Werte die angeben ob ein bestimmtes Element in der Menge enthalten ist oder nicht.
Solche "Unteroptionen" implementiert man indem man eine neue Klasse von TPersistent ableitet und ein Objekt der neuen Klasse im published Teil seiner Komponente deklariert. TLabel hat in seiner Klassen-Hirachie TPersisten drinnen, dh wenn man das Label im published Teil deklariert hat man auch alle Eigenschaften des Labels als "Unteroptionen" im
OI. Allerdings ist das nicht wirklich sinnvoll, dann man dann zB auf Eigenschaften wie Left und Top Zugriff hat die ja eigentlich vom Edit gesetzt/gesteuert werden sollen. Daher meine Überlegung:
Ich leite eine neue Klasse TLabelOptions von TPersistens ab und führe jene Properties des Labels ein auf die man zugreifen können soll. Für jedes Property meiner TLabelOptions-Klasse implementiert man dann eine read (Get-) bzw write (Set-) Methode die intern nichts andres macht als auf die Eigenschaften des Labels zurückzugreifen. Das Label selbst würde ich dann nur mehr als privates Objekt-Feld deklarieren, damit von außen gar kein direkter Zugriff mehr erfolgen kann. (ist ja auch nicht nötig, wenn man alle wichtigen Eigenschaften über das TLabelOptions-Objekt ändern kann).
Das warst erstmal. Ich meld mich heute/morgen wieder wenn ich fertig bin (hab BTW auch den rest des Codes ein bisschen überarbeitet).
So long...