![]() |
Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Nil?
Ich will, dass das Bild nur geändert wird, wenn bisher nichts angezeigt wird. Ich will quasi zwischen zwei Zuständen wechseln: Bild/Kein Bild.
Bis jetzt hab ichs so gemacht:
Delphi-Quellcode:
aber beim ersten Klick passiert nichts und beim zweiten kommt ein EAccessViolation, also muss da oben wohl irgendwas falsch sein ^^
var feld: array of array of TSpeedButton;
... if feld[X,Y].Glyph = nil then imagelist1.getbitmap(0, feld[X,Y].Glyph) else feld[X,Y].Glyph.Free; also wenn mir jemand helfen kann, wärs nett. Gruß |
Re: Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Ni
Erstens: Wenn du Glyph aus dem Speicher entfernst (Free), kannst du danach ja schlecht etwas hineinschreiben (GetBitmap).
Zweitens: Wenn du ohnehin ein Array benutzt, warum nicht auch eins um den Zustand zu speichern? Drittens: Jede Komponente hat die Eigenschaft Tag, in der du einen benutzerdefinierten beliebigen Integerwert speichern kannst. Dort könntest du den Status auch ablegen. |
Re: Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Ni
gut das stimmt natürlich
wie mach ich denn, dass kein bild mehr angezeigt wird? PS: ich benutz sowieso eine nachfahrklasse von TSpeedButton, das mit dem Status ist also kein Problem ... ich dachte nur, das ginge auch einfacher. |
Re: Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Ni
Hallo,
wenn du das Bild nicht aus einer ImageList holst, sondern direkt in SpeedButton.Glyph ablegst, kannst du auch so umschalten:
Delphi-Quellcode:
Gruß Hawkeye
procedure TForm1.SpeedButtonClick(Sender: TObject);
begin if (SpeedButton.Margin < 0) then SpeedButton.Margin := SpeedButton.Width else SpeedButton.Margin := -1; end; |
Re: Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Ni
Glyph existiert ja, nur ist halt kein Bild drin.
Delphi-Quellcode:
if feld[X,Y].Glyph.Witdh = 0 then
ImageList1.GetBitmap(0, feld[X,Y].Glyph) else feld[X,Y].Glyph.Witdh := 0; |
Re: Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Ni
ah klar das ist natürlich ne Möglichkeit
Vielen Dank euch wobei: kann man auch zur Laufzeit ne leere TBitmap erstellen und damit das erste Bild überschreiben? |
Re: Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Ni
klar kannst du das ... du könntest dir aber auch ein "leeres" Bild in die ImageList laden
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 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