EXEMPLE D'APPLICATION SANS FORM

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 17 déc. 2004 à 18:41
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 - 22 déc. 2004 à 01:18
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

Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
22 déc. 2004 à 01:18
Bravo MAURICIO !

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

Merci.
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
21 déc. 2004 à 15:40
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 ...
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
20 déc. 2004 à 09:33
Hello caribensila,

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

Bonne prog,
JMP77.
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
17 déc. 2004 à 19:17
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
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
17 déc. 2004 à 18:41
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.
Rejoignez-nous