Einzelnen Beitrag anzeigen

HPW

Registriert seit: 28. Feb 2003
160 Beiträge
 
Delphi 7 Professional
 
#1

Dialog aus Delphi DLL verschachtelt aufrufen

  Alt 25. Nov 2013, 20:55
Delphi-Version: 7
Hallo,

Ich habe eine Funktion in einer delphi DLL in der ich einen Property-Dialog aufrufe:

Delphi-Quellcode:
FUNCTION nbEditAction( IDNum : INTEGER;
  VAR Params : ARRAY OF PChar ) : BOOLEAN;
VAR
      resultstr : String ;
BEGIN
  Result := FALSE;
  nbEditCount := nbEditCount+1;
  CASE IDNum OF
    1 : BEGIN
          { Anzeigen der Form... }
          EditForm2 := TEditForm2.CreateParented( GetActiveWindow );
          TRY
            EditForm2.Caption := CmdParaName[1]+' Properties';
            EditForm2.Edit1.Text := Params[0];
            ...
            ...
            IF EditForm2.ShowModal = mrOK THEN
              BEGIN
                SetStr( Params[0], EditForm2.Edit1.Text );
                ...
                ...
                Result := TRUE;
              END;
          FINALLY
            EditForm2.Free;
          END;
        END;
  END;
  nbEditCount := nbEditCount-1;
END;
Nun kann es vorkommen das der Dialog bei schon geöffnetem ersten Dialog ein zweites Mal aufgerufen wird.
Das funktioniert nun nicht, da EditForm2 vom zweiten Dialog überschrieben wird und ich dann beim Schliessen des ersten Dialog eine Access Violation bekomme. Mit nbEditCount erkenne ich zwar das ein Dialog erneut aufgerufen wird und könnte das mit einer Fehlermeldung verhindern. Aber wenn ich das zulassen möchte, wie bekomme ich das hin, das auch der erste Dialog noch funktioniert.

Grüsse,

Hans-Peter
Hans-Peter
  Mit Zitat antworten Zitat