Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Verschiedenes Verhalten zw. DesignTime und Runtime (https://www.delphipraxis.net/78233-verschiedenes-verhalten-zw-designtime-und-runtime.html)

TheMiller 1. Okt 2006 13:21


Verschiedenes Verhalten zw. DesignTime und Runtime
 
Hey...

Ich habe meine Komponente mit eurer Hilfe jetzt fertig und habe sie bisher immer dynamisch erstellt (zur Laufzeit). Das klappt wunderbar und es wird alles richtig angezeigt. Doch wenn ich die Komponente zur Designtime auf das Formular ziehe und dann das Programm starte, dann wird die Komponente erst angezeigt, wenn ich einmal mit der Maus drüber gefahren bin...

Hier der QuellCode der Komponente

Delphi-Quellcode:
constructor TImageButton.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Bitmap:=TBitmap.Create;
  Width:=150;
  Height:=25;
  Glyph.LoadFromFile('C:\Button.bmp');
end;

procedure TImageButton.Paint;
var
  TextWidth, Textheight: Integer;
  PosX, PosY: Integer;
begin
  Canvas.Draw(0,0, Glyph);
  Canvas.Brush.Style:=bsClear;
  TextWidth:=Canvas.TextWidth(Caption);
  Textheight:=Canvas.TextHeight(Caption);
  PosX:=((Width div 2) - (TextWidth div 2));
  PosY:=((Height div 2) - (TextHeight div 2));
  Canvas.TextOut(PosX, PosY, Caption);
end;
Konnte selbst leider nicht rausfnden, woran das liegt.

mkinzler 1. Okt 2006 13:33

Re: Verschiedenes Verhalten zw. DesignTime und Runtime
 
Versuch mal im Konstruktor den Redraw deiner Komponente zu erzwingen.

BTW. Ich würde den Pfad auf das Bild nicht fest im Code verankern sondern das Bild fest in der Ressource veranker. Du könntest ja als nächstes den Benutzer das Bild selber auswählen lassen.

TheMiller 1. Okt 2006 18:54

Re: Verschiedenes Verhalten zw. DesignTime und Runtime
 
Redraw ist gut... Habe versucht, die Prozedur RePaint aufzurufen, aber das bringt nichts. Paint kann ich nicht aufrufen, da dies eine AV bringt und Redraw gibt es direkt nicht.

Achso, und den Link habe ich doch nur als Test fest verankert. Resourcen wird es nicht geben, aber der User soll dann selbst Bilder wählen können.

TheMiller 1. Okt 2006 22:11

Re: Verschiedenes Verhalten zw. DesignTime und Runtime
 
... oder muss ich selbst eine funktion schreiben, die meinen Button "redrawed" ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 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