Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zufällige MessageBox aufrufen... (https://www.delphipraxis.net/3103-zufaellige-messagebox-aufrufen.html)

nailor 24. Feb 2003 13:32

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure makeError(p: byte);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := not Timer1.Enabled;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
makeError(3);
end;

//p := Wahrscheinlichkeit eines Fehlers
procedure TForm1.makeError(p: byte);
var
  i: byte;
  typ: TMsgDlgType;
  knoeppe: set of TMsgDlgBtn;
const
  typen: array[0..4] of TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation, mtCustom);
  knoeppes: array[0..10] of TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp);
begin
//denk an das Randomize
if random(100) < p then
  begin
    typ := typen[random(5)];
    knoeppe := [];
    for i := 0 to random(6) do //mit der 6 mal ein wenig rumprobieren
      knoeppe := knoeppe + [knoeppes[i]];
    MessageDlg('Dies ist ein Fehler!', typ, knoeppe, 0);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
makeError(100);
end;

end.
Mach ein neues Projekt, füge zwei Buttons und einen Timer ein, tausch den kompletten Form1-Quellcode gegen den obigen ein, und drück F9. Vorrausgesetzt Delphi 2 ist kompatibel, macht ein Klick auf den zweiten Button sofort einen Fehler, auf den ersten kommen Fehler in zufälligem Abstand.

PS: Das hättest du aber auch noch selber hinkriegen können ;)

---

edit: mach noch
Delphi-Quellcode:
Timer1.enabled := false
zu Anfang...

NeoDeluxe 24. Feb 2003 16:29

Zitat:

PS: Das hättest du aber auch noch selber hinkriegen können :wink:
Du machst wohl witze! :( Nie im Leben! Naja nie ist vielleicht etwas übertrieben aber die Wahrscheinlichkeit ist sehr gering, dass ich sowas machen könnte. Danke sehr!

Grüße NeoDeluxe :hi:

nailor 24. Feb 2003 16:37

Wo liegt denn das Problem dabei. Nur ein wenig in der Hilfe rumsuchen wegen den Typen...

Luckie 24. Feb 2003 16:53

... und ein Grundlagenbuch wegen der Arrays. :roll:

Daniel 25. Feb 2003 14:37

Hallo Leute,

ich habe diesen Thread um vier Beiträge reduziert und möchte alle Beteiligten bitten, sich um eine sachliche Diskussion zu bemühen. :!:

:arrow: Dieser Thread ist hiermit wieder geöffnet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:43 Uhr.
Seite 3 von 3     123   

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