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 [TSpeedButton] Zur Laufzeit mit einem Glyph versehen (https://www.delphipraxis.net/124658-%5Btspeedbutton%5D-zur-laufzeit-mit-einem-glyph-versehen.html)

xZise 22. Nov 2008 15:34


[TSpeedButton] Zur Laufzeit mit einem Glyph versehen
 
Hallo ihr,

ich habe hier einen SpeedButton und in einem soll etwas nur zur Laufzeit angezeigt werden. Aber irgendwie kriege ich es nicht hin das Icon zur Laufzeit zu setzen:
Delphi-Quellcode:
with TRegistry.Create(KEY_READ) do
  try
    RootKey := HKEY_LOCAL_MACHINE;
    if OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\vncviewer.exe', false) then
    begin
      VNCPath := ReadString('');
      sbVNC.Enabled := true;
      icon := TIcon.Create;
      try
        icon.Handle := ExtractIcon(HInstance, PChar(VNCPath), 0);
        sbVNC.Glyph.Canvas.Draw(0, 0, icon);
      finally
        icon.Free;
      end;
    end else
      sbVNC.Enabled := false;
  finally
    Free;
  end;
Dies zeigt keine Wirkung. Auch ein Rumzeichnen auf der Canvas bringt nichts. Wenn ich aber das auf ein TImage zeichne zeigt er Ordnungsgemäß das Logo an.

MfG
xZise

DeddyH 22. Nov 2008 15:52

Re: [TSpeedButton] Zur Laufzeit mit einem Glyph versehen
 
Und wenn Du eine Speicherbitmap erstellst, das Icon darauf zeichnest und diese dann dem Glyph per Assign zuordnest?

xZise 22. Nov 2008 16:30

Re: [TSpeedButton] Zur Laufzeit mit einem Glyph versehen
 
Naja so geht es, aber ob das die beste Möglichkeit ist?

Weil ist „TIcon“ nicht an sich ein Bitmap?

MfG
xZise

DeddyH 22. Nov 2008 16:37

Re: [TSpeedButton] Zur Laufzeit mit einem Glyph versehen
 
Prinzipiell schon. Du könntest auch mal ein
Delphi-Quellcode:
sbVNC.Glyph.Assign(icon);
versuchen. Was mich ein wenig verwundert: wenn Glyph noch nicht zugewiesen wurde, müsste das Canvas.Draw doch eine AV bringen, oder mache ich da einen Denkfehler?

xZise 22. Nov 2008 19:06

Re: [TSpeedButton] Zur Laufzeit mit einem Glyph versehen
 
Und wie kann ich es vorher auf die passende Größe skalieren?

MfG
xZise


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