Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 2016
-
5 avril 2009 à 14:57
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 2016
-
17 mai 2009 à 10:14
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 17 mai 2009 à 10:14
Merci :)
Cordialement, Bacterius !
cs_Nadia16
Messages postés6Date d'inscriptionmercredi 6 mai 2009StatutMembreDernière intervention16 mai 2009 14 mai 2009 à 08:30
Bon jour,
J’apprécie beaucoup vos exemples
Mercie
A++
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 28 avril 2009 à 18:31
Oui ça m'etonnait aussi, un codeur de composants chevronné comme toi :p
Cordialement, Bacterius !
PS : Moi je vais me mettre au C ^^
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 28 avril 2009 à 18:29
Haaa, oui... je me rappelle :)
je suis en train d' apprendre le php et ça m' a fait perdre la mémoire lol.
Merci!
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 28 avril 2009 à 18:24
Un index est un paramètre supplémentaire pour les getters/setters. Il permet de gérer différentes propriétés avec 1 seul getter/setter. Par exemple, imaginons 2 propriétés Number1 et Number2.
Si je fais :
property Number1: Integer read GetNumber1;
property Number2: Integer read GetNumber2; (seulement en read pour simplifier)
J'aurai besoin de deux fonctions individuelles : GetNumber1 et GetNumber2.
Maintenant, si je fais :
property Number1: Integer index 1 read GetNumbers;
property Number2: Integer index 2 read GetNumbers;
J'aurai 1 seule fonction, GetNumbers, qui gérera les deux propriétés en lecture. Cependant, cette fonction comportera un paramètre en plus : Index (je crois que tu peux changer le nom du paramètre mais il doit être placé en premier dans la liste). Comme ceci :
function GetNumbers(Index: Integer): Integer;
Quand je voudrai modifier la propriété Number1, Index prendra la valeur 1 (comme spécifié dans la déclaration de propriété), et quand je voudrai modifier la propriété Number2, Index prendra la valeur 2. Tu peux adapter dans la fonction comme ceci, alors :
function TMonCompo.GetNumbers(Index: Integer): Integer;
begin
case Index of
1: Result := FNumber1; { On demande la valeur de Number1 - Index 1 }
2: Result := FNumber2; { On demande la valeur de Number2 - Index 2 }
end;
end;
Ca permet, en gros, de simplifier le code de ton composant. C'est assez utile quand tu as pas mal de propriétés qui n'ont pas de traitement spécifique à part une vérification triviale (par exemple, vérifier que une propriété Active ou Enabled est définie à True), car tu n'as pas à réécrire "if FEnabled then ...". En gros c'est ça les "index".
Cordialement, Bacterius !
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 28 avril 2009 à 18:10
Salut Bacterius,
dans l' unité TangentButton.pas, tu utilises la commande index :
"property IdleColor: TColor index 1 read FIdleColor write SetColor;"
J' ai cherché mais je ne trouve pas à quoi ça sert...
Tu peux m' expliquer STP?
Merci,
A+
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 25 avril 2009 à 14:06
[Code MAJ : 4]
Un bug a été réparé sur le TangentButton : si vous mettiez une caption vide en conception, le caption par défaut était remis à l'execution. Ceci est arrangé à présent (ne remet le caption par défaut que en conception et jamais en execution).
Cordialement, Bacterius !
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 14 avril 2009 à 16:43
Ben je n'ai pas mis les exe de tous les exemples (heureusement, sinon trop lourd), j'ai juste mis l'exe pour lire les fichiers d'aide. M'enfin ce sont des fichiers ini renommés, donc si l'on a un peu de patience et une bonne concentration on peut lire directement depuis les fichiers ^^
Cordialement, Bacterius !
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 14 avril 2009 à 16:34
Salut,
la fusion était une des solution, l' autre étant la distinction (les distinguer par leurs fonctionalités).
Dommage il est vrai, que le site ne nous permette pas de mettre l' exe dans le zip (je fais comme toi, je change l' extension) pour pouvoir tester.
A+
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 14 avril 2009 à 15:21
[Code MAJ : 3]
Bon, nouvelle MAJ, alors la remarque de Mauricio "pourquoi diable 2 gauges" a fait son chemin dans ma tête, malgré ma réponse courte et concise, c'est pourquoi j'ai décidé de fusionner les deux gauges ensemble, et voilà le résultat (elle a conservé le nom de TangentGauge et a toutes les propriétés de l'une associées à toutes les propriétés de l'autre). Et, quelques petites optimisations je ne sais trop où ... Ah oui surtout optimisation au niveau de TangentAutorun (qui ne fonctionnait pas du tout, car il se mettait toujours à autorun False à sa création en runtime ... c'est arrangé !).
Si vous voulez je mettrai mon memory cleaner en exemple n°7 (même si je ne suis pas sûr que la méthode soit géniale ... pomper un max de mémoire pour le processus, puis tout libérer brutalement, obligeant Windows à redistribuer la mémoire de façon optimale (ça arrange aussi la mémoire mal libérée)) ...
Cordialement, Bacterius !
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 7 avril 2009 à 19:56
Oui j'ai pas pensé à renommer le .exe, il est supprimé par CS ...
Donc voilà, tout va bien. J'ai ajouté les fichiers d'aide en version française.
Renomme l'executable (*.ex_) en *.exe, et lance-le. Puis choisis un composant (à la fin [FR] pour les versions françaises). Tu as la description globale qui apparaît. Clique sur les propriétés (à gauche), les méthodes (au milieu), et les événements (à droite) pour avoir de l'aide dessus.
Pas encore de fichier d'aide avec F1 ^^
Sinon j'en profite pour poster dans la foulée une petite optimisation :) mais j'ai surtout fait la traduction.
Cordialement, Bacterius !
cs_Michel34
Messages postés79Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention27 juin 2011 7 avril 2009 à 19:47
@bacterius ,
Tu vois meme le francais c'est du chinois pour moi , j'ai regarde dans le dossier TangentHelp et il n'y a qu'un dossier HelpFiles avec des fichiers ".THG" je pense que c'est ceux la que tu vas francise , par contre le'application a renommer en " .EXE" je ne le vois pas ? , ou alors je n'ais pas tout compris ,
sinon tu parle sous delphi de la touche F1 et rechercher tes compos.
Je suis compliqué , Houps non je suis un vieux a qui il faut tout expliquer.
A+ Michel34.
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 7 avril 2009 à 19:24
En fait je ne vais que faire une version française de chaque fichier d'aide, comme ça tu pourras lancer l'application d'aide dans TangentHelp (à renommer en .ex) puis tu sélectionneras les composants avec le tag "[FR]" au bout. Je suis en pleine traduction et optimisation :)
Cordialement, Bacterius !
cs_Michel34
Messages postés79Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention27 juin 2011 7 avril 2009 à 19:18
@Bacterius ,
Je deplace ton pack dans le BetaTest , Ok j'attends ce fichier d'aide avec impatience.
A+ Michel34
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 7 avril 2009 à 18:44
Merci Michel34 mais ne les mets pas encore dans tes favoris ils ne sont pas encore stables ...
Sinon pour les exemples vraiment désolé, je vais mettre la version française des fichiers d'aide ce soir :)
Cordialement, Bacterius !
cs_Michel34
Messages postés79Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention27 juin 2011 7 avril 2009 à 18:41
Salut a tous,
J'ai teste le package et pour les compos visuels rien a redire ,tres propres
ca va rentrer dans mes favoris.
par contre pour les non visuels , je ne peux pas me prononcer ,meme les exemples
n'on pas reussi a me faire comprendre les finallites des programmes .
je ne comprend pas du tout l'anglais et comme tout est dans cette langues meme les explications
des exemples , donc pour moi ca ma fichu un mal de crane a essayer d'eclaircir ma lanterne.
Mais comme je dois etre un faible pourcentage de non liuguiste , je pense qu'il me
faut des ma mise a la retraite d'apprendre l'Anglais.
Sinon ca boom , A+ Michel34
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 7 avril 2009 à 18:37
Ce ne sont pas 2 gauges : c'est une barre de progression et une gauge, ce n'est pas du tout la même chose ! ^^
"tu accumules les maladresses" comment ça ?
Cordialement, Bacterius !
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 7 avril 2009 à 18:31
En réponse à ton dernier post sur mon pack de compos:
----------------------------------------------------
Je voulais pas entré dans le sujet ^^
le point positif c' est qu' en peu de temps tu as beaucoup progressé. Malheureusement, tu accumules les maladresses et ton dernier post montre bien qu' il est encore trop top pour utiliser tes compos.
D' ailleurs, pourquoi diable 2 gauges?
A+
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 7 avril 2009 à 17:19
Et voilà, j'ai réussi, ça va plus vite maintenant !
MAJ :
- ajout de la propriété Enabled au bouton.
- ajout de ScanLine dans la GradEngine.
Je poste ...
Cordialement, Bacterius !
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 7 avril 2009 à 17:06
Pour le scanline j'ai un problème, je mets bien toutes les lignes du bitmap en scanline mais je reçois une violation d'accès ... Je vais rééssayer. Au fait, j'ai oublié une propriété essentielle du bouton : Enabled. C'est rien, 1 ligne de code et c'est fini, mais j'essaye d'optimiser la barre et je poste la MAJ ...
Cordialement, Bacterius !
blueperfect
Messages postés234Date d'inscriptionmardi 13 novembre 2007StatutMembreDernière intervention21 novembre 2013 7 avril 2009 à 11:46
En fait, dans GetGradientBar, tu pourrais utiliser un bitmap prédéfini, et surtout le scanline...
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 6 avril 2009 à 16:07
lol ^^
Néanmoins j'ai un problème avec la rapidité de dessin de la TangentBar, je vais probablement passer au scanline pour le bitmap tampon parce que pour la gauge, encore, utiliser une dizaine de fois Pixels ca va encore, mais bon ...
Cordialement, Bacterius !
blueperfect
Messages postés234Date d'inscriptionmardi 13 novembre 2007StatutMembreDernière intervention21 novembre 2013 5 avril 2009 à 23:18
Tape-à-l'oeil :)
lol
DH
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 5 avril 2009 à 20:05
Et voilà Cirec, j'ai mis le tout à jour, et j'ai mis une compression de 80 au JPG ...
J'aime beaucoup les dégradés de ce type je trouve ça superbe :)
Cordialement, Bacterius !
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 5 avril 2009 à 19:59
17 mai 2009 à 10:14
Cordialement, Bacterius !
14 mai 2009 à 08:30
J’apprécie beaucoup vos exemples
Mercie
A++
28 avril 2009 à 18:31
Cordialement, Bacterius !
PS : Moi je vais me mettre au C ^^
28 avril 2009 à 18:29
je suis en train d' apprendre le php et ça m' a fait perdre la mémoire lol.
Merci!
28 avril 2009 à 18:24
Si je fais :
property Number1: Integer read GetNumber1;
property Number2: Integer read GetNumber2; (seulement en read pour simplifier)
J'aurai besoin de deux fonctions individuelles : GetNumber1 et GetNumber2.
Maintenant, si je fais :
property Number1: Integer index 1 read GetNumbers;
property Number2: Integer index 2 read GetNumbers;
J'aurai 1 seule fonction, GetNumbers, qui gérera les deux propriétés en lecture. Cependant, cette fonction comportera un paramètre en plus : Index (je crois que tu peux changer le nom du paramètre mais il doit être placé en premier dans la liste). Comme ceci :
function GetNumbers(Index: Integer): Integer;
Quand je voudrai modifier la propriété Number1, Index prendra la valeur 1 (comme spécifié dans la déclaration de propriété), et quand je voudrai modifier la propriété Number2, Index prendra la valeur 2. Tu peux adapter dans la fonction comme ceci, alors :
function TMonCompo.GetNumbers(Index: Integer): Integer;
begin
case Index of
1: Result := FNumber1; { On demande la valeur de Number1 - Index 1 }
2: Result := FNumber2; { On demande la valeur de Number2 - Index 2 }
end;
end;
Ca permet, en gros, de simplifier le code de ton composant. C'est assez utile quand tu as pas mal de propriétés qui n'ont pas de traitement spécifique à part une vérification triviale (par exemple, vérifier que une propriété Active ou Enabled est définie à True), car tu n'as pas à réécrire "if FEnabled then ...". En gros c'est ça les "index".
Cordialement, Bacterius !
28 avril 2009 à 18:10
dans l' unité TangentButton.pas, tu utilises la commande index :
"property IdleColor: TColor index 1 read FIdleColor write SetColor;"
J' ai cherché mais je ne trouve pas à quoi ça sert...
Tu peux m' expliquer STP?
Merci,
A+
25 avril 2009 à 14:06
Un bug a été réparé sur le TangentButton : si vous mettiez une caption vide en conception, le caption par défaut était remis à l'execution. Ceci est arrangé à présent (ne remet le caption par défaut que en conception et jamais en execution).
Cordialement, Bacterius !
14 avril 2009 à 16:43
Cordialement, Bacterius !
14 avril 2009 à 16:34
la fusion était une des solution, l' autre étant la distinction (les distinguer par leurs fonctionalités).
Dommage il est vrai, que le site ne nous permette pas de mettre l' exe dans le zip (je fais comme toi, je change l' extension) pour pouvoir tester.
A+
14 avril 2009 à 15:21
Bon, nouvelle MAJ, alors la remarque de Mauricio "pourquoi diable 2 gauges" a fait son chemin dans ma tête, malgré ma réponse courte et concise, c'est pourquoi j'ai décidé de fusionner les deux gauges ensemble, et voilà le résultat (elle a conservé le nom de TangentGauge et a toutes les propriétés de l'une associées à toutes les propriétés de l'autre). Et, quelques petites optimisations je ne sais trop où ... Ah oui surtout optimisation au niveau de TangentAutorun (qui ne fonctionnait pas du tout, car il se mettait toujours à autorun False à sa création en runtime ... c'est arrangé !).
Si vous voulez je mettrai mon memory cleaner en exemple n°7 (même si je ne suis pas sûr que la méthode soit géniale ... pomper un max de mémoire pour le processus, puis tout libérer brutalement, obligeant Windows à redistribuer la mémoire de façon optimale (ça arrange aussi la mémoire mal libérée)) ...
Cordialement, Bacterius !
7 avril 2009 à 19:56
Donc voilà, tout va bien. J'ai ajouté les fichiers d'aide en version française.
Renomme l'executable (*.ex_) en *.exe, et lance-le. Puis choisis un composant (à la fin [FR] pour les versions françaises). Tu as la description globale qui apparaît. Clique sur les propriétés (à gauche), les méthodes (au milieu), et les événements (à droite) pour avoir de l'aide dessus.
Pas encore de fichier d'aide avec F1 ^^
Sinon j'en profite pour poster dans la foulée une petite optimisation :) mais j'ai surtout fait la traduction.
Cordialement, Bacterius !
7 avril 2009 à 19:47
Tu vois meme le francais c'est du chinois pour moi , j'ai regarde dans le dossier TangentHelp et il n'y a qu'un dossier HelpFiles avec des fichiers ".THG" je pense que c'est ceux la que tu vas francise , par contre le'application a renommer en " .EXE" je ne le vois pas ? , ou alors je n'ais pas tout compris ,
sinon tu parle sous delphi de la touche F1 et rechercher tes compos.
Je suis compliqué , Houps non je suis un vieux a qui il faut tout expliquer.
A+ Michel34.
7 avril 2009 à 19:24
Cordialement, Bacterius !
7 avril 2009 à 19:18
Je deplace ton pack dans le BetaTest , Ok j'attends ce fichier d'aide avec impatience.
A+ Michel34
7 avril 2009 à 18:44
Sinon pour les exemples vraiment désolé, je vais mettre la version française des fichiers d'aide ce soir :)
Cordialement, Bacterius !
7 avril 2009 à 18:41
J'ai teste le package et pour les compos visuels rien a redire ,tres propres
ca va rentrer dans mes favoris.
par contre pour les non visuels , je ne peux pas me prononcer ,meme les exemples
n'on pas reussi a me faire comprendre les finallites des programmes .
je ne comprend pas du tout l'anglais et comme tout est dans cette langues meme les explications
des exemples , donc pour moi ca ma fichu un mal de crane a essayer d'eclaircir ma lanterne.
Mais comme je dois etre un faible pourcentage de non liuguiste , je pense qu'il me
faut des ma mise a la retraite d'apprendre l'Anglais.
Sinon ca boom , A+ Michel34
7 avril 2009 à 18:37
"tu accumules les maladresses" comment ça ?
Cordialement, Bacterius !
7 avril 2009 à 18:31
----------------------------------------------------
Je voulais pas entré dans le sujet ^^
le point positif c' est qu' en peu de temps tu as beaucoup progressé. Malheureusement, tu accumules les maladresses et ton dernier post montre bien qu' il est encore trop top pour utiliser tes compos.
D' ailleurs, pourquoi diable 2 gauges?
A+
7 avril 2009 à 17:19
MAJ :
- ajout de la propriété Enabled au bouton.
- ajout de ScanLine dans la GradEngine.
Je poste ...
Cordialement, Bacterius !
7 avril 2009 à 17:06
Cordialement, Bacterius !
7 avril 2009 à 11:46
6 avril 2009 à 16:07
Néanmoins j'ai un problème avec la rapidité de dessin de la TangentBar, je vais probablement passer au scanline pour le bitmap tampon parce que pour la gauge, encore, utiliser une dizaine de fois Pixels ca va encore, mais bon ...
Cordialement, Bacterius !
5 avril 2009 à 23:18
lol
DH
5 avril 2009 à 20:05
J'aime beaucoup les dégradés de ce type je trouve ça superbe :)
Cordialement, Bacterius !
5 avril 2009 à 19:59
5 avril 2009 à 18:57
5 avril 2009 à 14:57
Cordialement, Bacterius !
PS : désolé pour la capture, le jpg n'aime pas les dégradés ^^