EXEMPLE D'APPLICATION SANS FORM

Signaler
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
-
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28230-exemple-d-application-sans-form

Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
18
Bravo MAURICIO !

C'est ce que j'avais cherché pendant des heures! :s

Merci.
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Voilà comment on pourrait procéder avec un Timer:
Mettez un TTimer sur votre Datamodule!

procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin
Timer1.OnTimer(Nil);

While Not Application.Terminated Do
Application.ProcessMessages; // pour eviter que l' application ne se ferme : ]
end;

procedure TDataModule1.Timer1Timer(Sender: TObject);
begin
HandleEcran := GetWindowDC(0);{obtenir contexte graphique de l'écran}
CanvasEcran := TCanvas.Create;{Un canvas pour le manipuler}
CanvasEcran.Handle := HandleEcran;{Lier les deux}
Horloge:=TIcon.Create;{icone de l'horloge sans aiguille}
Unit1.DataModule1.ImageList1.GetIcon(0,Horloge);
Application.Minimize;{pour possibilité stopper l'application}
AfficherHeure;
end;

Le problème c' est que cette fois, même en faisant click droit/Fermer, bem l' application ne se ferme pas ...
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
Hello caribensila,

Merci pour ce code très interessant qui pourra servir à du monde sur le site je pense.

Bonne prog,
JMP77.
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
18
Merci MAURICIO.
On peut sortir de l'appli en faisant un clic droit sur "Horloge", dans la barre des tâches... puis "Fermer".
En fait, c'est une appli qui devrait plutôt tourner en tâche de fond. Et si tu supprimes la ligne:
Application.Minimize;
elle tournera vraiment en tâche de fond...

Pour le Goto/Sleep , je n'ai aucun mérite. Je n'ai simplement pas su mettre en oeuvre un Timer dans une telle application sans Form :s
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Belle démonstration!
Bien vu le Goto/Sleep pour éviter le timer : )

2 petites remarques qu' en même:
- l' horloge disparait et il faut attendre 1 minute (max.) pour qu' elle s' affiche à nouveau. Ok, y a qu' a diminuer le sleep !!!
- Pas moyen de sortir du programme, si au moins il y avait un trayIcon ...

9/10 pour cette très belle démonstration.