SCREENSAVER AVEC PREVIEW+CONFIG EN SUPER SIMPLE !

sokoban Messages postés 32 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 4 novembre 2006 - 21 juin 2005 à 21:50
SiZiOUS Messages postés 69 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 novembre 2006 - 9 oct. 2007 à 21:55
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/32181-screensaver-avec-preview-config-en-super-simple

SiZiOUS Messages postés 69 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 novembre 2006
9 oct. 2007 à 21:55
Précisions:
L'astuce du dessus ne fonctionne que depuis NT. Pour 9x/ME, c'est le nom du fichier sans l'extension, et rien d'autre.
SiZiOUS Messages postés 69 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 novembre 2006
9 oct. 2007 à 21:35
Pour nommer votre screensaver avec un nom plus "parlant" que le nom du fichier sans son extension, linkez un fichier res dont la source est la suivante:

STRINGTABLE
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
{
1, "Le nom de mon screensaver"
}

Enregistrez ce fichier par exemple sous scrname.rc.

Puis pour le linker sous Delphi 7:
Tout d'abord, le compiler: brcc32 scrname.rc
Puis rajoutez cette déclaration dans votre code: {$R scrname.RES}

Sous Delphi 2005 et up:
Ajoutez le fichier scrname.rc aux fichiers du projet, il se compilera lors de la construction de votre application.
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
28 nov. 2005 à 10:24
Bem voilà,
je vois pas où était le problème ...
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
26 nov. 2005 à 11:22
Salut,

Voici une des solutions pour ce problème.

uses IniFiles;

Dans la fiche config visible dans paramètres :

if OpenDialog1.Execute then begin
with TIniFile.Create('C:\Save.ini') do try
WriteString('audio','filename',OpenDialog1.FileName);
finally
Free;
end;
end;

Dans la fiche principale du screen saver:

with TIniFile.Create('C:\Save.ini') do try
MediaPlayer1.FileName := ReadString('audio','filename',{fichier par défaut});
MediaPlayer1.Open;
MediaPlayer1.Play;
finally
Free;
end;


A bientôt,

CINCAP
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
25 nov. 2005 à 08:19
Salut,

Pas facile ma demande apparement.

Aucune réaction d'autres membres c'est bien dommage !.

Et pourtant j'ai une solution qui fonctionne.

J'attends vos idées.

CINCAP
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
23 nov. 2005 à 13:25
Ok, je vais voir si je peux faire ça ds la journée ...
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
23 nov. 2005 à 11:15
Bonjour,

C'est ton programme donc tu connais mieux les paramètres que moi me semble t'il ?

Il te suffirait à ta meilleure convenance naturellement de rajouter à ton programme en test, sur la fiche "f_prin.pas" le composant Tmediaplayer.

Et sur la fiche "f_config.pas" qui sera visible dans "Paramètres" les composants TopenDialog et un Tbutton pour comprendre l'erreur.

Pour moi qui suit débutant mais logique,je cale sur ce problème et c'est pour cela que je demande de l'aide sur ce site.

@+,

CINCAP
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
23 nov. 2005 à 10:06
Tu as les paramètres pour savoir ds quelles conditions la programme est lancé!!!
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
22 nov. 2005 à 17:42
Bonjour, .
C'est exactement ce que j'essaye de faire mais comme déjà dit, la fiche frmmain est déjà active (forcément) et donc le Tmediaplayer qui est placé sur cette fiche aussi.

De plus à la 1ère exécution, il n'y a pas encore de fichier son.

Même en le pilotant de la fiche f_config, en lui attribuant le résultat de Topendialog comme filename et en lui donnant l'instruction open puis play, j'obtiens un message d'erreur.

@+,
Cincap
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
22 nov. 2005 à 10:15
Je ne vois pas trop où est le problème ...
Je te conseille de laisser le choix du fichier à l' utilisateur via le panneau de config mais de lire le fichier ds la fenêtre principale...
A+
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
22 nov. 2005 à 08:24
Bonjour,

Bravo pour l'idée.

J'aimerais rajouter un Tmediaplayer sur la fiche f_prin et sur la fiche f_config, le moyen avec un topendialog de charger une musique de fond en mp3, wav, mid.

Le problème, j'obtiens un message d'erreur parceque apparemment, on ne sait pas attribuer un son au Tmediaplayer d'une fiche à l'autre ou bien parceque dans les paramètres preview Windows, la fiche f_prin est déjà active.

y a t'il une solution ?

jean-marie.capellen@skynet.be

CINCAP
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
26 sept. 2005 à 11:07
Merci Bloom1. A+
cs_bloom1 Messages postés 328 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 8 mars 2007
24 sept. 2005 à 17:16
Wow il est cool ton ScreenSaver lol 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
22 juin 2005 à 17:23
Merci GrandVizir pour ces explications.
Mais il ne me semble pas que la description = nom du fichier sans son extension:
ssbezier.scr a pour description "Bezier(s)."
ssflwbox.scr a pour description "Flor 3D" sous Win en Portugais
Faut chercher, on va bien trouver comment faire ...
A+
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
22 juin 2005 à 15:38
$D est une directive qui permet de décrire des copyrights, et correspond au champ "Description" de l'onglet "Lieur" des propriétés du projet.

J'ai l'impression que c'est un héritage du 16 bits du vieux Win3.1

Désormais, l'extraction des données se fait par l'onglet "Infos version" et la plupart des pilotes/drivers utilisent ces champs pour donner toutes leurs caractéristiques. Il faut dire aussi que les infos versions sont plus complètes que le pauvre petit champ de description. De plus, les API Windows cherchent toujours les infos-version.

Pour ce qui est du nom de l'écran de veille, c'est peut-être tout simplement le nom du fichier SCR sans son extension.
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
22 juin 2005 à 10:20
Salut Sokoban,
{$E SCR} permet bien de changer l' extension lors de la compil.
{$D SCRNSAVE Ecran de veille de Maurício} permet de mettre la description de ton Screen qui apparaitra dans la comboxbox de selection d' un screen saver. Cependant, il apparait MauScreen et donc, ça a pas l' air de marcher... Si qqu' un sait comment faire ...
sokoban Messages postés 32 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 4 novembre 2006
21 juin 2005 à 21:50
Excellent !
Enfin un exemple complet qui fonctionne à merveille !

Je suppose que le {$E SCR} permet de forcer l'extension .SRC lors de la construction du projet, c'est ça ?

J'ai pas trop compris à quoi sert le {$D SCRNSAVE Ecran de veille de Maurício} ???

Le test sur hPrevInst = 0 est impératif, sinon, l'économiseur se lancerait tous les 15 minutes (par exemple) par dessus lui-même !

Bref, un squelette idéal !!! Merci et encore bravo !
Rejoignez-nous