AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TBitmap.Create in Komponente geht nicht

Ein Thema von scrat1979 · begonnen am 9. Mär 2007 · letzter Beitrag vom 9. Mär 2007
Antwort Antwort
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#1

TBitmap.Create in Komponente geht nicht

  Alt 9. Mär 2007, 15:28
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?

Delphi-Quellcode:
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;
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

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: TBitmap.Create in Komponente geht nicht

  Alt 9. Mär 2007, 15:35
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
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: TBitmap.Create in Komponente geht nicht

  Alt 9. Mär 2007, 16:14
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. Das muss man auch erst einmal wissen! Respekt und Danke. Sollte es nicht gehen melde ich mich noch einmal

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: TBitmap.Create in Komponente geht nicht

  Alt 9. Mär 2007, 16:25
...und vermeide es bitte ein Bitmap im OnPaint zu erstellen. Die Paintrout. wird sehr oft aufgerufen
was zu Leistungseinbusen führen kann.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: TBitmap.Create in Komponente geht nicht

  Alt 9. Mär 2007, 16:55
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
Michael Kübler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:08 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