Mache aus der globalen Variablen DlgChooseCommandTool einmal eine lokale Variable.
Delphi-Quellcode:
procedure TMainForm.menuActiveToolClick(Sender: TObject);
var
CurrentTool: Integer;
DlgChooseCommandTool: TDlgChooseCommandTool;
begin
if Assigned(CmdLines)
and (CmdLines.Count > 0)
then
begin
DlgChooseCommandTool := TDlgChooseCommandTool.Create(
nil);
try
DlgChooseCommandTool.AssignCommands(CmdLines);
//Hier kommt die Exception
if IsPositiveResult(DlgChooseCommandTool.ShowModal)
then
begin
CurrentTool := DlgChooseCommandTool.ChoosedIndex;
ShowMessage('
Index Of Current Tool is: '+IntToStr(CurrentTool));
end;
finally
DlgChooseCommandTool.Free;
end;
end
else ShowMessage('
Bitte registrieren Sie zuerst ein Tool im Menü [Tool registrieren...]!');
end;
Passiert es dann immer noch?
Genauso ist es sinnvoll globale Variablen wie CmdLines generell zu vermeiden.