Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

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

AW: Unerklärliche EAccessViolation -> Meldung Invalid Pointer Operation

  Alt 16. Feb 2014, 20:04
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat