Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

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

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

  Alt 16. Feb 2014, 21: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
AppCentral
  Mit Zitat antworten Zitat