online 1
gast (50)

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

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon GastXY vom 27.05.2020, 10:13 Options

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

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 schreiben

Antwort 1 von son_quatsch vom 27.05.2020, 12:51 Options

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

aufrufst?

Antwort 2 von GastXY vom 28.05.2020, 07:33 Options

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 vom 28.05.2020, 13:31 Options

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;

Ähnliche Themen

Buttons werden auf Webseite als X dargestellt
tiro1957  16.05.2007 - 92 Hits - 2 Antworten

Neue Buttons für Delphi 6?
hamamotto  27.09.2007 - 40 Hits - 1 Antwort

Systemwiederherstellung rückgängig machen
guency  11.03.2008 - 14 Hits - 2 Antworten

Compiler programmieren in Delphi
tobsa  10.05.2008 - 115 Hits - 1 Antwort

lokales serverprogramm in delphi
hastalavista  23.06.2008 - 68 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026