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 Probleme mit Komponentendesign (https://www.delphipraxis.net/78274-probleme-mit-komponentendesign.html)

TheMiller 2. Okt 2006 12:22


Probleme mit Komponentendesign
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich komme nicht mehr weiter. Habe 2 Probleme mit meiner Button-Komponente. Das erste ist, dass die Komponente im Designmodus und Laufzeitmodus verschieden aussieht und im Laufzeitmodus erst korrekt dargestellt wird, wenn ich mit der Maus über sie fahre. Dies ist aber nur so, wenn ich die Komponente im Designmodus erstelle. Wenn ich sie zur Laufzeit erstelle, wird sie gleich richtig angezeigt.

Das zweite Problem ist, dass die Caption (canvas.Textout) auch nicht sofort richtig dargestellt wird. Die Position wird erst berechnet, wenn ich mit der Maus drüber fahre, obwohl auch diese Berechnung in der Prozedur Paint ist.

Schaut einfach mal drüber. Würde mich freuen, wenn mir deisbezüglich jemand helfen kann!

Danke im Voraus

3_of_8 2. Okt 2006 12:57

Re: Probleme mit Komponentendesign
 
Hinter das inherited bei Paint gehört ein Strichpunkt.

QuickAndDirty 2. Okt 2006 13:13

Re: Probleme mit Komponentendesign
 
Ich glaube das bringt nichts, wenn du im Constructor ein Refresh machst.
Versuch das Refresh (oder ein invalidate) zu einem späteren Zeitpunkt.
Vielleicht hilft das ja.

Ans Ende von SetParent oder ans Ende von Setbounds ,... probiers aus.

TheMiller 2. Okt 2006 13:17

Re: Probleme mit Komponentendesign
 
Also, wenn ich den Strichpunkt hinter Inherited setze, wird schonmal die Position der caption richtig berechnet. Zugleich wird aber dieser hässliche Windows-Button gezeichnet, den ich doch mit meinem Bild ersetzen wollte. Sieht wieder Windows-Like aus...

QuickAndDirty 2. Okt 2006 13:22

Re: Probleme mit Komponentendesign
 
und ich dachte schon das Draw(0,0,Bla) ein versehen war.

lass inherited einfach weg, dann must du aber alles selbst zeichnen,
aber das scheint ja deine idee zu sein.
Nimm aber keine Bitmap zum zeichnen des button, nutze die Primitive
die das Canvas zur Verfügung stellt.

TheMiller 2. Okt 2006 13:30

Re: Probleme mit Komponentendesign
 
Zitat:

Zitat von QuickAndDirty
Nimm aber keine Bitmap zum zeichnen des button, nutze die Primitive
die das Canvas zur Verfügung stellt.

Das verstehe ich nicht so ganz.

Und, wenn ich das Inherited wegnehme, dann tritt wieder der Fehler mit der Berechnung der Position der Caption auf. Sie wird erst dann korrekt positioniert, wenn ich mit der Maus drüber fahre. Deswegen hatte ich erst das Inherited stehen - mit dem es ja auch funzt - halt WindowsLike!

thkerkmann 2. Okt 2006 13:42

Re: Probleme mit Komponentendesign
 
Hi,

in der zweiten Zeile von CalcTextPos machst Du ein TextOut ohne PosX, PosY vorher zu berechnen, und weiter unten machst Du wieder ein TextOut.... sollte das so sein, oder ist das doppelt gemoppelt ??

Gruss

Thomas

TheMiller 2. Okt 2006 13:48

Re: Probleme mit Komponentendesign
 
Diese Zeile habe ich vergesse auszukommentieren. Das waren verzweifelte Versuche... Die untere ist natürlich richtig. Ändert aber auch leider nichts an der Sache.

TheMiller 2. Okt 2006 14:36

Re: Probleme mit Komponentendesign
 
Ok, das Problem mit der Schriftposition habe ich gelöst. Mein Fehler war folgender: Ich habe erst die Position berechnet und danach die Schriftart- und Größe geändert. Dadurch hat sich alles wieder verschoben und beim erneuten CalcTextPos hat er die Position mit der neuen Schriftgröße berechnet. :wall:

TheMiller 2. Okt 2006 14:45

Re: Probleme mit Komponentendesign
 
Gut alle Probleme selbst behoben.

Das andere Problem was ich hatte, trat dadurch auf, dass ich die Komponente nicht neu installiert habe, nachdem ich alle Änderungen vorgenommen habe.

Trotzdem ein DANKE an alle Helfer!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:42 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