Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   GetBitmap(3, TBitBtn.Glyph) direkt in Objekt geht nicht (https://www.delphipraxis.net/201884-getbitmap-3-tbitbtn-glyph-direkt-objekt-geht-nicht.html)

norwegen60 7. Sep 2019 10:00

Delphi-Version: 5

GetBitmap(3, TBitBtn.Glyph) direkt in Objekt geht nicht
 
Hallo zusammen,

in meiner Anwendung wird während eines Ablaufs in einem BitButton das Glyph geändert. Bisher war das so gelöst, dass dazu lauter TImages auf der Oberfläche lagen. Ich wollte die jetzt in einer ImageList sammeln und zuweisen. Das funktioniertz aber nur über Umwege:
Delphi-Quellcode:
  sButton := format('btAbs%d', [i]);

  // Die ursprüngliche Lösung (hat funktioniert)
  TBitBtn(FindComponent(sButton)).Glyph := Image1.Picture.Bitmap;

  // Die gewollte Lösung, die aber nicht funktioniert
  ImageList1.GetBitmap(1, TBitBtn(FindComponent(sButton)).Glyph);

  // Der Workaround, der funktioniert
  BitMap1 := TBitMap.Create;
  ImageList1.GetBitmap(1, BitMap1);
  TBitBtn(FindComponent(sButton)).Glyph := BitMap1;
  BitMap1.Free;
Wenn ich die Buttons im TForm.Create mit
Delphi-Quellcode:
  for i := 1 to 10 do
  begin
    sButton := format('btAbs%d', [i]);
    ImageList1.GetBitmap(4, TBitBtn(FindComponent(sButton)).Glyph);
  end;
initialisiere, funktioniert die Zuweisung. Von daher habe ich es schon mit Refresh probiert, aber das brachte nichts

Uwe Raabe 7. Sep 2019 10:27

AW: GetBitmap(3, TBitBtn.Glyph) direkt in Objekt geht nicht
 
Zitat:

Zitat von norwegen60 (Beitrag 1445055)
Von daher habe ich es schon mit Refresh probiert, aber das brachte nichts

Ich hatte jetzt keine Lust, erst ein Testprogramm zu erstellen, aber eventuell könnte ein
Delphi-Quellcode:
TBitBtn(FindComponent(sButton)).Glyph.Modified := True;
helfen.

norwegen60 7. Sep 2019 14:20

AW: GetBitmap(3, TBitBtn.Glyph) direkt in Objekt geht nicht
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1445056)
Ich hatte jetzt keine Lust, erst ein Testprogramm zu erstellen, aber eventuell könnte ein
Delphi-Quellcode:
TBitBtn(FindComponent(sButton)).Glyph.Modified := True;
helfen.

Danke, so gehts


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