Bonjour, je suis nouveau dans ce forum, je programme avec delphi 5 j'ai une base Données sous Delphi et je ne c pas Comment faire une alarme clignotante avec Delphi
Est ce que c possible merci bien de m'aidé je sui en face d'un grand problème
Bonjour, je suis nouveau dans ce forum, je programme avec delphi 5 j'ai une base Données sous Delphi et je ne c pas Comment faire une alarme clignotante avec Delphi
Est ce que c possible merci bien de m'aidé je sui en face d'un grand problème
Pour commencer, qu'est-ce que tu appelles une "alarme clignotante"?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Si j'ai bien compris, vous voulez faire un voyant qui clignote :
Sinon il faudrait mieux s'expliquer!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 TForm1 = class(TForm) Timer1: TTimer; procedure FormPaint(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Déclarations privées } bool : boolean; public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormPaint(Sender: TObject); begin if bool then Canvas.Brush.Color:=clred else Canvas.Brush.Color:=clWhite; Canvas.Ellipse(0,0,20,20) end; procedure TForm1.Timer1Timer(Sender: TObject); begin bool:=not bool; Invalidate; end;
On pourrait même mettre sleep(500) pour que l'utilisateur se rende bien compte de l'alarme et cela éviterait d'utiliser un TTimer!!
Un signal visuel :
un signal sonore :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 procedure TForm1.alarme; var x : integer; begin x:=0; while x < 6 do begin if Canvas.Brush.Color = clWhite then Canvas.Brush.Color := clRed else Canvas.Brush.Color := clWhite; Canvas.Ellipse(0,0,10,10); sleep(500); inc(x); Invalidate; end; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 procedure TForm1.alarme; var x : integer; begin x:=0; while x < 6 do begin Windows.Beep(300,500); //ou beep sleep(500); inc(x); end; end;
Des deux propositions de Basile je pense que la 1ère est à privilégier (Timer).
En effet avec le For i = 1 to 6 de la 2° version tu vas bloquer le CPU.
Edit : de plus avec le For l'alarme sera juste temporaire (le temps du For avec ses x sleep(500)), alors qu'avec le Timer, l'alarme sera permanente (jusqu'à ce qu'une action la stoppe).
j'ai fais ça pour que l'utilisateur se rende bien compte qu'il y a une alarme car il ne pourra plus rien faire.
Après, ça dépend du context!
Il peut aussi être intéressant de faire clignoter le bouton de la barre des tâches si l'application est minimisée
Supprimer FLASHW_TIMERNOFG pour avoir le clignotement dans tous les cas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 var Info :FlashWInfo; begin Info.cbSize := SizeOf(Info); Info.hwnd := Handle; Info.dwFlags := FLASHW_TRAY or FLASHW_TIMERNOFG; Info.dwTimeout := 800; FlashWindowEx(Info); end;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager