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 Access Violation, TSpeedButton (https://www.delphipraxis.net/23659-access-violation-tspeedbutton.html)

shareholder 7. Jun 2004 14:47


Access Violation, TSpeedButton
 
Wenn ich ganz viele Schnelle Klicks mache gibt es eine Access Violation.

Hier der Code:

Delphi-Quellcode:
procedure TForm1.BtnMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if (ssRight in Shift) then
    if (TSpeedButton(Sender).Glyph.Empty = TRUE) then
      TSpeedButton(Sender).Glyph.LoadFromFile('bild.bmp')
    else
      ShowMessage('hat schon ein bild!');
end;
ich hoffe ihr könnt mir sagen warum,
die procedure ist 1200 buttons zugeordnet.

axelf98 7. Jun 2004 15:06

Re: Access Violation, TSpeedButton
 
Zitat:

Zitat von shareholder
die procedure ist 1200 buttons zugeordnet.

Dann hast du wahrscheinlich die Knöpfe kopiert, nachdem du dem "Original" die Prozedur gegeben hast. Dann verweisen nämlich alle anderen auf die gleiche Pozedur.

shareholder 7. Jun 2004 15:20

Re: Access Violation, TSpeedButton
 
nö, die prozedur wurde dynamisch jedem button zugeordnet.

shmia 7. Jun 2004 15:53

Re: Access Violation, TSpeedButton
 
Zitat:

Zitat von shareholder
die procedure ist 1200 buttons zugeordnet.

Das ist ja Waaahnsinn :freak: ; zu viele Knöpfe.
Aber egal:

Delphi-Quellcode:
procedure TForm1.BtnMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  // zur Sicherheit !!!!!
  // ein "normaler" Button und es knallt
  Assert(sender is TSpeedButton);
 
  if (ssRight in Shift) then
    with TSpeedButton(Sender).Glyph do
       if Empty then
          LoadFromFile('bild.bmp')
       else
          ShowMessage('hat schon ein bild!');
end;


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