AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

formCloseQuery umgehen

Ein Thema von happyaura · begonnen am 17. Apr 2006 · letzter Beitrag vom 17. Apr 2006
Antwort Antwort
happyaura

Registriert seit: 12. Jan 2005
Ort: Hamburg
73 Beiträge
 
Delphi 6 Personal
 
#1

formCloseQuery umgehen

  Alt 17. Apr 2006, 15:28
Hallo,

gibt es eine möglichkeit, das event "OnCloseQuery" beim schließen eines programmes zu umgehen?
Ziel ist folgendes:

Programm starten
Initialisieren
wenn nicht erfolgreich, dann schließen ohne FormCloseQuery(...) auszuführen
sonst programm durchlaufen lassen und "beim" Schließen FormCloseQuery(...) ausführen

Oder muß ich den umweg über var CloseWurdeWaehrendInitAufgerufen:bool; gehen?

Gruß Martin
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: formCloseQuery umgehen

  Alt 17. Apr 2006, 16:19
Hi,
du musst nicht über diese Variable gehen. Du kannst zwar ein Event nicht wirklich umgehen, aber eingetragen für ein solches Event wird immer nur ein Funktionszeiger. Wenn du nun keine Behandlung des Events OnCloseQuery möchtest, so brauchst du nur den leeren / nil Zeiger angeben (z.B. im Objektinspektor kein Eintrage bei dem Ereignis OnCloseQuery).
Wurde dein Init erfolgreich ausgeführt, so kannst du dort (nachdem du weißt dass es erfolgreich war) einfach deine Behandlung zuweisen:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
   ...
  private
    procedure init;
    procedure DoOnCloseQuery(* was auch immer benötigt wird *)
  end;

procedure TForm1.init;
begin
  ...
  if ERFOLGREICH then
    begin
      self.OnCloseQuery := self.DoOnCloseQuery;
    end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: formCloseQuery umgehen

  Alt 17. Apr 2006, 16:23
genauso könntest du im private eine Variable plazieren in der du speicherst ob das INIT erfolgreich war. Und im OnCloseQuery gehst du dann auf die Variable ein
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
happyaura

Registriert seit: 12. Jan 2005
Ort: Hamburg
73 Beiträge
 
Delphi 6 Personal
 
#4

Re: formCloseQuery umgehen

  Alt 17. Apr 2006, 16:44
erst einmal vielen Dank für die Antworten
@SirThornberry
den weg über eine extra variable wollte ich möglichst umgehen, da es nur um ein einmaliges fehlerabfangen beim starten geht.

@Der_Unwissende
man munkelt, es soll auch ausserhalb des OI die möglichkeit geben, events zuzuordnen...
auf die idee hätte ich vielleicht auch mal selbst kommen können, schlimm, wie man manachmal auf dem schlauch steht.

aber leider tritt noch ein kleines problem auf:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
   ...
  private
    procedure DoOnFormCreate;
    procedure DoOnCloseQuery(* was auch immer benötigt wird *)
  end;

procedure TForm1.DoOnFormcreate(sender:TObject;
begin
  ...
  if ERFOLGREICH then
    begin
      self.OnCloseQuery := self.DoOnCloseQuery;
    end
  else
   self.close ; //<--- geht nicht
end;
ich kann mein programm während des Events "OnCreate" nicht mit self.close schließen. gibt es da alternativen, sonst muß ich mir noch mal was anderes überlegen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: formCloseQuery umgehen

  Alt 17. Apr 2006, 16:47
Ich kann auch nicht gleichzeitig mit dem einen Bein ins Auto einsteigen und mit dem anderen wieder aussteigen wollen. Das OnCreate-Ereignis ist nun mal dazu da das Formular zu initialisieren. Entweder beendest du deine Anwendung vorher oder nachher.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
happyaura

Registriert seit: 12. Jan 2005
Ort: Hamburg
73 Beiträge
 
Delphi 6 Personal
 
#6

Re: formCloseQuery umgehen

  Alt 17. Apr 2006, 16:49
hab mir schon sowas gedacht. dann muß mal schauen, ob da nicht ein grundsätzlicher designgedanke fehlerhaft ist.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#7

Re: formCloseQuery umgehen

  Alt 17. Apr 2006, 19:17
wie wärs mit halt(0) im fehlerfall?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
happyaura

Registriert seit: 12. Jan 2005
Ort: Hamburg
73 Beiträge
 
Delphi 6 Personal
 
#8

Re: formCloseQuery umgehen

  Alt 17. Apr 2006, 19:25
gut, das hat vor allem den vorteil, dass es genau so funktioniert, wie ich mir das vorstelle

dank Dir, sonst hätte ich das erst beim ersten auslösen des Timers abfangen können, sprich 100ms später.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz