sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 3 déc. 2012 à 14:12
Et pourquoi la version 10 d'ailleurs ? (Si je calcule bien, la dernière version sortie est la 17...)
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 3 déc. 2012 à 12:37
@lamukembe
D7 reste pour le moment la version la plus commune, tous utilisateurs confondus. C'est donc celle qui assure le minimum de problèmes de compilation quand on poste.
dubois77
Messages postés675Date d'inscriptionjeudi 17 avril 2008StatutMembreDernière intervention19 février 201914 3 déc. 2012 à 12:08
pour mon compte personnel, je ne vois pas acheter une nouvelle version alors que mon D7 me convient pour ce que je fait
C'est vrai que ça doit être mieux !
maintenant, plus les soft évoluent plus cela devient des usines à gaz dont on utilise qu'un ou deux bureaux : c'est pas rentable !
lamukembe
Messages postés3Date d'inscriptionmardi 21 décembre 2010StatutMembreDernière intervention 3 décembre 2012 3 déc. 2012 à 10:23
je suis tres ravi des commentaires des posteur ,une chose pourquoi laplupart des posteurs devellopent avec delphi 7 ,pourquoi iniorent t-il la version 10?
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 14 nov. 2012 à 14:59
@simonpelloquin
TFrame, c'est le seul compo de la palette dont le nom a été traduit en français !
C'est parce que le mec a commencé à traduire un vendredi à 17:55, il est parti en weekend, et le lundi matin, comme il avait pris une cuite la veille, il est passé à autre chose...
C'est d'ailleurs aussi pour ça qu'il est si peu utilisé.
Tout le monde cherche TFrame sur la palette... et « -Tiens! C'est pas dans mon Delphi à moi... ».
Bon! J'ai d'autres précisions sur le TFrame, mais je les garde pour le tuto.
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 14 nov. 2012 à 09:07
Bizarre, on dirait que le composant TFrame a été dégagé de XE2...
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 13 nov. 2012 à 23:18
Haaa ça, c'est toujours frustrant de poster un truc qu'on pense qu'il vas trop être super utile et .... ben non.
Mais le succès viens avec le temps, quand je regarde le compteur de telechargement de mes codes ici, au bout de 6 ans c'est plutôt pas mal ;)
Si tu voyais ce qu'on peu faire avec D2009 !!! les classes Helpers, les generics, les surcharges d'opérateur etc ... tu serai un tout nouveau jeune homme :)
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 13 nov. 2012 à 19:22
Un tuto? o_O
C'est un sacré boulot, les gars ! Ceux qui en ont déjà écrit me comprendront. :D
Et ce serait un peu comme faire un tuto sur TForm...
TFrame n'est jamais qu'un composant de base de Delphi, et il est bien documenté dans l'Aide. C'est d'ailleurs le 1er Compo de la palette !
C'est un simple "conteneur" de composants avec leurs codes. En fait, il ressemble beaucoup à Tform, et il vaut surtout par le code qu'il contient.
Pour l'appréhender le mieux est de l'utiliser.
J'essaierai de l'utiliser davantage lors de mes prochaines contributions et j'invite tout le monde à le faire. En effet, s'il est bien implémenté, il est directement réutilisable à l'instar d'une unité.
En tout cas, si on le rencontre si peu ce n'est certainement pas parce qu'il est difficile à implémenter.
dubois77
Messages postés675Date d'inscriptionjeudi 17 avril 2008StatutMembreDernière intervention19 février 201914 13 nov. 2012 à 17:06
comme Simon!
je suis allé sur les codes dans delphifr, ça ne cours pas les rues!
j'en ai quand même un peu trouvé sur goo....
mais si Cari connais quelque chose de bien, je suis sur que l'on est tous preneur
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 13 nov. 2012 à 16:36
Cari, je suis un peu comme M. DUBOIS, je n'ai jamais eu recours aux frames. Un petit tuto ? (parce que comme tu le présente, ça a l'air appétissant...)
dubois77
Messages postés675Date d'inscriptionjeudi 17 avril 2008StatutMembreDernière intervention19 février 201914 13 nov. 2012 à 15:43
Tu prêche un converti Cari !
Je vais m'y mettre sans tarder : j'ai pour habitude (honteuse) de faire faire le plus de boulot possible par la machine, donc l'utilisation de cette technique devrait parfaitement me convenir (lorsque j'aurais fait quelques essais !)
merci en tout cas pour le (bon) tuyau
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 13 nov. 2012 à 15:31
Dubois77 a dit :
« Crois tu que pour commencer une appli quelconque beaucoup de delphistes commencent par un cadre ? »
- Non, sauf rares exeptions , ils commencent par une Form vide. Mais les Cadres apporteraient plus de souplesse :
- imagine qu'ils développent une application graphique. Alors ils déposeront sur la Form vide leur "Cadre_Graph" qui contient une PaintBox et le code de quelques routines usuelles comme le précalcul des tableaux trigonomètriques, les redimensionnements, les chargement/sauvegarde de fichier graphique, etc...
- imagine qu'ils développent une application ayant besoin d'un menu "détachable". Alors ils déposeront sur la Form vide leur "Cadre_Docking" qui contient le Panel d'ancrage et tout le code y afférent...
- imagine que leur application nécessite une loupe. Alors ils déposeront leur "Cadre_Zoom" contenant un TImage et le code du zooming.
- Pour le calcul du "nombre de bocaux de la belle mère", ils pourront utiliser des cadres contenant un TImage représentant une variété de confiture qu'ils afficheront en divers endroits de leur application, diminuant ainsi la taille de l'exe.
- etc...
Déjà, ça a l'avantage de bien séparer le code-métier du code-IHM (préconisation de la POO).
Ensuite, si un jour ils ont du temps libre et de l'inspiration, ils optimiseront un de leur "Cadres" et les améliorations seront automatiquement répercutées sur tous les "Cadres" dérivés.
[oups] Bon je sais, ça fait fort « Fais comme j'te dis! Fais pas comme je fais! »... :)))
@F0xi
Quand je parle de TFrame à un "pro", il répond souvent: -«Je n'utilise jamais TFrame. J'utilse TForm à la place.»
Une question de train-train, sans doute...
cs_agrillon
Messages postés4Date d'inscriptionmardi 5 juillet 2005StatutMembreDernière intervention15 juillet 2008 13 nov. 2012 à 12:46
Bonjour Dubois77, si si !! Pas de Chat-grain, les débutants le dit-sec ;)
Et si l'on ne commente pas c'est que l'on ne peut ce le permettre !
Au mieux poser des questions...
Merci pour ton travail, et aux commentaires instruits des niveaux ++
LAURENT
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 13 nov. 2012 à 11:52
"Ce qui me chagrine le plus, c'est que des "novices" ne s'y intéressent pas plus."
Ils sont occupés à poser des questions sur le forum!
dubois77
Messages postés675Date d'inscriptionjeudi 17 avril 2008StatutMembreDernière intervention19 février 201914 13 nov. 2012 à 11:38
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 13 nov. 2012 à 11:17
heu "auxquelles" pardon...
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 13 nov. 2012 à 11:12
je confirme l'erreur 404 sur le lien.
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 13 nov. 2012 à 09:14
Au risque d'être pénible, j'ai un 404 document not found sur le lien que vous indiquez... :)
J'aimerai bien y jeter un oeil, parce qu'il y a parfois dans ces petites unités des fonctions toutes simples auquelles on ne pense pas forcément
mais qui peuvent nous faciliter la vie au quotidien...
dubois77
Messages postés675Date d'inscriptionjeudi 17 avril 2008StatutMembreDernière intervention19 février 201914 13 nov. 2012 à 08:21
Caribensila :
"Mais, dans le même esprit, je pense que l'utilisation des TFrames est beaucoup plus souple :"
oui tu as surement raison. Je n'ai encore jamais utilisé de cadres ; j'ai été voir la doc Delphi : c'est effectivement pas mal, possibilités de faire des simili composants; bref bien MAIS :
Crois tu que pour commencer une appli quelconque (calcul du nombre de bocaux de la belle mère !) beaucoup de delphistes commencent par un cadre ?
Je pense que la bonne vieille Form à toujours de beaux jours devant elle
Mais cette remarque m'a fait miroiter quelques possibilités !!
dubois77
Messages postés675Date d'inscriptionjeudi 17 avril 2008StatutMembreDernière intervention19 février 201914 13 nov. 2012 à 08:05
pardon : et puis je m'y suis habitué et c'est resté !
dubois77
Messages postés675Date d'inscriptionjeudi 17 avril 2008StatutMembreDernière intervention19 février 201914 13 nov. 2012 à 08:04
Foxy :
"Mais je ne vois pas l'utilité de faire : add(ListBox1, 'texte'); plutôt que ListBox1.Items.Add('Texte');"
Je suis bien d'accord avec toi, ceci vient d'il y a quelques années déjà, quand je débutais en Delphi, car pour les memo il fallait utiliser des Lines alors que c'était des Items pour les ListBox et autres Combobox, bref je me suis fait une unité qui m'évitait de penser à ce problème d'ou les :
ADD(L1,'xx') pour un listBox au lieu de L1.Items.Add('xxxx');
ADD(M1,'xx') pour un Memo au lieu de M1.Lines.Add('xxxx');
et puis je m'y suis habituer et c'est resté !
(je sais, c'est pas bien, mais c'est pas à mon age que je vais changer !!)
dubois77
Messages postés675Date d'inscriptionjeudi 17 avril 2008StatutMembreDernière intervention19 février 201914 13 nov. 2012 à 07:54
Salut Franky, rassure toi ! pas de claque !
Foxy, je suis même très content (voir flatté que le gratin (sans vouloir offenser) s'intéresse à cette mini application !
Ce qui me chagrine le plus, c'est que des "novices" ne s'y intéressent pas plus.
SimonPelloquin, j'ai supprimé l'unité systus.pas du zip car en fait elle ne sert pas directement dans la création du modèle qui fonctionne directement sans cette unité (et surtout à provoqué les commentaires : je la modifierais surement un jour pour la poster avec le mode d'emploi !).
Je l'avais mise car chez moi elle y est tout le temps puisque je programme toujours avec et qu'il y avait juste 2 appels de fonction dans ce module de base (dirparam notamment) que j'ai réécrit en clair dans la mise à jour (l'utilisation de systus m'évitais justement de faire ceci (voir "de deux" de Foxy).
Avec ce modèle chacun peut programmer directement avec son Delphi préféré (le mien c'est le 7)
Si tu veux tu peux toutefois la télécharger ici :
http://sports.roissy.free.fr/delphi/systus.pas
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 13 nov. 2012 à 01:21
mais non mais non, j'espère oui qu'on l'a pas vexer :(
En même temps, qui aime bien, commente et critique beaucoup. na ! :)
Vous zetes durs avec Dubois : vous étiez pas obligé de lui tailler la raie :D (j'vais me prendre une claque sur ce coup là).
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 12 nov. 2012 à 19:22
@cari : PARCE QUE C'EST DE LA ME*** CA MADAME ! heuuuu non ... oui ... pourquoi on ne les utilises pas plus ... peut être parce que :
soit on les zapes.
soit on en as pas le besoin.
pourtant TFrame et TDataModule sont plutôt utiles pour gagner du temps et clarifier les fiches.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 12 nov. 2012 à 19:15
incendier ... non, corriger ? plus que certainement.
il n'est jamais trop tard ni pour bien faire, ni pour apprendre.
pourquoi ? car ça permet de un, de s'améliorer, de deux, de coder plus vite, de trois, d'aller plus loin, de quatre, de faire des programmes plus aboutis, fiables, robuste, clair, et de cinq, parce que c'est ça qui est bon ! :)
En effet il manque Systus.pas dans le zip.
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 12 nov. 2012 à 17:09
Bonjour,
Il n'y a pas Systus.pas dans le zip... Pouvez-vous corriger ?
Merci d'avance
Simon
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 12 nov. 2012 à 15:34
Bonjour,
Je suis aussi du même avis: des bonnes idées...
Mais, dans le même esprit, je pense que l'utilisation des TFrames est beaucoup plus souple :
- On peut les enregistrer sur la Palette Des Composants pour réutilisation.
- Lorsque tu leur apportes des améliorations, les Frames présents dans tes différents projets héritent des modifications apportées au cadre dont ils dérivent car les modifications apportées à un cadre d'origine sont automatiquement répercutées sur ses descendants.
- En revanche, tu peux modifier n'importe quel cadre incorporé sans affecter le cadre d'origine.
- Tu peux aussi les utiliser pour y stocker des ressources redondantes pour allèger l'.exe et simplifier sa maintenance.
- Tu peux les partager très facilement, comme sur ce site, en distribuant l'unité du cadre (.pas) et les fichiers fiche (.dfm ou .xfm).
- Et plein d'autres avantages à voir dans l'Aide Delphi.
D'ailleurs, à revoir tous ces avantages, je me demande pourquoi nous ne les utilisons pas plus souvent... :)
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 12 nov. 2012 à 12:02
Du même avis que Cantador, il aurait été plus intéressant de voir comment ajouter une fiche personnalisée au menu des projets Delphi, la oui, ça aurait été pas mal.
Ensuite, je n'aime pas trop l'unité Systus.pas, pourquoi :
- les couleurs en français, c'est une bonne idée, MAIS, le nom ne respecte pas les conventions, en effet les couleurs devrait commencer par "cl" ou "ecl" (extended color), bref par un préfixe distinguant : eclRouge, eclBleue, eclBlanc, eclArgent.
- idem pour les propriétés de styles des polices qui devrait commencer par "fss" (font styleS) : fssGras, fssItalique, fssNormal, fssGrasItalique
- on aurait pus completer les fichiers de debug et log : devrait être des variables AppDebugFile et AppLogFile et AppReportFile
- TXY inutile ... voir TPoint ! faire un alias : type TXY = TPoint;
- Coma inutile ... voir ListSeparator ! faire un alias : const DotComa = ListSeparator;
Coma = virgule
- il manque des explications sur les objet TABLO (devrait être TTableau) et TMultiImage
- Pas sur de l'utilité des fonctions pour les ListBox, du moins leur ecriture n'est pas claire et ne respecte pas les conventions devrait pointer le TStrings commun aux objet TComboBox, TRadioGroup, TListBox, TMemo, TRichEdit etc.
on peux tricher en detectant la classe :
function Add(Object: TObject; Str: string): integer;
begin
if Object is TComboBox then result := TComboBox(Object).Items.add(Str) else
if Object is TListBox then result := TListBox(Object).Items.add(Str) else
if Object is TMemo then result := TMemo(Object).Lines.add(Str);
end;
Mais je ne vois pas l'utilité de faire : add(ListBox1, 'texte'); plutôt que ListBox1.Items.Add('Texte');
sincèrement ç'est même moins bien. surtout le truc : RAZ(Edit1) ---> Edit1.Clear;
Idéalement, par contre ce qui serait sympa c'est : Clear([Edit1, Edit2, Edit3, Edit4]); <-- la oui, ça permet d'être plus rapide
bref, y'a pas mal de bonne petites idées, mais mal mises en pratiques, par exemple, pour le debug/log voici un exemple bien plus "cool" et simple à utiliser, sans prendre la tête au dev :
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 12 nov. 2012 à 09:42
Les uses ButtonComps, ButtonWithColor n'ont pas de librairies
Il suffit de les supprimer pour que le programme démarre.
Même si l'intention est louable, je ne suis pas sûr que ce soft puisse servir de trame
de fond pour les projets des débutants..
Des composants ne sont pas renommés et le code est mal indenté.
et puis ce source répondrait à tous les besoins ?
Reste le petit preview sympathique qui à lui seul aurait pu faire l'objet de ce
dépôt permettant de remplacer le mot "vide" pas très attractif.
3 déc. 2012 à 14:12
3 déc. 2012 à 12:37
D7 reste pour le moment la version la plus commune, tous utilisateurs confondus. C'est donc celle qui assure le minimum de problèmes de compilation quand on poste.
3 déc. 2012 à 12:08
C'est vrai que ça doit être mieux !
maintenant, plus les soft évoluent plus cela devient des usines à gaz dont on utilise qu'un ou deux bureaux : c'est pas rentable !
3 déc. 2012 à 10:23
14 nov. 2012 à 14:59
TFrame, c'est le seul compo de la palette dont le nom a été traduit en français !
C'est parce que le mec a commencé à traduire un vendredi à 17:55, il est parti en weekend, et le lundi matin, comme il avait pris une cuite la veille, il est passé à autre chose...
C'est d'ailleurs aussi pour ça qu'il est si peu utilisé.
Tout le monde cherche TFrame sur la palette... et « -Tiens! C'est pas dans mon Delphi à moi... ».
Bon! J'ai d'autres précisions sur le TFrame, mais je les garde pour le tuto.
14 nov. 2012 à 09:07
13 nov. 2012 à 23:18
Mais le succès viens avec le temps, quand je regarde le compteur de telechargement de mes codes ici, au bout de 6 ans c'est plutôt pas mal ;)
Si tu voyais ce qu'on peu faire avec D2009 !!! les classes Helpers, les generics, les surcharges d'opérateur etc ... tu serai un tout nouveau jeune homme :)
13 nov. 2012 à 19:22
C'est un sacré boulot, les gars ! Ceux qui en ont déjà écrit me comprendront. :D
Et ce serait un peu comme faire un tuto sur TForm...
TFrame n'est jamais qu'un composant de base de Delphi, et il est bien documenté dans l'Aide. C'est d'ailleurs le 1er Compo de la palette !
C'est un simple "conteneur" de composants avec leurs codes. En fait, il ressemble beaucoup à Tform, et il vaut surtout par le code qu'il contient.
Pour l'appréhender le mieux est de l'utiliser.
J'essaierai de l'utiliser davantage lors de mes prochaines contributions et j'invite tout le monde à le faire. En effet, s'il est bien implémenté, il est directement réutilisable à l'instar d'une unité.
En tout cas, si on le rencontre si peu ce n'est certainement pas parce qu'il est difficile à implémenter.
Des exemples d'utilisation :
http://bloon.developpez.com/articles/delphi/assistant/
http://delphi.developpez.com/faq/?page=pagecontrol#newttabsheet
http://delphi.developpez.com/faq/?page=application#interfaceoutlook
Et TRES utile! Comment programmer le OnCreate et OnDestroy d'un TFrame :
http://delphi.developpez.com/faq/?page=tframe#createdestroysurframe
13 nov. 2012 à 17:06
je suis allé sur les codes dans delphifr, ça ne cours pas les rues!
j'en ai quand même un peu trouvé sur goo....
mais si Cari connais quelque chose de bien, je suis sur que l'on est tous preneur
13 nov. 2012 à 16:36
13 nov. 2012 à 15:43
Je vais m'y mettre sans tarder : j'ai pour habitude (honteuse) de faire faire le plus de boulot possible par la machine, donc l'utilisation de cette technique devrait parfaitement me convenir (lorsque j'aurais fait quelques essais !)
merci en tout cas pour le (bon) tuyau
13 nov. 2012 à 15:31
« Crois tu que pour commencer une appli quelconque beaucoup de delphistes commencent par un cadre ? »
- Non, sauf rares exeptions , ils commencent par une Form vide. Mais les Cadres apporteraient plus de souplesse :
- imagine qu'ils développent une application graphique. Alors ils déposeront sur la Form vide leur "Cadre_Graph" qui contient une PaintBox et le code de quelques routines usuelles comme le précalcul des tableaux trigonomètriques, les redimensionnements, les chargement/sauvegarde de fichier graphique, etc...
- imagine qu'ils développent une application ayant besoin d'un menu "détachable". Alors ils déposeront sur la Form vide leur "Cadre_Docking" qui contient le Panel d'ancrage et tout le code y afférent...
- imagine que leur application nécessite une loupe. Alors ils déposeront leur "Cadre_Zoom" contenant un TImage et le code du zooming.
- Pour le calcul du "nombre de bocaux de la belle mère", ils pourront utiliser des cadres contenant un TImage représentant une variété de confiture qu'ils afficheront en divers endroits de leur application, diminuant ainsi la taille de l'exe.
- etc...
Déjà, ça a l'avantage de bien séparer le code-métier du code-IHM (préconisation de la POO).
Ensuite, si un jour ils ont du temps libre et de l'inspiration, ils optimiseront un de leur "Cadres" et les améliorations seront automatiquement répercutées sur tous les "Cadres" dérivés.
[oups] Bon je sais, ça fait fort « Fais comme j'te dis! Fais pas comme je fais! »... :)))
@F0xi
Quand je parle de TFrame à un "pro", il répond souvent: -«Je n'utilise jamais TFrame. J'utilse TForm à la place.»
Une question de train-train, sans doute...
13 nov. 2012 à 12:46
Et si l'on ne commente pas c'est que l'on ne peut ce le permettre !
Au mieux poser des questions...
Merci pour ton travail, et aux commentaires instruits des niveaux ++
LAURENT
13 nov. 2012 à 11:52
Ils sont occupés à poser des questions sur le forum!
13 nov. 2012 à 11:38
http://sports.roissy.free.fr/delphi
renvoie sur la page de mes (mini)applications
13 nov. 2012 à 11:25
13 nov. 2012 à 11:20
http://sports.roissy.free.fr/delphi/Systus.pas
(le web est très restrictif)
13 nov. 2012 à 11:17
13 nov. 2012 à 11:12
13 nov. 2012 à 09:14
J'aimerai bien y jeter un oeil, parce qu'il y a parfois dans ces petites unités des fonctions toutes simples auquelles on ne pense pas forcément
mais qui peuvent nous faciliter la vie au quotidien...
13 nov. 2012 à 08:21
"Mais, dans le même esprit, je pense que l'utilisation des TFrames est beaucoup plus souple :"
oui tu as surement raison. Je n'ai encore jamais utilisé de cadres ; j'ai été voir la doc Delphi : c'est effectivement pas mal, possibilités de faire des simili composants; bref bien MAIS :
Crois tu que pour commencer une appli quelconque (calcul du nombre de bocaux de la belle mère !) beaucoup de delphistes commencent par un cadre ?
Je pense que la bonne vieille Form à toujours de beaux jours devant elle
Mais cette remarque m'a fait miroiter quelques possibilités !!
13 nov. 2012 à 08:05
13 nov. 2012 à 08:04
"Mais je ne vois pas l'utilité de faire : add(ListBox1, 'texte'); plutôt que ListBox1.Items.Add('Texte');"
Je suis bien d'accord avec toi, ceci vient d'il y a quelques années déjà, quand je débutais en Delphi, car pour les memo il fallait utiliser des Lines alors que c'était des Items pour les ListBox et autres Combobox, bref je me suis fait une unité qui m'évitait de penser à ce problème d'ou les :
ADD(L1,'xx') pour un listBox au lieu de L1.Items.Add('xxxx');
ADD(M1,'xx') pour un Memo au lieu de M1.Lines.Add('xxxx');
et puis je m'y suis habituer et c'est resté !
(je sais, c'est pas bien, mais c'est pas à mon age que je vais changer !!)
13 nov. 2012 à 07:54
Foxy, je suis même très content (voir flatté que le gratin (sans vouloir offenser) s'intéresse à cette mini application !
Ce qui me chagrine le plus, c'est que des "novices" ne s'y intéressent pas plus.
SimonPelloquin, j'ai supprimé l'unité systus.pas du zip car en fait elle ne sert pas directement dans la création du modèle qui fonctionne directement sans cette unité (et surtout à provoqué les commentaires : je la modifierais surement un jour pour la poster avec le mode d'emploi !).
Je l'avais mise car chez moi elle y est tout le temps puisque je programme toujours avec et qu'il y avait juste 2 appels de fonction dans ce module de base (dirparam notamment) que j'ai réécrit en clair dans la mise à jour (l'utilisation de systus m'évitais justement de faire ceci (voir "de deux" de Foxy).
Avec ce modèle chacun peut programmer directement avec son Delphi préféré (le mien c'est le 7)
Si tu veux tu peux toutefois la télécharger ici :
http://sports.roissy.free.fr/delphi/systus.pas
13 nov. 2012 à 01:21
En même temps, qui aime bien, commente et critique beaucoup. na ! :)
12 nov. 2012 à 20:38
12 nov. 2012 à 19:22
soit on les zapes.
soit on en as pas le besoin.
pourtant TFrame et TDataModule sont plutôt utiles pour gagner du temps et clarifier les fiches.
12 nov. 2012 à 19:15
il n'est jamais trop tard ni pour bien faire, ni pour apprendre.
pourquoi ? car ça permet de un, de s'améliorer, de deux, de coder plus vite, de trois, d'aller plus loin, de quatre, de faire des programmes plus aboutis, fiables, robuste, clair, et de cinq, parce que c'est ça qui est bon ! :)
En effet il manque Systus.pas dans le zip.
12 nov. 2012 à 17:09
Il n'y a pas Systus.pas dans le zip... Pouvez-vous corriger ?
Merci d'avance
Simon
12 nov. 2012 à 15:34
Je suis aussi du même avis: des bonnes idées...
Mais, dans le même esprit, je pense que l'utilisation des TFrames est beaucoup plus souple :
- On peut les enregistrer sur la Palette Des Composants pour réutilisation.
- Lorsque tu leur apportes des améliorations, les Frames présents dans tes différents projets héritent des modifications apportées au cadre dont ils dérivent car les modifications apportées à un cadre d'origine sont automatiquement répercutées sur ses descendants.
- En revanche, tu peux modifier n'importe quel cadre incorporé sans affecter le cadre d'origine.
- Tu peux aussi les utiliser pour y stocker des ressources redondantes pour allèger l'.exe et simplifier sa maintenance.
- Tu peux les partager très facilement, comme sur ce site, en distribuant l'unité du cadre (.pas) et les fichiers fiche (.dfm ou .xfm).
- Et plein d'autres avantages à voir dans l'Aide Delphi.
D'ailleurs, à revoir tous ces avantages, je me demande pourquoi nous ne les utilisons pas plus souvent... :)
12 nov. 2012 à 12:02
Ensuite, je n'aime pas trop l'unité Systus.pas, pourquoi :
- les couleurs en français, c'est une bonne idée, MAIS, le nom ne respecte pas les conventions, en effet les couleurs devrait commencer par "cl" ou "ecl" (extended color), bref par un préfixe distinguant : eclRouge, eclBleue, eclBlanc, eclArgent.
- idem pour les propriétés de styles des polices qui devrait commencer par "fss" (font styleS) : fssGras, fssItalique, fssNormal, fssGrasItalique
- constante RC mal nommée : const CR=#13; {carriage return} LF=#10; {Line Feed} CRLF = CR+LF;
- on aurait pus completer les fichiers de debug et log : devrait être des variables AppDebugFile et AppLogFile et AppReportFile
- TXY inutile ... voir TPoint ! faire un alias : type TXY = TPoint;
- Coma inutile ... voir ListSeparator ! faire un alias : const DotComa = ListSeparator;
Coma = virgule
- il manque des explications sur les objet TABLO (devrait être TTableau) et TMultiImage
- Pas sur de l'utilité des fonctions pour les ListBox, du moins leur ecriture n'est pas claire et ne respecte pas les conventions devrait pointer le TStrings commun aux objet TComboBox, TRadioGroup, TListBox, TMemo, TRichEdit etc.
on peux tricher en detectant la classe :
function Add(Object: TObject; Str: string): integer;
begin
if Object is TComboBox then result := TComboBox(Object).Items.add(Str) else
if Object is TListBox then result := TListBox(Object).Items.add(Str) else
if Object is TMemo then result := TMemo(Object).Lines.add(Str);
end;
Mais je ne vois pas l'utilité de faire : add(ListBox1, 'texte'); plutôt que ListBox1.Items.Add('Texte');
sincèrement ç'est même moins bien. surtout le truc : RAZ(Edit1) ---> Edit1.Clear;
Idéalement, par contre ce qui serait sympa c'est : Clear([Edit1, Edit2, Edit3, Edit4]); <-- la oui, ça permet d'être plus rapide
Attention aux assignations de TStrings !
Objet.Strings := Strings <--- FAUX !
Objet.Strings.Assign(Strings) <--- BON ! (T.Items.Assigns(O) / T.Lines.Assign(O))
bref, y'a pas mal de bonne petites idées, mais mal mises en pratiques, par exemple, pour le debug/log voici un exemple bien plus "cool" et simple à utiliser, sans prendre la tête au dev :
unit DebugLog;
interface
uses Windows, SysUtils, Classes, StrUtils;
type
TAppDebugLog = class
private
fFile : String;
fStrings: TStringList;
fActive : boolean;
procedure setStrings(const Value: TStrings);
protected
procedure Update;
public
property Active: boolean read fActive write fActive;
property Log : TStrings read fStrings write setStrings;
procedure Clear;
function Add(aStr: string): integer;
constructor Create;
destructor Destroy; override;
end;
var
AppDebugLog : TAppDebugLog;
implementation
{ TAppDebugLog }
function TAppDebugLog.Add(aStr: string): integer;
begin
fStrings.Add('## '+DateTimeToStr(now)+' :');
fStrings.Add(' '+ReplaceStr(aStr,#13#10,#13#10#32#32));
Update;
end;
procedure TAppDebugLog.Clear;
begin
fStrings.Clear;
Update;
end;
constructor TAppDebugLog.Create;
begin
fStrings := TstringList.Create;
fFile := ExtractFilePath(paramStr(0))+'debug.log';
fActive := false;
if fileExists(fFile) then
fStrings.LoadFromFile(fFile);
end;
destructor TAppDebugLog.Destroy;
begin
Update;
fStrings.Free;
inherited;
end;
procedure TAppDebugLog.setStrings(const Value: TStrings);
begin
fStrings.Assign(Value);
end;
procedure TAppDebugLog.Update;
begin
if fActive then
fStrings.SaveToFile(fFile);
end;
initialization
AppDebugLog := TAppDebugLog.Create;
finalization
AppDebugLog.Free;
end.
12 nov. 2012 à 09:42
Il suffit de les supprimer pour que le programme démarre.
Même si l'intention est louable, je ne suis pas sûr que ce soft puisse servir de trame
de fond pour les projets des débutants..
Des composants ne sont pas renommés et le code est mal indenté.
et puis ce source répondrait à tous les besoins ?
Reste le petit preview sympathique qui à lui seul aurait pu faire l'objet de ce
dépôt permettant de remplacer le mot "vide" pas très attractif.