Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi mehrere MessageDlgPos auf einmal (https://www.delphipraxis.net/116837-mehrere-messagedlgpos-auf-einmal.html)

about_blank 7. Jul 2008 14:01


mehrere MessageDlgPos auf einmal
 
Guten Nachmittag erstmals,

also:

Ich will ein Kleines Programm schreiben, dann bei einem Klick immer MessageDlgPos ausgibts.



Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
randomize;
repeat
     
      MessageDlgPos('Test', mtInformation, [], 0, random(Screen.Width), random(Screen.Height));
     
      MessageDlgPos('Test', mtError, [], 0, random(Screen.Width), random(Screen.Height));
   
      MessageDlgPos('Test', mtWarning, [], 0, random(Screen.Width), random(Screen.Height));
   
      MessageDlgPos('Test', mtConfirmation, [], 0, random(Screen.Width), random(Screen.Height));

until False ;

end;
Also so, dass man sie nicht schleißen muss/soll.


Könntet ihr mir vllt weiter helfen.

Vielen Dank im Voraus.

mfg.

Sharky 7. Jul 2008 14:03

Re: mehrere MessageDlgPos auf einmal
 
Hai about_blank,

zum einen: Was ist denn deine Frage?

und zum anderen: Solche "Spassprogramme" mögen wir hier eigentlich überhaupt nicht!

about_blank 7. Jul 2008 14:08

Re: mehrere MessageDlgPos auf einmal
 
Frage: Den Bildschirm mit MessageDlgPos ausgeben, aber dass man diese nicht schließen muss/soll für den nächsten Dialog.

zweck: meine mutter am pc erschrecken (-> am Mi. geburtstag)

Den sonst hasse ich selber solche Joke-Programme, aber ich will nur meine Mutter ein bisschen erschrecken.

mfg.

mschnell 7. Jul 2008 14:23

Re: mehrere MessageDlgPos auf einmal
 
Was MessageDlgPos im endeffekt macht ist ein ShowModal auf ein TForm.
Und weil ShowModal erst abgearbeitet werden muss bevor es weiter geht kann es nicht meherere MessageDlgs gleichzeitig geben.

Um das zu umgehen müsstest du die Dialoge in der Schleife wohl selbst erstellen und einfach mit .show zeigen.
in etwa so
Delphi-Quellcode:
var
  i: integer;
  form: array [0..10] of TForm;
begin
  for i:= 0 to high(form) do begin
    form[i]:= TForm.Create(self);
    form[i].Left:= random(screen.Width);
    form[i].Top:= random(screen.Height);
    form[i].Show;
  end;
end;
das design der forms bleibt dir überlassen

Aber wie schon Peter Parkers Onkel einst sagte "Mit großer macht, kommt große Verantwortung" also immer brav mit sowas sein.

RavenIV 7. Jul 2008 14:26

Re: mehrere MessageDlgPos auf einmal
 
Zitat:

Zitat von about_blank
Frage: Den Bildschirm mit MessageDlgPos ausgeben, aber dass man diese nicht schließen muss/soll für den nächsten Dialog.

zweck: meine mutter am pc erschrecken (-> am Mi. geburtstag)

Den sonst hasse ich selber solche Joke-Programme, aber ich will nur meine Mutter ein bisschen erschrecken.

So ne blueScreen kommt auch immer gut.

Gibt es sogar fertige Sachen hier bei uns.
Such mal nach "blue Screen" oder "BSOD" oder so.

Und Du meinst, sie hat ne Freude dran?

about_blank 7. Jul 2008 14:35

Re: mehrere MessageDlgPos auf einmal
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von about_blank
Frage: Den Bildschirm mit MessageDlgPos ausgeben, aber dass man diese nicht schließen muss/soll für den nächsten Dialog.

zweck: meine mutter am pc erschrecken (-> am Mi. geburtstag)

Den sonst hasse ich selber solche Joke-Programme, aber ich will nur meine Mutter ein bisschen erschrecken.

So ne blueScreen kommt auch immer gut.

Gibt es sogar fertige Sachen hier bei uns.
Such mal nach "blue Screen" oder "BSOD" oder so.

Und Du meinst, sie hat ne Freude dran?

Na was glaubst du hab ich vor:

Ich werd mit ShellExecute den BlueScreen ScreenSaver von MS ausführen.

__________________________________________________ ___________________________________________

@mschnell:
danke, mal aber das ginge doch auch mit den MessageDlgPos oder ?

Ein Freund hatte es sogar schon geschafft nur ich finde jetzt das Programm nicht. :wall:
Und selber geht er nicht ans Handy ran :(

so weit ich mich an den Code erinnern kann waren das auch nur ein paar zeilen


mfg

mschnell 7. Jul 2008 14:53

Re: mehrere MessageDlgPos auf einmal
 
ja geht auch
Delphi-Quellcode:
procedure TForm2.Button4Click(Sender: TObject);
var
  i: integer;
  form: array [0..10] of TForm;
begin
  randomize;
  for i:= 0 to high(form) do begin
    form[i]:= CreateMessageDialog('test', mtWarning, []);
    form[i].Left:= random(Screen.Width);
    form[i].Top:= random(Screen.Height);
    form[i].Show;
  end;
end;

Jelly 7. Jul 2008 15:02

Re: mehrere MessageDlgPos auf einmal
 
Zitat:

Zitat von about_blank
zweck: meine mutter am pc erschrecken

und
Zitat:

Zitat von about_blank
Ich werd mit ShellExecute den BlueScreen ScreenSaver von MS ausführen.

Dein Mutter wird sich freuen. Weil wir hier aber kein Spassforum sind, und solche unsinnigen, ja gar blöden, Sachen hier unterstützen, wirst du damit wohl alleine klarkommen müssen. Hier gibts jedenfalls keine Unterstützung mehr zu.

* * * C L O S E D * * *


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 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