Form nur einmal öffnen

19. Mai 2009 14:37

Hallo Leute,
gibt es einen Möglichkeit festzustellen, ob einen gewissen Form schon geöffnet ist oder der Form mittzuteilen, dass sie nur einmal geöffnet werden darf pro NAV Sitzung?

MFG

Sven

Re: Form nur einmal öffnen

19. Mai 2009 16:22

Theoretisch ja, ist aber etwas umständlicher zu realisieren:

  1. Erstelle eine Codeunit, welche du als SingleInstance deklarierst
    Lege dort folgende Funktionen an:
    SetFormHasBeenStarted(NewStarted : Boolean)
    GlobalStarted := NewStarted;

    und
    GetFormHasBeenStarted() : Boolean
    EXIT(GlobalStarted);
  2. In der zu überwachenden Form trägst du im OnOpenForm folgendes ein:
    Code:
    IF DeineCodeunit.GetFormHasBeenStarted THEN BEGIN
      DontReset := TRUE;
      CurrForm.CLOSE;
    END ELSE
      DeineCodeunit.SetFormHasBeenStarted(TRUE);
  3. Im OnCloseForm:
    Code:
    IF NOT DontReset THEN
      DeineCodeunit.SetFormHasBeenStarted(FALSE);
Hinweis: Dieser Programmcode ist nicht getestet, sondern frei ausgedacht.