Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Endlose Folge von Messagedlg's (https://www.delphipraxis.net/42762-endlose-folge-von-messagedlgs.html)

Xoraz 23. Mär 2005 14:12


Endlose Folge von Messagedlg's
 
Hallo

was ich vorhabe ist folgendes:
Der Benutzer soll bei Klick auf ein Button eines Messagedlg auf eine weitere Dialogbox verwiesen werden, von dort auf eine weitere.
Mit dem Befehl if /then/ else ist nur eine Folge möglich, egal ob ich auf Ja/nein klicke.


Zitat:

if
messagedlg('Text1.', mtinformation,[mbYes, mbNO], 0)=mryes
then begin
messagedlg('Text2a.', mtconfirmation,[mbok], 0)
end
else
messagedlg('Text2b.', mtconfirmation,[mbYes], 0)
wie kann man die Folge erweitern?

thx im voraus

Steve 23. Mär 2005 14:17

Re: Endlose Folge von Messagedlg's
 
Hi,

genauso wie Du bisher den Rückgabewert auswertest, so kannste das auch bei Text2a usw. machen:
Delphi-Quellcode:
if messagedlg('Text1.', mtinformation,[mbYes, mbNO], 0)=mryes then
begin
  if messagedlg('Text2a.', mtconfirmation,[mbok], 0)=mrYes then
  begin
  ...
  end
  else
  begin
  ...
  end;
end
else
  messagedlg('Text2b.', mtconfirmation,[mbYes], 0)
Geschickter wäre es aber, da ne Funktion drumrumzubauen. Auch ein Case würde sich evtl. lohnen

Gruß
Stephan :dance:

Xoraz 23. Mär 2005 16:31

Re: Endlose Folge von Messagedlg's
 
thx.

mit funktion hab ich aber noch keine so richtige ahnung.

Luckie 23. Mär 2005 16:32

Re: Endlose Folge von Messagedlg's
 
Wozu braucht man eine unendliche Folge von Dialogen? falls das ein Scherzprgramm werden soll, worst du dazu in der DP keinerler Unterstützung finden.

PierreB 23. Mär 2005 16:52

Re: Endlose Folge von Messagedlg's
 
Noch einfacher wäre es einfach nen Timer zu nehmen, dass Intervall ziemlich niedrig setzen und in den Timer einfach MessageDLG reinschreiben. Ich muss mich trotzdem Luckie anschließen, ein solches Programm ist einfach nur völlig schwachsinnig.

MathiasSimmack 23. Mär 2005 17:09

Re: Endlose Folge von Messagedlg's
 
Schwachsinn? Aber warum bietest du dann eine Lösung an? :roll:

Khabarakh 23. Mär 2005 17:09

Re: Endlose Folge von Messagedlg's
 
Zitat:

Zitat von PierreB
Noch einfacher wäre es einfach nen Timer zu nehmen, dass Intervall ziemlich niedrig setzen und in den Timer einfach MessageDLG reinschreiben. Ich muss mich trotzdem Luckie anschließen, ein solches Programm ist einfach nur völlig schwachsinnig.

Dann kann man ja gleich "while true do MessageDlg ..." verwenden. Xoraz will aber verschachtelte MessageDlgs, auch wenn unendlich viele Dialoge damit auch nicht sinnvoller werden.

Binärbaum 23. Mär 2005 17:29

Re: Endlose Folge von Messagedlg's
 
Mit diesen verschachtelten if-Anweisungen kann man nicht unendlich viele sondern nur sehr viele MessageDlg anzeigen lassen. Schleißlich ist jeder Quelltext endlich, und spätestens nach der 20. "Verschachtlung" wird der Code so unübersichtlich, dass selbst der Programmierer da nicht mehr oder nur noch sehr schwer durchsieht. Einzige Möglichkeit wäre eine Endlosschleife, aber das macht ziemlich wenig Sinn.

MfG
Binärbaum

semo 23. Mär 2005 17:32

Re: Endlose Folge von Messagedlg's
 
manche leute haben einfach nur langeweile :gruebel:

Binärbaum 23. Mär 2005 18:05

Re: Endlose Folge von Messagedlg's
 
[OT]
Zitat:

Zitat von computer-glossar.de
manche leute haben einfach nur langeweile :gruebel:

Aber wenn man langeweile hat, braucht man sich keine MessageDlgs in einer Endlosschleife anzutun.

MfG
Binärbaum
[/OT]

Sharky 23. Mär 2005 18:07

Re: Endlose Folge von Messagedlg's
 
Bleibt bitte beim Thema!

OffTopic ist in jedem Fall nicht erwünscht!

Xoraz 23. Mär 2005 20:57

Re: Endlose Folge von Messagedlg's
 
:-D
ihr übertreibt schon ein bisschen
okay, ich hätt vlt nicht "endlos" in den topic schreiben sollen, sondern einfach nur "mehrere Folgen"

ich wollte nur einen möglichst einfachen Befehl um mehrere Dialogboxen per klick hintereinander aufzurufen.
(20 würde ich schon als "endlos" bezeichnen.)

@luckie: ja, das soll ein Scherzprogramm werden^^

@computer-glossar: stimmt.

Xoraz 23. Mär 2005 20:59

Re: Endlose Folge von Messagedlg's
 
ps es können auch messageboxen sein.

wäre vlt einer so nett und könnte mir so ein beispiel mit funktionen oder case of anweisungen hier posten?

Speedmaster 23. Mär 2005 21:06

Re: Endlose Folge von Messagedlg's
 
Delphi-Quellcode:
while FResult = mrYes do
 case Dialog of
 1:
 begin
   FResult := messagedlg('Text1a.', mtconfirmation,[mbok], 0);
   inc(Dialog);
 end;
 2:
 begin
   FResult := messagedlg('Text2a.', mtconfirmation,[mbok], 0);
   inc(Dialog);
 end;
 3:
 begin
   FResult := messagedlg('Text3a.', mtconfirmation,[mbok], 0);
   Dialog := 1;
 end;
end;

Xoraz 23. Mär 2005 21:17

Re: Endlose Folge von Messagedlg's
 
thx.

bingrad am ausprobieren.

TeronG 23. Mär 2005 21:26

Re: Endlose Folge von Messagedlg's
 
Zitat:

Zitat von Xoraz
Mit dem Befehl if /then/ else ist nur eine Folge möglich, egal ob ich auf Ja/nein klicke.

Warum das denn :gruebel: du kannst doch mit einer Delphi-Referenz durchsuchenCASE abfrage prüfen was gedrückt wurde und je nach den reagieren :gruebel: oder nicht?
Aber 20 abfragen ineinander sind echt n bissl viel .. ^^

[EDIT]
Zitat:

Zitat von Xoraz
@luckie: ja, das soll ein Scherzprogramm werden^^

:shock: ...
[/EDIT]

Matze 23. Mär 2005 21:34

Re: Endlose Folge von Messagedlg's
 
Solche Scherzprogramme könne wir nicht unterstützen, auch wenn du nun leider schon die Lösung kennst.

MrSpock 23. Mär 2005 21:42

Re: Endlose Folge von Messagedlg's
 
Wie Matze schon gesagt hat. Lösung ist da und das Thema muss nicht weiter behandelt werden.

Ich mach hier mal zu.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz