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"?
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