![]() |
TBitmap.Create in Komponente geht nicht
Hallo,
um mich etwas mit Canvas herumzuschlagen schreibe ich mir momentan meine eigene Progressbar. Die funktioniert im Prinzip auch schon tadellos, nur möchte ich jetzt noch einen Gradienten-Stil einfügen. Abgeleitet wurde von TGraphicsControl, wobei ich die Paint-Prozedur überschreibe. In dieser möchte ich nun intern ein TBitmap erstellen, doch irgendwie funktioniert das überhaupt nicht. Bin ich jetzt schon zu bl*d eine TBitmap-Instanz zu erstellen? :wall:
Delphi-Quellcode:
NUR mit der Variablendeklaration lässt sich der Source einwandfrei compilieren, nur in der Zeile "TempBitmap := tBitmap.Create" kommt die Compilermeldung "[Pascal Error] MyGauge.pas(176): E2003 Undeclared identifier: 'Create'". HOffe Ihr könnt meinen Fehler aufdecken, ich verstehe die Welt nicht mehr :shock:
procedure TMyGauge.Paint;
VAR MyRect : TRect; BarRect : TRect; SmallRect : TRect; TempBitmap : TBitmap; Text : String; [...] begin // Interne Variablen initialisieren TempBitmap := tBitmap.Create; // <-- Das funktioniert nicht MyRect := ClientRect; BarRect := ClientRect; InflateRect(BarRect, -1, -1); [...] end; SCRaT |
Re: TBitmap.Create in Komponente geht nicht
Hallo SCRaT,
in der USES-Anweisung sollte die Unit Windows vor der Unit Graphics stehen. Bei mehrdeutigen Bezeichnern (hier TBitmap) wird immer der aus der zuletzt aufgeführten Unit verwendet. Gruß Hawkeye |
Re: TBitmap.Create in Komponente geht nicht
Habe es zwar aus Zeitgründen noch nicht getestet, aber bei mir stehen die Units tatsächlich in der anderen Reihenfolge im Code. Wird wohl daran liegen. :firejump: Das muss man auch erst einmal wissen! Respekt und Danke. Sollte es nicht gehen melde ich mich noch einmal :-)
SCRaT |
Re: TBitmap.Create in Komponente geht nicht
...und vermeide es bitte ein Bitmap im OnPaint zu erstellen. Die Paintrout. wird sehr oft aufgerufen
was zu Leistungseinbusen führen kann. |
Re: TBitmap.Create in Komponente geht nicht
Funktioniert! Lag tatsächlich an den units :-)
@turboPASCAL: Alles klar, ich nehme mir Deinen Tip zu Herzen. Jetzt verstehe ich auch, warum die "anderen" es im Konstruktor erstellen. Danke Euch beiden... SCRaT |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz