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 Actions zur Laufzeit: Absturz bei ImageListzuweisung (https://www.delphipraxis.net/17410-actions-zur-laufzeit-absturz-bei-imagelistzuweisung.html)

Fingolfin 5. Mär 2004 02:14


Actions zur Laufzeit: Absturz bei ImageListzuweisung
 
Hallo, ich habe versucht folgenden Code aus der Code Library zu testen, um Actions zur Laufzeit zu erstellen:

Delphi-Quellcode:
var iItem:TActionClientItem;
    iAction:TAction;
begin
  iAction := TAction.Create(myActionManager); //Hier wird die Action für das Item erstellt
  iItem := myActionManager.ActionBars[0].Items.Add; //Und hier wird das Item zu dem Menü mit Index 0 geaddet.
  iAction.Caption := 'Mein Item'; //Hier wird dem Item die Eigenschaft Caption zugewiesen.
  iItem.Action := iAction; //Hier wird dem Item seine Action zugewiesen.
end;
Das funktioniert an sich wunderbar. Jetzt habe ich aber dem Actionmanager noch eine ImageList hinzugefügt und versucht per:

Delphi-Quellcode:
  iAction.ImageIndex:=0;
den jeweiligen ImageIndex zuzuweisen.
Dabei bekomme ich allerdings eine EAccessViolation und habe keinen Plan, wo die herkommt. Er meckert bei folgendem Code in der ActnMan:

Delphi-Quellcode:
procedure TCustomActionControl.DrawGlyph(const Location: TPoint);
var
  ImageList: TCustomImageList;
  DrawEnabled: Boolean;
begin
  if not HasGlyph then exit;
  if Assigned(Action) then
    ImageList := ActionClient.Action.ActionList.Images //Hier scheint er abzuschmieren
  else
    ImageList := ActionClient.OwningCollection.ActionManager.Images;
  if not Assigned(ImageList) then exit;
  DrawEnabled := Enabled and (ActionClient.ImageIndex <> -1) or
    (csDesigning in ComponentState);
  ImageList.Draw(Canvas, Location.X, Location.Y, ActionClient.ImageIndex,
    dsTransparent, itImage, DrawEnabled);
end;
Hat vielleicht jemand eine Idee, was man da machen kann?

Ich nutze übrigens Delphi 7 Enterprise und habe das ActionUpdate von Steve Trefethen http://homepages.borland.com/strefethen/ benutzt.

Vielen Dank im voraus,

Fingolfin

Fingolfin 5. Mär 2004 23:02

Re: Actions zur Laufzeit: Absturz bei ImageListzuweisung
 
Ich habe mittlerweile das unoffizielle Update entfernt. Leider tritt der Fehler immer noch auf. Allerdings fiel mir auf, daß der Fehler auch nur auftritt, wenn Bilder in der ImageList sind, also scheint nur die Darstellung selbst Probleme zu machen.

Vielleicht hat ja noch jemand eine Idee. :cry:

Fingolfin

fylo 8. Mär 2004 11:08

Re: Actions zur Laufzeit: Absturz bei ImageListzuweisung
 
hi

versuch mal noch die imagelist des actionmanagers der action zuzuweisen
Delphi-Quellcode:
myAction.ActionList:=ActionManager;

Fingolfin 9. Mär 2004 01:54

Re: Actions zur Laufzeit: Absturz bei ImageListzuweisung
 
Zitat:

Zitat von fylo
hi

versuch mal noch die imagelist des actionmanagers der action zuzuweisen
Delphi-Quellcode:
myAction.ActionList:=ActionManager;

Oh Mann, das wars. Das ist mir ja jetzt echt peinlich. :oops:

Aber ich danke dir auf jeden Fall. Ich hätte das wohl nie mehr hinbekommen.

:thuimb:

Fingolfin


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