AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Nil?
Thema durchsuchen
Ansicht
Themen-Optionen

Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Nil?

Ein Thema von Schilly · begonnen am 20. Feb 2009 · letzter Beitrag vom 20. Feb 2009
Antwort Antwort
Schilly

Registriert seit: 10. Dez 2008
Ort: Nähe Bremen
16 Beiträge
 
#1

Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Nil?

  Alt 20. Feb 2009, 21:42
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:
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;
aber beim ersten Klick passiert nichts und beim zweiten kommt ein EAccessViolation, also muss da oben wohl irgendwas falsch sein ^^
also wenn mir jemand helfen kann, wärs nett.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Ni

  Alt 20. Feb 2009, 21:56
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Schilly

Registriert seit: 10. Dez 2008
Ort: Nähe Bremen
16 Beiträge
 
#3

Re: Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Ni

  Alt 20. Feb 2009, 21:59
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.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Ni

  Alt 20. Feb 2009, 22:12
Hallo,

wenn du das Bild nicht aus einer ImageList holst, sondern direkt in SpeedButton.Glyph ablegst, kannst du auch so umschalten:

Delphi-Quellcode:
procedure TForm1.SpeedButtonClick(Sender: TObject);
begin
  if (SpeedButton.Margin < 0) then
    SpeedButton.Margin := SpeedButton.Width
  else
    SpeedButton.Margin := -1;
end;
Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Ni

  Alt 20. Feb 2009, 22:14
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;
$2B or not $2B
  Mit Zitat antworten Zitat
Schilly

Registriert seit: 10. Dez 2008
Ort: Nähe Bremen
16 Beiträge
 
#6

Re: Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Ni

  Alt 20. Feb 2009, 22:16
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

Re: Rückgabewert von TSpeedButton.Glyph wenn undefiniert? Ni

  Alt 20. Feb 2009, 22:33
klar kannst du das ... du könntest dir aber auch ein "leeres" Bild in die ImageList laden
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:35 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