Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

Prozedur FormClose(Nil) mittels eines Buttons in Borland Delphi aufrufen





Frage

Hallo, ich habe folgendes Problem: Ich möchte in einer Form einen Zurück-Button integrieren, welcher die Prozedur FEingabe.FormClose aufruft. Nur leider erhalte ich immer den Fehler E2035 Nicht genügend wirkliche Parameter :-( Mein Code sieht folgendermaßen aus: procedure TFEingabe.btnZurueckClick(Sender: TObject); begin FEingabe.FormClose(Nil); end; Kann mir jemand weiter helfen? Ich verwende Borland Delphi 2005. Danke schon mal für eure Antworten.

Antwort 1 von son_quatsch

Wie wärs, wenn Du einfach nur
Zitat:
Close;

aufrufst?

Antwort 2 von GastXY

Danke. Nach mehrmaligen rumprobieren, bin ich jetzt auch darauf gekommen *g* Warum umständlich, wenns auch einfach geht :-)

Jetzt hab ich nur noch das Problem, dass ich in mein FormCloseQuery noch eine Abfrage integrieren möchte, die erkennt, ob am geöffneten Datensatz Änderungen vorgenommen wurden (die Felder, in denen Änderungen vorgenommen werden können, sind alles TDBEdit-Felder), und wenn ja, dann eine Messagebox aufgeht, in der man wählen kann, ob die geänderten Daten gespeichert oder verworfen werden sollen. Das ausgewählte soll dann natürlich auch mit den Daten geschehen.

Antwort 3 von son_quatsch

Aufwändiger. Deine FormCloseQuery-Prozedur müsste dann wie folgt aussehen, wobei das mit Table1. nur geraten ist (habe nie Datenbankenzugriffe in Delphi gemacht) - aber der Sinn dahinter sollte klar werden:

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
  bModified: boolean;
  i1: integer;
begin
  bModified:= false;

  for i1:= 0 to ComponentCount- 1 do begin
    if Components[i1] is TDBEdit then begin
      if (Components[i1] as TDBEdit).Modified then begin
        bModified:= true;
        break;
      end;
    end;
  end;

  if bModified then begin
    case MessageBox(Handle, pchar('Sie haben Änderungen an den Daten vorgenommen.'#13'Möchten Sie diese speichern?'), pchar('Änderungen speichern?'), MB_ICONQUESTION or MB_YESNOCANCEL) of
      IDYES: begin
        // irgendwas .Commit (Änderungen übernehmen)
        Table1.CommitUpdates;
      end;
      IDNO: begin
        // irgendwas .Rollback oder .Cancel (Änderungen verwerfen)
        Table1.CancelUpdates;
      end;
      IDCANCEL: CanClose:= false;
    end;
  end;
end;


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: