Autor Beitrag
Stephan.Woebbeking
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 97



BeitragVerfasst: Di 14.06.11 10:49 
Hallo,

wenn ich eine Komponente (in dem Fall TProgressbar) anpassen will, kann ich die ableiten. Wie kann ich denn jetzt das veränderte Verhalten darstellen? Einen Canvas habe ich nicht. Den Brush habe ich gefunden, aber was tu ich damit ohne den zugehörigen Malbereich? Das müsste bei anderen Komponenten doch bestimmt ähnlich sein?

Stephan
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 14.06.11 11:47 
Du müsstest dir mit GetDC den Decive Context holen können. Da aber eine Progress Bar ein spezielles Control ist, würde ich dir raten die komplett neu zu schreiben. Viel kannst du vom Original eh nicht brauchen.
Stephan.Woebbeking Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 97



BeitragVerfasst: Di 14.06.11 16:28 
Ja, das GetDC habe ich auch gesehen, mir fiel aber nicht ein, was ich mit dem DC anfangen könnte... Außerdem widerstrebt es mir eine komplette Komponente neu aufzubauen wenn es die schon gibt. Ich hab im Forum etwas gelesen was mir ermöglicht hat ein Shape über die Bar zu legen. So geht es, aber mit einer spezialisierten Komponente wäre es schon nett... Aber halt nicht wenn ich dafür diese Art Redundanz erzeugen muss. Naja, vielleicht hab ich ja noch 'ne Idee wenn ich ausgeschlafen bin. ;)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 14.06.11 17:26 
user profile iconStephan.Woebbeking hat folgendes geschrieben Zum zitierten Posting springen:
Aber halt nicht wenn ich dafür diese Art Redundanz erzeugen muss.
Welche Redundanz? :nut:

Im Gegenteil, es gibt doch eben gerade keine Redundanz, sondern deine Komponente kann von dem Original vielleicht 5% des Codes brauchen, braucht aber eigentlich ganz andere Sachen...
Man sollte als Basiskomponente immer eine nehmen, die möglichst viel mit dem gewünschten Ergebnis gemein hat. und das ist bei dir ganz bestimmt nicht TProgressBar (vom Namen TProgressBar einmal abgesehen...).

Das einzige was du davon wirklich nutzen kannst, ist die Eigenschaft Position. Das ist eine Zeile plus das Setzen via Message, wobei du letzteres bei einer eigenen Komponente aber gar nicht brauchst. StepIt und StepBy gibt es auch noch. Aber das war es.

Also warum die langsamere Variante mit dem Setzen der Eigenschaften über Messages usw., wenn du das ganze doch eh selbst machen willst? Das ist irgendwie von hinten durch die Brust ins Auge geschossen...

Und GetDC brauchst du bei einer anderen Basisklasse nicht, da gibt es dann Canvas.
Stephan.Woebbeking Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 97



BeitragVerfasst: Mi 22.06.11 17:45 
Hallo, sorry für die späte Antwort...

Naja, also ich denke ich brauche schon die ganze Komponente... Ich wollte auf dem Progressbar noch einen Strich darstellen, der gewissermassen den "höchsten" Punkt für einen Moment festhält. Das hätte ich gern in der Komponente verankern. Da ich da aber keine Idee weiter zu hatte, habe ich ein Shape darüber gelegt, dessen Position ich entsprechend manipuliere. So geht's, aber wie gesagt, eine eigene Komponente wäre auch schön gewesen...

Danke jedenfalls für die Hinweise!
Stephan