AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Buttonabhängiges Schließen des Programms
Thema durchsuchen
Ansicht
Themen-Optionen

Buttonabhängiges Schließen des Programms

Ein Thema von hans ditter · begonnen am 20. Okt 2010 · letzter Beitrag vom 29. Okt 2010
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#1

Buttonabhängiges Schließen des Programms

  Alt 20. Okt 2010, 01:25
Hi DPler,
ich habe mich jetzt schon zum zweiten Mal gefragt, wie man das schließen einer Anwendung abhängig davon machen kann, welcher Button gedrückt wird.
Konkret geht es darum, dass ich gerade ein Chat schreibe. Nun wollte ich am Anfang ein Anmeldefenster einfügen. Wenn man das Programm startet, dann sieht man im Hintergrund das eigentliche Chatfenster (ist nicht enabled). Davor ist eine kleiner Fenster zu sehen, in welchem man Benutzername und Passwort eingibt, dann auf Anmelden klickt.
Beim Klick auf den Button Anmelden soll nur dieses Fenster geschlossen werden. Wenn man aber auf das rote Kreuz oben in der Ecke des Fenster klickt, soll das Programm beendet werden.

Hoffe ihr könnt nachvollziehen, wo mein Problem liegt. Ich habe mir auch schonmal OnCloseQuery angeschaut, aber das passt auch nicht auf mein Problem. Denn das Anmeldefenster soll ja in jedem Fall geschlossen werden, nur die Behandlung des Hauptfensters soll ja abhängig von dem gedrückten Button sein.

LG, hans ditter
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Buttonabhängiges Schließen des Programms

  Alt 20. Okt 2010, 02:09
Guck dir mal TForm.ShowModal und TForm.ModalResult an, bzw. auch TButton.ModalResult. (Tipp: Schließen über das rote X dürfte "mrNone" liefern.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Buttonabhängiges Schließen des Programms

  Alt 20. Okt 2010, 02:58
Hey, danke für die Antwort. Werds mir morgen mal anschauen... bin jetzt echt müde...

(Ok, ich geb zu, hab's grad ein biiischen übertrieben mit den Smileys.... und schon wieder einer, ein Teufelkreis ... )
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Buttonabhängiges Schließen des Programms

  Alt 20. Okt 2010, 07:08
Guck dir mal TForm.ShowModal und TForm.ModalResult an, bzw. auch TButton.ModalResult. (Tipp: Schließen über das rote X dürfte "mrNone" liefern.)
Plediere ebenfalls für Showmodal.

Siehe Quelltext für Anwendung:

Delphi-Quellcode:
begin
  Application.Initialize;
  Application.MainFormOnTaskBar:= true;

  frm_Login:= Tfrm_Login.Create(nil);
  try
    if frm_Login.ShowModal = mrOk then
      Application.CreateForm(Tfrm_Start, frm_Start);
  finally
    frm_Login.Free;
  end;
  Application.Run;
end.
So wird erst dein Chatfenster erstellt, wenn dein Login ein mrOk liefert, falls es das nicht tut und wird beendet, schließt sich die komplette Anwendung.
Steven
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Buttonabhängiges Schließen des Programms

  Alt 20. Okt 2010, 13:03
hm, werds gleich nochmal googlen, aber könntest du an meinem Quelltext nochmal die Änderungen, die ich vornehmen muss mit Kommentaren posten?
Hier mein Quelltext:
Delphi-Quellcode:
program Client;

uses
  Forms,
  Unit1 in 'Unit1.pas{Form4},
  Unit2 in 'Unit2.pas{Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Buttonabhängiges Schließen des Programms

  Alt 20. Okt 2010, 13:56
Welches ist denn das LoginForm?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: Buttonabhängiges Schließen des Programms

  Alt 20. Okt 2010, 15:30
Form1 --> Hauptform
Form2 --> Loginform
Beide Forms werden (eigentlich) bei Programmstart erstellt.

Ich hatte mir zu Hause auch Gedanken gemacht. Das ist rausgekommen:
Delphi-Quellcode:
program Client;

uses
  Forms,
  Unit1 in 'Unit1.pas{Form4},
  Unit2 in 'Unit2.pas{Form2};

{$R *.res}

begin
  Application.Initialize;
  //Application.MainFormOnTaskBar:=True; --> failure: Application kennt diesen Bezeichner nicht
  Form2:=TForm2.Create(nil);
  try
    if Form2.ShowModal = mrOk then
      Application.CreateForm(TForm1,Form1);
  finally
      Form1.Free;
  end;
  Application.Run;
end.
Der restliche Quelltext funzt auch nicht. Da wird das Loginfenster halbwegs erzeugt, dann kommt aber eine Fehlermeldung, dass aus einem sichtbaren Fenster kein modales gemacht werden kann.
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Buttonabhängiges Schließen des Programms

  Alt 20. Okt 2010, 15:38
Ungetestet:
Delphi-Quellcode:
program Client;

uses
  Forms,
  Unit1 in 'Unit1.pas{Form4},
  Unit2 in 'Unit2.pas{Form2};

{$R *.res}

begin
  Application.Initialize;
  Form2:=TForm2.Create(nil);
  try
    Form2.Visible := false;
    if Form2.ShowModal = mrOk then
      Application.CreateForm(TForm1,Form1);
  finally
      Form2.Free; //Form2, nicht Form1
  end;
  Application.Run;
end.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#9

AW: Buttonabhängiges Schließen des Programms

  Alt 20. Okt 2010, 15:49
tja, das funktioniert schonmal fast super.
Ich hatte versehentlich eingegeben if Form2.ShowModal <> 0 then ... und was soll ich sagen, dass funktioniert. Wenn ich da angebe if Form2.ShowModal = mrOk then erzählt er mir, dass 'mrOk' ein 'undefinierter Bezeichner' ist.

Und dann hab ich noch eine Verständnisfrage. Du erzeugst Form2. Machst es dann aber unsichtbar, man kann es aber trotzdem sehen? Ist mir im Moment noch ein Rätsel...
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Buttonabhängiges Schließen des Programms

  Alt 20. Okt 2010, 16:25
Ein kurzer Blick in die Referenz:
Zitat von Delphi-Referenz:
constant Controls.mrOk
Aha, Controls fehlt in der uses-Klausel Und Formulare sind per Default erst einmal nicht visible, das hast Du anscheinend im OI geändert. Also setze ich das wieder zurück, um die Fehlermeldung abzustellen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 03:52 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