Autor Beitrag
wisher
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 54
Erhaltene Danke: 1



BeitragVerfasst: Mi 11.10.06 17:26 
Hallo,

ich habe zum ersten Mal eine eigene kleine Komponente gebastelt. Sie setzt sich zusammen
aus einer GroupBox, Panel und Label.

Das klappt im Prinzip auch ganz gut. Was ich nun machen möchte ist, den Font des Labels
setzen. Dies klappt leider nur zur Designzeit im Objektinspektor. Dort kann ich zwar den Font des Labels setzen, nur wird er dann zur Laufzeit wieder mit dem Standard-Font überschrieben. Auch
das Setzen zur Laufzeit klappt nicht. Er wird einfach ignoriert.

Anbei mal meine pas-Datei. Wenn mir jemand des Fehler erklären kann, wär's nett !


Danke schonmal
Sascha
Einloggen, um Attachments anzusehen!
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Mi 11.10.06 18:06 
Zeige mal Screenshot, wie das momentan aussieht. Das sieht mir nämlich eher wie eine Sache für Objektablage aus und nicht als Komponente !

_________________
Gruß
Hansa
wisher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 54
Erhaltene Danke: 1



BeitragVerfasst: Do 12.10.06 07:57 
Anbei mein Screen-Shot.

Die neue Komponente soll so ne Art GroupBox sein. Allerdings mit nem Header der 2 Farbverläufe kann. Vista Style, eben.
Einloggen, um Attachments anzusehen!
wisher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 54
Erhaltene Danke: 1



BeitragVerfasst: Do 12.10.06 08:51 
Ok, ich denke ich muss es etwas anders lösen.
Anbei meine neue PAS. Leider klappt es noch nicht ganz.
Die Werte die ich zur Design-Zeit setze werden immer noch zur Laufzeit
überschrieben. Allerdings funktioniert nun das Setzen der Eigenschaften
per Laufzeit.

MFG
Sascha
Einloggen, um Attachments anzusehen!
uwewo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 154



BeitragVerfasst: Do 12.10.06 09:17 
Hallo "wisher" Du Gönner,

habe mir dein Source angeschaut, damit kann kein Mensch was anfangen da Du eine Fremdkomponente benutzt ADVPanel, die nicht jeder auf seinem Rechner hat.

Ich habe mir dann mal ADVPanel heruntergeladen, doch beim installieren Deiner Komponente gibt es dann eine Fehlermeldung das die property ColorTo von ADVPanel nicht gefunden wurde. Und das stimmt auch diese property ist nicht vorhanden. Vielleicht hast Du diese ja erweitert??????

Also welche ADVPanel benutzt DU? Wie soll man Dir helfen wenn man nicht weiß was man alles braucht?
wisher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 54
Erhaltene Danke: 1



BeitragVerfasst: Do 12.10.06 10:16 
Hey Uwe,

für das ADVPanel, kannst Du auch ein ganz Normales Panel verwenden.
Das Ziel ist klar, oder ? Eine Groupbox, die als Kopf ein Panel
mit einem drauf liegenden Label hat.

Das ADVPanel kann einen 2-fachen Farbverlauf, deshalb habe ich das
verwendet.

Anbei nochmal meine PAS mit einem VCL-Panel.
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von wisher am Do 12.10.06 10:36, insgesamt 1-mal bearbeitet
wisher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 54
Erhaltene Danke: 1



BeitragVerfasst: Do 12.10.06 10:29 
PS.: Es geht um die Eigenschaftswerte "HeaderCaption".... diese werden zur Laufzeit überschrieben. Was mir auffällt, wenn ich mir die DFM im Klartext anschaue taucht zum Beispiel die Eigenschaft HeaderCaption.Caption dort nicht auf. Ich weiß allerdings nicht, ob sie das muss.
uwewo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 154



BeitragVerfasst: Do 12.10.06 11:10 
OK wisher habe mich daran versucht aber es ist mir ehrlich gesagt zu kompliziert das sozumachen wie Du es angefangen hast.

Du Willst ein Label auf den Panel setzen und die Caption des Labels ändern.
Warum nicht gleich die Caption des Panels verwenden??

Allerdings mußt Du dann

ausblenden Delphi-Quelltext
1:
FGBHeader.Caption := 'Blalala';					


setzen. Außerdem ist Caption nicht vom Typ String sonder TCaption.

Kurz gesagt, zeichne auf Deinem Panel selbst ein Rechteck, fülle es mit Farbe und schreibe den Text rein. Dann hast DU die vollen Möglichkeiten die propertys der Kompo zu setzen. In dem jetzigen Weg müßtest Du die property OnPaint von TLabel überschreiben auf die Du so aber keinen Zugriff hast.
wisher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 54
Erhaltene Danke: 1



BeitragVerfasst: Do 12.10.06 11:34 
Ich muss ein Label benutzen, da ich ja kein TPanel, sondern ein TADVPanel benutze.
Und mit dessen Caption-Eigenschaft kann ich nichts anfangen.
Das ADVPanel benutze ich um einen spezielen Style (Farbverlauf) hinzubekommen.

Und so wie ich dich verstanden habe, komme ich um ein "Selbstzeichnen" nicht herum ?
Kann ich mir fast nicht vorstellen. Wenn ich die Eigenschaften zur Laufzeit setze,
funktioniert's ja.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 12.10.06 11:50 
Selbstzeichen ist aber einfacher...
Und vor allem schneller und mit weniger Resourcenaufwand! Sieh dir einfach mal meine Gradient Scrollbar an:
www.delphi-forum.de/...lBar+RC+1_64090.html

Die Scrollbars im abgebildeten Bild habe ich selbst gezeichnet. Und was meinst du wohl, was TADVPanel tut? Richtig: Den Farbverlauf selbst zeichnen... Also kannst du das auch selbst machen und brauchst keine Fremdkomponente mehr...

Warum das mit der Schriftart nicht geht, muss ich mir mal ansehen...
wisher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 54
Erhaltene Danke: 1



BeitragVerfasst: Do 12.10.06 14:36 
Ok, ich hab's.

Das Problem lag daran, dass ich ein ganzes Objekt (TLabel) in meine Komponente als
Eigenschaft integrieren wollte. Das scheint wohl auch irgendwie zu gehen, ist aber anscheinend nicht ganz trivial.

Wenn ich einzelne Eigenschaften des Labels publishe, funktioniert's.

Sie Anhang.


Vielen Dank für die Hilfe !

Sascha
Einloggen, um Attachments anzusehen!