![]() |
TICON - Access violation / Per Laufzeit erstellten Objekten
Tag alle miteinander... :wink:
Ich bin nicht so der Delphi könner (Hab vor 1. Jahr das erste mal Programmiert) das nur aso mal vorweg... Über die Funktion: Die Funktion macht aus einer XML - "Verfügbaren Sprachen" eine Unterspalte in einem TPopUpMenu. {Problem 1: Icon - Dateien sollen zur Laufzeit aus .ico Dateien geladen werden und einer ImageList hinzugefügt werden. Ich bekomme eine Access violation schon bei Icon.Create; Ich weis überhauptnicht was daran den schlimm sein soll ... Ziel ist es eine Icon-Datei zuladen.} Gelöst Problem2: Ich erstelle die Popup-Menü Einträge per Laufzeit, Per klick auf den Menüeintrag soll natürlich auch etwas geändert werden, die Proceduren
Code:
WriteDefaultLanguage soll dabei der Parameter Language übergeben werden.
function WriteDefaultLanguage(Language:integer):Boolean;
WriteDefaultLanguage(0) Zu beachten ist auch das das ganze in eine Unit ausgelagert ist, ich zwar schon öfters Komponenten zur Laufzeit erzeugt habe aber ihnen noch nie einen "parameter" übergeben habe. Für mich wäre auch schön zuwissen wie man es ohne "Main.MenuOptionBtnClick" funktioniert sondern mit einer Selbstangefertigten funktion wie z.b
Delphi-Quellcode:
procedure MenueLanguageclick;
begin end;
Code:
procedure LangInitialize(AControl: TComponent);
LangInitialize(Main);
Delphi-Quellcode:
Ich verlange keinen fertigen Code auch wen sich meine schreibweise manchmal so anhört :wink:
procedure AddLanguageList(Menu:TPopupMenu);
var Item:TMenuitem; Caption,IconFile:string; Imageindex,i:integer; shortcut:Tshortcut; Help:THelpContext; Icon:TIcon; begin Icon:= TIcon.create; if Setxmltofile(Lngfile) then begin Menu.Items[0].Clear; Menu.Images:=Main.LangPicList; for i:=2 to xml.ChildNodes['avlanguages'].ChildNodes.count-1 do begin IconFile:=xml.ChildNodes['avlanguages'].ChildNodes[i].Attributes['icon']; if (Iconfile ='') then else begin Iconfile:=''+ExtractFilePath(Application.ExeName)+'language\'+Iconfile+''; showmessage(IconFile); try Icon.LoadFromFile(IconFile); except error(1005,'Fehler:Bilddatei konnte nicht geladen werden.'); end; Main.LangPicList.AddIcon(Icon); end; Caption:=xml.ChildNodes['avlanguages'].ChildNodes[i].LocalName; Item:=Newitem(Caption,Shortcut,false,true,Main.MenuOptionBtnClick,Help,Caption); if Iconfile ='' then else Item.ImageIndex:=Main.LangPicList.Count-1; Menu.Items[0].Add(Item); end; end; end; |
Re: TICON - Access violation / Per Laufzeit erstellten Objek
Zitat:
Icon.Create; der erste Fehler. es sollte zumindest heissen Icon:= TIcon.create; Gruss KH |
Re: TICON - Access violation / Per Laufzeit erstellten Objek
You are my hero :P - funktioniert
//Edit Obrigen Code aktualisiert. |
Re: TICON - Access violation / Per Laufzeit erstellten Objek
Zitat:
Gruss KH |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 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 by Thomas Breitkreuz