![]() |
Bitmaps auf eigener Komponente
Hallo,
egal wie ich es versuche, ich kann keine Bitmaps auf meiner Komponente anzeigen lassen. Es wird zwar alles gespeichert, aber nicht angezeigt. Diese Komponente ist vom Typ TCustomControl und ich habe folgenden Code:
Delphi-Quellcode:
Bei einer Ableitung von TSpeedButton funktioniert das Anzeigen, aber die Eigenschaft "Width" für das Bild wird nicht übernommen, obwohl ich das eingestellt hatte.
constructor TRollOver.Create(AOwner: TComponent);
var glyph: TBitmap; begin inherited Create(AOwner); glyph:=TBitmap.Create; glyph.Width:=30; glyph.Height:=30; glyph.LoadFromFile('C:\test.bmp'); end; |
Re: Bitmaps auf eigener Komponente
1. Mußt du Glyph nicht als loakle Variable sondern als (privaten) Member der Klasse deklarieren.
2. mußt du noch dafür sorgen, daß dein Bitmap beim Zeichenn des Fenster auch auf den Canvas gezeichnet wird. |
Re: Bitmaps auf eigener Komponente
Ok, das habe ich jetzt beides gemacht.
Doch wenn ich
Delphi-Quellcode:
eingebe, dann kommt folgende Fehlermeldung:
Canvas.Assign(Glyph);
Delphi-Quellcode:
Hm... weiß nicht weiter. Komme mir ziemlich dumm vor, aber es gibt leider nicht all zu viele TUTs zur OOP...Sorry
TBitmap kann nicht zu TControlCanvas zugewiesen werden
|
Re: Bitmaps auf eigener Komponente
Tcanvas und TBitmap sind auch nicht kompatibel. Ein Canvas besitzt aber die Methode .Draw()
|
Re: Bitmaps auf eigener Komponente
Das habe ich auch schon probiert:
Delphi-Quellcode:
und dabei kommt die Meldung
constructor TRollOver.Create(AOwner: TComponent);
begin inherited Create(AOwner); glyph:=TBitmap.Create; glyph.Width:=30; glyph.Height:=30; glyph.LoadFromFile('C:\Admin.bmp'); canvas.Draw(0,0,glyph); end;
Delphi-Quellcode:
...ist eine Exception der Klasse EInvalidOperation aufgetreten. Meldung: 'Element '' hat kein übergeordnetes Fenster
|
Re: Bitmaps auf eigener Komponente
mkinzler hat es schon gesagt: Du musst beim OnPaint-Ereignis zeichnen.
|
Re: Bitmaps auf eigener Komponente
Zu diesem Zeitpunkt existiert u.U. der Canvas noch nicht.
Du mußt .Paint() implementieren, so daß dein Bild bei jedem Neuzeichnen deiner Komponente gezeichnet wird. |
Re: Bitmaps auf eigener Komponente
Juhuu!! Das klappt!
Ist ja geil! Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 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