begin process at 2008 07 04 22:57:22
1 204 970 membres
486 nouveaux aujourd'hui
14 118 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ECRAN DE VEILLE CLUBINSCR V 2.1


Information sur la source

Catégorie :Divers Classé sous : écran, veille, screensaver, clubinscr, éteindre Niveau : Débutant Date de création : 06/12/2005 Date de mise à jour : 02/08/2006 10:30:10 Vu / téléchargé: 9 567 / 729

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (51)
Ajouter un commentaire et/ou une note

Description

Bonjour à tous,

ClubinScr est un écran de veille complet qui est du style de Windows avec une image qui se déplace sur une form si on ne change pas les paramètres. Si on l'utilise pleinement, vous avez la possibilité de lire TOUT un dossier d'image et de musique, de changer l'interval du timer, l'image de fond de fiche(qui peut - être celle du bureau ou une choisie par l'utilisateur), la couleur de fond de la fiche, la transparence ainsi que rajouter un texte défilant.
La sauvegarde des paramètres se fait dans la base de registre.
Merci à tous ceux qui laisseront des commentaires et à tous ceux qui m'ont directement ou indirectement donné un p'tit coup de pouce. Merci aussi à Cirec qui à corrigé les erreurs dans le code.
Les premiers commentaires ne sont peut-êtres pas très engagents mais ils concernent la Toute première version de mon écran de veille (donc il y a fort longtemps...).
La nouveauté : Plus de bug ;-) et affichage de l'écran de veille seulement si le handle de la fenêtre de propriété de l'Affichage n'est pas trouvé (enlevez les lignes et vous comprendrez pourquoi cela sert...).
Possibilité de mettre Windows en veille prolongée si l'écran de veille est toujour actif au bout d'un certain temps (jusqu'a 3 heures).

Conclusion

Delphi compile directement dans le system32 de windows ce qui évite de devoir déplacer le prog à chaque modif.
Pour voir le prog allez dans les propriétés de l'affichage rubrique Ecrans de veille.
Je pense que le projet ClubinScr est fini. J'y ajouterais peut-être quelques fonctionnalités de temps en temps.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Clubin.dprTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 052 octets
  • Clubin.resTélécharger ce fichier [Réservé aux membres club]4 496 octets
  • Unit1.dfmTélécharger ce fichier [Réservé aux membres club]2 504 octets
  • Unit1.pasTélécharger ce fichier [Réservé aux membres club]Voir ce fichier13 070 octets
  • Unit2.dfmTélécharger ce fichier [Réservé aux membres club]78 735 octets
  • Unit2.pasTélécharger ce fichier [Réservé aux membres club]Voir ce fichier9 938 octets

Télécharger le zip

08 décembre 2005 20:00:34 :
Ca y est enfin... J'ai viré les innombrables timer ainsi que les effets de fermeture qui ne servaient à rien...
11 mars 2006 16:27:22 :
Correction, de quelques bug et possibilité de voir l'écran de veille dans la configuration du bureau
12 mars 2006 10:09:08 :
Voila! L'écran de veille est enfin complet. Sauvegarde des paramètres et possibilité de choisir l'image, la couleur de fond et la transparence.
16 mars 2006 18:19:43 :
Ajout de la musique de fond et correction de quelques bugs (pas méchants) et d'une petite erreur d'inattention de ma part.
20 mars 2006 17:24:24 :
Donc je viens de rajouter un effet de passage de l'image avec le choix de l'animation que l'on veut... Désolé pour la qualité de l'image mais j'ai du compresser avec Paint.
13 avril 2006 18:18:55 :
Il y a eu une correction d'erreurs dans le code (merci à Cirec) et l'ajout d'un effet.
17 avril 2006 12:11:52 :
L'option du texte était parties et l'inscription des paramètres se fait désormée dans la base de registre.
28 avril 2006 18:55:27 :
J'ai corrigé un petit bug qu'il y avait avec le son quand l'écran de veille s'affiche; quand il devait se jouer il ne le faisait pas et quand il ne devait pas se faire entendre on l'entendait (oh le vilain...).
04 juin 2006 15:07:43 :
Plus de bugs au niveau des fichiers audios et affichage de l'écran de veille seulement si le handle de la fenêtre de propriété de l'Affichage n'est pas trouvé pour eviter d'avoir l'écran de veille qui démarre quand vous arrivez sur la fenêtre d'affichage...
05 juin 2006 11:50:17 :
Correction d'un bug de ma part (j'avais enlevé la ligne pour l'ouverture de la clé de la bdr) et ajout d'une fonction pour éteindre Windows si l'écran de veille est toujour actif après un temps donné.
01 août 2006 15:00:15 :
Correction de bug et ajout de fonctions
02 août 2006 10:30:10 :
Tout un dossier d'image et de musique peut être choisi. Possibilité de mettre en veille prolongée le PC et d'avoir l'image du bureau comme image d'arrière plan.
  • signaler à un administrateur
    Commentaire de f0xi le 06/12/2005 20:16:08 administrateur CS

    Ah ... bien bien bien ...

    bon deja, no comment sur les 36 timers present sur la fiche ^^

    bon par ou commencer ... mmmm ...

    deja, tu pourrais reduire la declaration pour quitter dans une procedure et appeler cette procedure dans les evenements de la fiche :

    procedure QuitterScreen;
    begin
      Application.Terminate;
      AnimateWindow(Form1.Handle,2000,AW_BLEND or AW_HIDE);
    end;

    et dans :
    form1.keypress, form1.mousemove, form1.mousedown
    appeler cette procedure.


    pour l'animation du jpg, tu peu faire comme cela :

    const
    {$j+}
       MoveLeft : boolean = true;
       MoveUp   : boolean = true;
    {$j-}

    implementation

    procedure TForm1.Form1Create(sender : tobject);
    begin
      // evite le clignotement de l'image
      form1.doublebuffered := true;
      // empeche les click sur l'image
      image1.enabled := false;
      // possition l'image au milieu de la fiche
      image1.left := (form1.width div 2) - (image1.width div 2);
      image1.top  := (form1.height div 2) - (image1.height div 2);
      // demarre l'animation
      timer1.interval := 10;
      timer1.enabled := true;
    end;

    procedure TForm1.Timer1OnTimer(sender : tobject);
    begin
      with image1 do begin
        if MoveLeft then left := left - 2 else left:= left + 2;
        if MoveUp   then top  := top - 2 else top := top + 2;

        if Left <= 0 then MoveLeft := false;
        if Left >= form1.ClientWidth-Width then MoveLeft := true;
        if top  <= 0 then MoveUp := false;
        if top  >= form1.ClientHeight-Height then MoveUp := true;
      end;
    end;



    voila, bon courage pour la suite.

  • signaler à un administrateur
    Commentaire de florenth le 06/12/2005 21:43:31

    Arrg, f0xi, n'utilise pas les constantes typees affectables (mode J+). ça fait franchement pas beau et pas très propre.
    Perso, je ne m'en sert que pour le design pattern Singleton parce que c'est e moyen le plus adapté.

    Si tu as besion d'initialiser une varible globale, fais le dans l'évenement OnCreate de la fiche ou bien dans la seciton initialization de l'unité.
    Je ne lis que le .pas mai sje vois une utilisaiton abusive et surtout assez fastidieuse des timers. Un seul sufirait et il suffit de tester la collision avec les bords de l'écran pour replacer ton image.

  • signaler à un administrateur
    Commentaire de florenth le 06/12/2005 21:51:09

    Sinon, concernant directement le code, la simplicité est de mise, c'est bien. Ca évite qu'il y ait du code supperflu nuisant la compréhension de ta source qui est un "écran de veille" je le rapelle. Ce n'est pas la peine d'y mettre des effets graphiques de je ne sias trop quoi: ce n'est pas le but de cette source.

    Bref, écran de veille, c'est vide dit. Comment tu l'integre à windows cet écran de veille ?
    Il existe en fait tout un tas de normes qui reglementent un ecran de veille sous Windows.
    Fais un tour de ce côté là et tu comprendras où je veux en venir : http://nono40.developpez.com/tutoriel/delphi/screensaver/

    Enfin, comme tu dis, tu débutes. sur ta fiche de membre, il est écrit : "arrivé le 02/11/2005" Ne te presees pas trop, prend le temps de décuvrir le Delphi. En un mois, on ne fait pas grand chose. Et quand tu te sentiras prêt, envoie nous tes programmes et là, ce sera nettement mieux!

  • signaler à un administrateur
    Commentaire de florenth le 06/12/2005 21:54:42


    Oups je remarque que je me suis un peu 'laché' on va dire. Evidemment, tout cela est à prendre positivement et avec le sourire ;-) On est tous passés par le stade de débutant, et l'erreur la plus importante à mon gout est de vouloir y sortir (trop ?) rapidement.

    ++ Flo et bonne prog' evedemment

  • signaler à un administrateur
    Commentaire de cirec le 07/12/2005 00:23:16 administrateur CS

    Un petit exemple avec un seul timer


    implementation

    uses Math; // pour l'utilisation de randomrange
    {$R *.dfm}

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      Timer1.Enabled:=False;
      Image1.Top:= RandomRange(1, Screen.DesktopHeight - Image1.Height) ;
      Image1.Left:= RandomRange(1, Screen.DesktopWidth - Image1.Width);
      Timer1.enabled:=True;
    end;

    et dans l'évenement OnCreate de Form1 tu ajoutes
    Randomize; // pour initialiser

    et tu peux retirer tous les autres timers ^_^
    pour le reste suit les conseils de f0xi c'est pas le nombres de lignes qui fait un bon prog mais plutôt l'inverse

    @+
    Cirec

  • signaler à un administrateur
    Commentaire de Matt 261 le 07/12/2005 12:56:41

    Oui...(hum) le code est un peu barbare comme je l'avait dit...
    Merci pour les coms ...

  • signaler à un administrateur
    Commentaire de Matt 261 le 07/12/2005 13:07:26

    Si quelqu'un sait aussi comment cacher la barre des taches, je n'y arrive plus.
    Je vais mettre à jour la source avec tout ce que vous m'avez dit.
    Encore merci...

  • signaler à un administrateur
    Commentaire de f0xi le 08/12/2005 00:51:49 administrateur CS

    pour cacher la barre de tache de windows il suffit juste d'aller dans les options :

    demarre > parametres > panneau de conf > barre des taches et menu demarrer...

    sinon en effet j'avais pas capter au depart mais ton ScreenSaver n'en est pas réellement un, car il genere un EXE et pas un SCR ... no comment.

    Ton code n'est pas barbare, disont qu'il montre bien que tu debute. nous sommes tous passer par la. donc point honte a avoir. nous aussi nous avons deja créer des routines toute pourrite (j'aime "pourrite" et pas "pourrie", pourrite c'est marrant a prononcé), des boucles qui boucles   sur des boucles de routines pourrite ...
    Meme parfois, avec le recule et l'experience on se demande comment ces "boulzors" de programme pouvait fonctionner et surtout comment on a pus croire a ce moment la que c'etait des programmes "whoaaaa trop d'la balle"...



    @Florenth :
    tu sais ce qu'elles te disent mes constantes typées affectables!?! (hihihi)
    moi gn'aime bien les CTA, je trouve ça pratique, comme les types record et object ... desolé c'est du code focile que je me traine depuis pascal 4.0 ...
    et de plus c'est egalement l'abus de php, javascript et c++ ou on peu affecter la valeur d'une variable directement dans la declaration de cette derniere ... ce qui est plus pratique que d'aller 150 lignes plus bas pour l'initialisée. maintenant cela n'a pas réelement d'effet positif ou negatif sur le programme, du moins je n'ai jamais rencontrer de disfonctionnement innerants a l'utilisation massive des constantes typées affectable.
    J'ai vus un tuto de GrandVizir a ce sujet, je vais surrement le relire, j'y trouverais peut etre une explication qui me convainquerais du contraire.
    Mais je te fait confiance Florenth, juste que pour une fois tu a legerement oublié d'argumenter ton propos (etonant meme) ... et tu sais maintenant que j'apprecie grandement tes demonstrations qui permettent toujours de mieux ecrire un code propre, leger et performant.
    Pour moi les constantes typées affectables permettent de gagner du temps dans les declaration/initialisation (tu noteras tout de meme que je n'oublis pas la directive $J- pour cloturé la zone)...
    Alors je n'attend plus qu'une chose de ta part : convains moi que les constantes typées affectable ne sont plus d'actualitée dans delphi.


    bon courage a toi Matt pour ton apprentissage et bienvenus dans le monde merveilleux de Delphi.

  • signaler à un administrateur
    Commentaire de Matt 261 le 08/12/2005 17:18:03

    Normalement je lui et demandé de compiler en .scr sauf erreur de ma part donc je me suis peut-être planté ou j'ai oublié...
    Merci beaucoup f0xi pour tes encouragements

  • signaler à un administrateur
    Commentaire de florenth le 08/12/2005 17:49:38

    @ f0xi:
    Je n'ai jamais utilisé les constantes typées affectables ni fait de C++ où l'on peut initialiser les variables. Il m'a toujours été dit que c'était déconseillé et un petit tout dans l'aide me le confirme :
    "Dans les versions précédentes de Delphi et de Borland Pascal, les constantes typées étaient toujours modifiables, ce qui correspond au mode {$J+}. L'ancien code source utilisant des constantes typées affectables doit être compilé en mode {$J+}, mais pour les nouvelles applications, il est conseillé d'initialiser les variables et de compiler votre code en mode {$J-}." Extrait de l'aide de Delphi au sujet de la directive {$J-}

    "je n'oublis pas la directive $J- pour cloturé la zone": eh tiens, encore heureux ;-)

    Perso je ne m'y ferais pas pour une raison simple de lisibilité du code. On dit qu'il y a beaucoup plus de programmes C qui beuggent comparé aux programmes Delphi.
    Est-ce que les Delphistes ont plus d'expérience ? Je ne crois pas.
    Par contre, les seules différences (notables) qui séparent les deux langages trouchent aux variables :
    - Le fameux I ++ ou I -- ou I += 4 ou I *= 6 ... qu'on envie presque en Delphi
    - la déclaration des variables. Alors qu'en Delphi, les variables se déclarent dans la section "var"; celles du C++ se posent un peu où l'on veut.
    Et je pense que cela induit énormement en erreur. Pour le peu de pages PHP que j'ai créées, je peux te dire que 8 fois sur 10 où ça plantait, c'était une erreur de ces p***** de variables.

    Bref, chacun fait comme il veut.
    Pour ce qui est des records, c'est toujours d'actualité ne t'inquiète pas. Même sous .NET.
    Par contre, je préfère utiliser des classes plutot que des objets pour des raisons de souplesse. Mais là, je n'ai rien contre.

    Sur ce, bonne prog'
    ++ Flo

  • signaler à un administrateur
    Commentaire de Matt 261 le 08/12/2005 20:17:07

    Voila la mise a jour de mon "super" écran de veille.
    J'ai viré les Timers inutiles et en effet ca ne compilait pas en scr donc ca c'est corrigé. Reste l'animation "qui sert à rien", VIRée, le prog s'ouvre et se ferme beaucoup plus rapidement a mon avis. je vais faire une boite pour la configuration de l'écran avec sauvegarde dans fichier ini.

    A Florenth

    En fait ça ne fait qu'un mois que je suis sur Codes Sources mais ça fait 1 ans et demi que je programme. Certe je n'ai pas beaucoup de gros progs serieux à "mon actif" (seulement 2) mais j'en ai 1 en projet qui j'espère va bientôt voir le jour:

    http://www.delphifr.com/forum.v2.aspx?ID=614195#4

    @+ et bonnes remarques (lol)...

  • signaler à un administrateur
    Commentaire de florenth le 08/12/2005 21:09:24

    @ Matt621 : c'est vrai, je n'avais pas pensé au fait que tu avais commencé le Delphi bien avant de t'inscrire. Mille excuses pour ton expérience sous-estimée ;-) Mais mon commentaire reste valide pour autant.

    Sinon, as-tu visité le lien que je t'indique ? Parce qu'il te reste des choses à faire avant que cela soit un écran de veille complet.

    ++

  • signaler à un administrateur
    Commentaire de cirec le 09/12/2005 01:19:20 administrateur CS

    Bonsoir à vous,

    >>f0xi
    au lieu d'écrire ceci:
    const
    {$j+}
       MoveLeft : boolean = true;
       MoveUp   : boolean = true;
    {$j-}

    implementation
    Tu peux faire ceci:
    Var
       MoveLeft : boolean = true;
       MoveUp   : boolean = true;

    implementation

    Les variables globales peuvent être initialiser en même temps que leurs déclarations

    @+
    Cirec

  • signaler à un administrateur
    Commentaire de Matt 261 le 09/12/2005 08:01:15

    Je suis allé voir en effet le site que tu m'avait indiqué. Il va falloir que j'y retourne pour voir tout ce qu'il me reste à faire...
    Sinon Florenth je n'avais pas pris ton com pour une sous-estimation de mon expérience même s'il me reste encore beaucoup de chose à découvrir.
    Grâce aux 6 tiemr de moins et aux effet de fermeture j'ai gagné 1 ko sur mon application, elle ne fait plus 532ko mais 531ko...
    Je vais refaire une mise a jour sous peu, je me suis apreçu que j'avais oublié d'enlever une animation...(formClose).

    @ f0xi

    Quand je parlais de cacher la barre des taches c'etait la recouvrir avec mon application...
    désolé si je me suis mal exprimé.

  • signaler à un administrateur
    Commentaire de florenth le 09/12/2005 15:58:37

    Cirec > Mais cel ane fonctionne qu'avec les variables globales, pas les locales. Je le reprécise histoire de dire que cela n'est pas pasreil que les constantes typees affectables.

    Matt 261 > Met WindowState à wsMaximized et FormStyle à fsStayOnTop.

  • signaler à un administrateur
    Commentaire de florenth le 09/12/2005 15:59:15

    Oups, j'ai oublié de me relire ... Désolé

  • signaler à un administrateur
    Commentaire de Matt 261 le 09/12/2005 19:12:32

    OK, merci Florenth

  • signaler à un administrateur
    Commentaire de Matt 261 le 09/12/2005 19:15:47

    ... en fait c'est déja fait (j'ai oublié de relire ma source...) et ca ne cache pas la barre des taches. D'ou la capture d'écran(on voit la barre des taches...)

  • signaler à un administrateur
    Commentaire de florenth le 09/12/2005 19:20:43

    Ah j'oubliais: mets BorderStyle à bsNone et là ça marche.
    Mais jettes un coup d'oeil à ce lien http://nono40.developpez.com/tutoriel/delphi/screensaver/ parce que ton écran de veille n'en est pas un (il te manque la gestion des parametres)

  • signaler à un administrateur
    Commentaire de f0xi le 09/12/2005 20:55:29 administrateur CS

    @Florenth / Cirec : alors, pour l'astuce de cirec, comme je l'ai dis sur mon code source, c'est pas mal, en effet cela evite d'aller plus loin pour initialisé les Globales et c'est deja bien.
    les locales, aucun probleme vraiment puisque generalement elle sont initialisée deux ou trois lignes plus bas dans la fonction ou la procedure.

    sinon il est vrai que les operateurs present en C++ ou PHP sont bien pratique ++ -- .= += -= ect... c'est la seule petite chose que je regrette sous delphi.

    pour le plantage, Delphi et plus lourd mais beaucoup plus stable car plus strict au niveau de la syntaxe et declaration. Et du C++ ou PHP fait par un delphiiste avec l'esprit delphi (code strict) ne planteras que rarement voir jamais.
    C++ autorise la compilation d'un programme bugé ... pas delphi ... la moindre erreur empeche la compilation, sauf erreur de /0 ou d'apel d'index hors-indice mais la, c'est au coder de faire attention et de "securisé" les routines pour eviter ce probleme.

    voila voila

  • signaler à un administrateur
    Commentaire de florenth le 09/12/2005 21:11:00

    Tout à fait d'accord avec toi f0xi.
    J'ai choisi le Delphi par hasard (j'hésitais avec le C++ mais comme les compilos paraissaient moins bien ...) et j'ai bien fait. Le fait que cela est un langage strict m'a réellement aidé.

    Pour ces opérateurs, et oui il faut faire avec. Enfin, sans. Pour se consoler, on a toujours Inc() et Dec() qui ramplacent déjà ++, +=, --, -= mais pour les autres ... rien !

  • signaler à un administrateur
    Commentaire de Matt 261 le 19/12/2005 10:42:34

    Y'a une mise à jour qui pousse...

  • signaler à un administrateur
    Commentaire de Matt 261 le 19/12/2005 11:19:53

    Bopn alors variable ou pas variable?????

  • signaler à un administrateur
    Commentaire de Matt 261 le 19/12/2005 11:32:53

    Je voulais savoir un petit truc sinon, ça n'a rien a voir avec ça mais c'est pas grave...
    Est-ce que l'on peut faire payer des images que l'on a fait avec un logiciel de photo payé style PhotoShop? Si oui combien???

  • signaler à un administrateur
    Commentaire de Matt 261 le 12/03/2006 10:11:23

    VOILA ENFIN LA MISE A JOUR (APRES 3 MOIS). Ca y est l'écran de veille est complet...

  • signaler à un administrateur
    Commentaire de florenth le 12/03/2006 11:51:36

    Et ben, voila enfin quelque chose de consistant !!
    Allez, pour l'effort et le mérite de ta source, je te mets 10/10.

    Je t'avais prévenu que tu allais t'améliorer ;-)

    Bonne continuation à toi ...

  • signaler à un administrateur
    Commentaire de Matt 261 le 12/03/2006 20:37:32

    Merci beaucoup Florenth ça me fait super plaisir.
    Je vais faire une autre mise à jour j'ai vu 2 tout p'tits bug et j'ai ajouté une fonctionnalité.
    En fait ce projet avait "dormi" pendant ces 3 mois je mis suis remis avant hier

  • signaler à un administrateur
    Commentaire de Matt 261 le 14/03/2006 10:38:02

    J'ai aussi ajouté des try...except pour eviter les bugs si une donnée est fausse ou inexistante et aussi la possibilitée de faire
    un test timer et la possibilité d'avoir un beep quand l'écran de veille s'ouvre. Je vais essayer d'intégrer un bout de code pour avoir une image en fond de fiche et plusieurs effets d'images.
    A ce propos quelqu'un serait-il comment faire apparaitre une image
    avec un effet de fondu et la disparaitre toujours avec un effet de fondu???
    Merci d'avance à ceux qui me répondrons.

      @+ Matt

  • signaler à un administrateur
    Commentaire de Matt 261 le 15/03/2006 19:25:36

    Une p'tite erreur c'est produite la source n'est pas au niveau expert mais débutant... Autant pour moi.

    Matt

  • signaler à un administrateur
    Commentaire de Matt 261 le 16/03/2006 19:20:42

    Voila mon écran de veille inclu la musique ...

    S'IL VOUS PLAIT DES COMMENTAIRES JE ME SENS SEUL...

  • signaler à un administrateur
    Commentaire de f0xi le 07/04/2006 03:24:54 administrateur CS

    holala ...

    procedure TForm3.SpeedButton1Click(Sender: TObject);
    begin
      OpenPictureDialog1.InitialDir := ExtractFilePath(Edit1.Text);
      if OpenPictureDialog1.Execute then
         Edit1.Text := OpenPictureDialog1.FileName
      else
         Edit1.clear;
    end;



    procedure TForm3.Button2Click(Sender: TObject);
    begin
      OpenDialog1.InitialDir := ExtractFilePath(Edit2.Text);
      if OpenDialog1.Execute then
         Edit2.Text := OpenDialog1.FileName;
    end;



    procedure TForm3.Button1Click(Sender: TObject);
    begin
      if not Timer1.Enabled then begin
         Button1.Caption := '&Stop test';  
         Timer1.Interval := SpinEdit1.Value;
      end else begin                        
         Button1.Caption := 'Te&st timer';    
      end;
      Timer1.Enabled := not Timer1.Enabled;            
    end;



    procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      FichierIni := TIniFile.Create(Chemin+'ClubinCfg.ini');
      with FichierIni do begin
        WriteString('Timer','Value',SpinEdit1.Text);
        WriteString('Picture','Value',Edit1.Text);
        WriteInteger('Color','Value',ColorBox1.Selected);
        WriteInteger('AlphaBlend','Value',TrackBar1.Position);
        WriteString('MusicFile','Value',Edit2.Text);
        WriteString('BackgroundPicture','Value',Edit3.Text);
        WriteBool('Beep','Value',CheckBox1.Checked);
        WriteBool('Music','Value',CheckBox2.Checked);
        WriteBool('Effects','Value',RadioButton1.Checked)
      end;
      FichierIni.Free;
    end;



    procedure TForm3.FormCreate(Sender: TObject);
    begin
      Chemin     := ExtractFilePath(Application.ExeName);
      FichierIni := TIniFile.Create(Chemin+'ClubinCfg.ini');
      with FichierIni do begin
        if not SectionExists('Timer')             then WriteString('Timer','Value','90');
        if not SectionExists('Picture')           then WriteString('Picture','Value','');
        if not SectionExists('BackgroundPicture') then WriteString('BackgroundPicture','Value','');
        if not SectionExists('Color')             then WriteInteger('Color','Value',clBlack);
        if not SectionExists('AlphaBlend')        then WriteInteger('AlphaBlend','Value',255);
        if not SectionExists('Beep')              then WriteBool('Beep','Value',false);
        if not SectionExists('Music')             then WriteBool('Music','Value',False);
        if not SectionExists('MusicFile')         then WriteString('MusicFile','Value','');
        if not SectionExists('Effects')           then WriteBool('Effects','Value',false);

        SpinEdit1.Text       := ReadString('Timer','Value','90')
        Edit1.Text           := ReadString('Picture','Value','')
        Edit3.Text           := ReadString('BackgroundPicture','Value','')
        ColorBox1.Selected   := ReadInteger('Color','Value',$000000)
        TrackBar1.Position   := ReadInteger('AlphaBlend','Value',255)
        CheckBox1.Checked    := ReadBool('Beep','Value',False)
        CheckBox2.Checked    := ReadBool('Music','Value',False)
        Edit2.Enabled        := CheckBox2.Checked;
        Button2.Enabled      := CheckBox2.Checked;
        Edit2.Text           := ReadString('MusicFile','Value','')
        RadioButton1.Checked := ReadBool('Effects','Value',False);
      end;
    end;



  • signaler à un administrateur
    Commentaire de Matt 261 le 07/04/2006 09:35:18

    Oui.... merci F0xi je vais chager tout ça.

  • signaler à un administrateur
    Commentaire de cirec le 07/04/2006 12:17:46 administrateur CS

    Salut,
    pour les buttonClick oui mais pour le FormCreate la je dis non.

    Les testes sur SectionExists sont inutiles. En fait quand on cherche à lire une valeur dans un fichier Ini et que Section où Ident n'existe pas c'est la valeur par défaut qui est renvoyé (SpinEdit1.Text := ReadString('Timer','Value','90')) ici c'est 90 qui est par défaut.

    C'est juste du code pour rien et même si le fichier Ini n'éxistait pas les valeurs par défaut seraient quand même transmises. Et le fichier Ini est écris seulement si l'utilisateur à cliqué sur Ok.

    Mais bon Matt pourras s'en rendre compte avec la version modifier ...

    @+
    Cirec

  • signaler à un administrateur
    Commentaire de f0xi le 07/04/2006 13:30:55 administrateur CS

    tout a fait cirec, creer un fichier ini par defaut alors qu'il y a possibilitée de charger ces valeurs en dur, c'est inutile... sur le coups je les ais laissées mais elles sont en effet inutiles.

    De plus matt, tu as vus l'utilisation beaucoup plus simple des methodes readinteger, readbool ect... elles empechent l'utilisation abusive des fonctions de conversions, accelerant par le fait le chargement du programme.

    voila... d'autre ameliorations seront a apporter dans tout le programme. Je te conseil egalement d'aller voir mon tuto sur les booléens pour que tu vois ce qu'on peut faire et ce qu'il ne faut pas faire.

    bonne progression, bon code et a bientot pour le beta-test.

    ps : il manque les unités RB* pour certains composants, merci de fournir au moins les DCU relatives ou d'utiliser les composants standards de delphi. ^^

  • signaler à un administrateur
    Commentaire de cirec le 07/04/2006 15:21:23 administrateur CS

    Pour les unités manquantes tu peux les trouver ici :
    http://www.delphifr.com/codes/COMPOSANTS-TCY-COMPONENT-PACK-V5-60_30296.aspx
    Mais il faut les installer
    Comme il n'y en a que deux boutons (RBbutton) si tu les mets en TButton tout le monde pourra compiler ta source.

    @+
    Cirec

  • signaler à un administrateur
    Commentaire de Matt 261 le 12/04/2006 14:21:22

    Je ne vais pas tarder à mettre à jour ma source. Un grand merci à Cirec qui m'a corrigé les erreurs dans le code et optimisé.
    J'oubliais de préciser que l'on peut aussi lire de la musique pendant l'affichage de l'écran.

    @+ Matt

  • signaler à un administrateur
    Commentaire de Matt 261 le 13/04/2006 18:20:22

    Voila la petite mise à jour attendue...

  • signaler à un administrateur
    Commentaire de Matt 261 le 15/04/2006 09:22:51

    Prochainement le mot de passe... Vous me conseillez quelle méthode pour le cryptage?

  • signaler à un administrateur
    Commentaire de florenth le 15/04/2006 09:44:17

    Si c'est pour WindowsXP, ce n'est pas à ton programme de gèrer le mot de passe.
    Windows revient alors automatiquement à l'écran d'accueil et tu entres le mot de passe de ton compte

  • signaler à un administrateur
    Commentaire de Matt 261 le 15/04/2006 19:49:02

    Oui je sais sauf que je n'arrive pas à mettre le mot de passe pour mon écran. Quand je coche la case pour le mot de passe j'applique, je lance mon écran et rien ne ce passe avec le MdP.
    Je viens re troquer le fichier ini pour la suvegarde dans la base de registre donc je ne vais pas tarder à remettre à jour.

  • signaler à un administrateur
    Commentaire de Matt 261 le 15/04/2006 19:58:18

    J'oubliais, pour Windows 98, il gère le mot de passe tout seul ou il faut que je fasse un petit truc spécial?

  • signaler à un administrateur
    Commentaire de florenth le 15/04/2006 20:56:33

    http://nono40.developpez.com/tutoriel/delphi/screensaver/

    Tout est expliqué et j'ai tout testé moi même: ça marche

  • signaler à un administrateur
    Commentaire de Matt 261 le 16/04/2006 08:15:22

    Oui merci Florenth, c'est là où j'été allé en premier et je crois que je vais y retourné. Je n'y avait pas pensé.

  • signaler à un administrateur
    Commentaire de cirec le 22/04/2006 17:15:32 administrateur CS

    Salut,
    Matt ta solution de troquer le fichier ini avec la base de registre pour enregistrer les paramètres de l'application ne me semble pas être le meilleur choix.

    Imagine : ton application tourne sur une machine x et le propriétaire décide de supprimer ton programme (yavé kapa) :-), bon c’est fait , mais les données précédemment enregistrées dans la base de registre, elles, ne seront pas supprimées. :-(
    Voilà tu répètes ça avec plusieurs applications et résultat Windows devient de plus en plus lent au démarrage à cause de la base de registre qui est encombré par des enregistrements inutiles.

    Alors je sais que Windows disait que c'était fait pour ça et qu'il valait mieux utiliser la base de registre que le fichier ini. Si l'application possède un désinstalleur qui efface les traces dans le registre alors oui éventuellement, mais pour une simple application que l'on sait qu'elle va tout laisser en plan la je dit non.

    Il y a déjà suffisamment de programme (même des payants) qui laisse leurs poubelles en partant que ce n'est pas utile de faire pareil.

    Restons propre...
    Tout comme tu libères un objet (que tu as créer) après utilisation il faut penser à supprimer ce que l'on écris dans la base de registre et si c'est pas possible de le garantir comme ici je pense que le mieux c'est de s'abstenir.

    @+
    Cirec

  • signaler à un administrateur
    Commentaire de Matt 261 le 23/04/2006 09:50:38

    Oui en fait j'utilise normalement un installateur (InnoSetup) qui peut me créer ou supprimer les valeurs dans le registre mais là il faut les virer à la main. Les valeurs se trouvent ici:
    HKEY_LOCAL_MACHINE \ SoftWare \ ClubinScr .

    @+
      Matt

  • signaler à un administrateur
    Commentaire de cirec le 23/04/2006 11:18:36 administrateur CS

    ça je le sais, j'ai très bien vu ou se trouve les donnés je t'expliquais juste pourquoi il ne faut pas utiliser le registre pour ce genre d'application.
    @+
    Cirec

  • signaler à un administrateur
    Commentaire de Matt 261 le 23/04/2006 11:52:11

    Oui je donnais juste ça pour les gens qui ne savaient pas ou les données se trouvaient.
    Merci pour l'explication quand-même.
    @+
    Matt

  • signaler à un administrateur
    Commentaire de Idefix57 le 01/05/2006 16:55:00

    La j'ai de quoi apprendre ....
    je vais suivre les commantaires de f0xi et les autres aussi ,
    a tete reposée :p

    Bravo , et merci

    a+ idefix

  • signaler à un administrateur
    Commentaire de Matt 261 le 01/05/2006 17:57:26

    merci Idefix,

    Les premiers commentaires ne sont plus d'actualité si je puis dire puisqeu mon écran de veille à évolué depuis mais je me suis apreçu d'un bug au niveau de la lecture des fichiers audios. Je vais corriger ça au plus vite...

    @+
      Matt

  • signaler à un administrateur
    Commentaire de Matt 261 le 05/06/2006 11:52:28

    Voila, deuxième mise à jour de mon écran de veille. Plus de bugs (normalement mais si vous en trouvez rapportez-les moi et je corrigerais tout ça).

  • signaler à un administrateur
    Commentaire de Matt 261 le 01/08/2006 19:27:24

    Enfin la version finale de ClubinScr.

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS