LABELS ET BOUTONS MULTILIGNES

cs_Gysmo Messages postés 209 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 13 décembre 2002 - 20 mai 2002 à 03:26
marc660 Messages postés 171 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 18 juillet 2007 - 17 sept. 2005 à 06:01
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/11929-labels-et-boutons-multilignes

marc660 Messages postés 171 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 18 juillet 2007
17 sept. 2005 à 06:01
Sur delphi 2005 ca ne marche pas.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 août 2005 à 22:16
Oui exact mais ce n'est pas une pratique à recommander.
GDI ausculte quasi tout ce qu'on lui passe et tente la meilleure interprétation possible. C'est rendu obligatoire par le fait que quasi tout son code va s'exécuter en kernel mode et on aurait souvent l'écran bleu s'il n'y avait pas cette analyse systématique.
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
30 août 2005 à 21:43
DrawText accepte aussi #13 seul
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 août 2005 à 16:10
le drawing affiche aussi bien avec simple 10 que 13,10 juste que on gagne 1 octet par séquence en ne mettant que le 10.
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
30 août 2005 à 15:59
Tout dernier point: dois-je impérativement mettre #10, ou puis-je laisser #13#10 dans les boîtes de dialogue qui sera transmis à la fonction DrawText de GDI ?
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 août 2005 à 12:54
Sous Windows:
Retour chariot 13,10 pour fichier qui doit pouvoir s'éditer en EDITEUR SIMPLE, notepad par exemple. Idem partout où on affichera une chaine avec composant qui repose sur code de classe EDIT. Les éditeurs inclus dans VS, ou wordpad, ou etc... affichent aussi bien du 10 simple que du texte en 13,10, ils ne sont pas basés sur le code de la classe EDIT.
Voila le pourquoi de la chose, simple non ?
Ce principe s'applique aussi bien au label (classe STATIC) qu'à MessageBox (simple DIALOG), l'un comme l'autre n'affichant que par des opérations de drawing GDI.
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
30 août 2005 à 12:31
C'est complètement paradoxal vos histoires :
#1) Sous Windows, le retour chariot dans les fichiers est #13#10
#2) Sous Linux, c'est #10 tout court
#3) Windows ne supporte pas #13 tout seul dans les fichiers
#4) Dans les boîtes de dialogue, Nono40 dit qu'il faut #13 tout seul car #10 crée des bugs d'affichage
#5) Les vécéplusseplussiens prennent #10
#6) Windows accepte #13#10 dans les boîtes de dialogue
#7) Delphi configure le sLineBreak en #13#10 qui n'est pas déclaré public par défaut

Ca mérite quand même des explications plus profondes...
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 août 2005 à 10:01
eh ben, toutes ces manips, quelle courage... tu aurais demandé tu gagnais du temps.
Pour t'en éviter d'autres, MessageBox idem, le 10 en saut de ligne.
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
30 août 2005 à 09:39
Je suis allé vérifier dans Windows de ce qu'il en est de cette contradiction. Vous allez être bluffés !

J'ai pris NotePad, tapé quelques lettres et fermé la fenêtre avec la croix. Il est apparu un message sur plusieurs lignes pour confirmer la fermeture. Hélas, je n'ai pas trouvé dans d'autres logiciels une situation similaire, car souvent les sauts de ligne sont faits avec plusieurs TStaticText (au moins, le débat est clos :).

Spy++ n'a pas bien révélé l'affichage. J'ai donc pris mon ViewVite (3.6.1.84) et j'ai passé son espion intégré sur le Static de NotePad. Avec GetWindowText, j'ai récupéré le texte du Static et je l'ai enregistré dans un fichier via la fonction Write. Mon dumper PHP N°29392 révèle que le séparateur de ligne est... Je vous le donne en mille : #0Ah

$0A = 10. Et voilà, Nono40 trompé (et moi aussi !). Comme quoi, tout n'est pas si évident que cela.

Au final: l'astuce était donc très bonne...
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
29 août 2005 à 13:25
>> GrandVizir
Faux, pour les retour à la ligne dans les labels c'est #13 seul. Sinon dans certains cas le #10 affiche des carrés noirs.
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
29 août 2005 à 13:00
Toujours ce #13 esseulé alors que dans les éditeurs de texte sous Windows c'est #13#10. Utilisez aussi sLineBreak si vous voulez :) Que ce soit les labels, ou les boîtes de dialogue, c'est pareil.
g2loq Messages postés 10 Date d'inscription vendredi 12 juillet 2002 Statut Membre Dernière intervention 15 mars 2005
2 août 2002 à 15:09
Il faut aussi penser à verifier WordWrap = True, qui permet d'écrir un label sur plusieur ligne/ou pas.
cs_Gysmo Messages postés 209 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 13 décembre 2002
20 mai 2002 à 03:26
Je rajoutrais que pour les TLabel, en appuyant sur le bouton [...] dans l'inspecteur d'objet a la propriété Caption, on accede a un editeur de texte permettant aussi de charger un fichier texte.

Voila babaille.
cs_Gysmo Messages postés 209 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 13 décembre 2002
20 mai 2002 à 03:19
C'est bien vrai.
Bref c'est toujours bon a savoir!
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
19 mai 2002 à 21:27
"Ne passons pas à côté des choses simples" : voilà un proverbe qui n'a jamais aussi bien dit ce qu'il voulait dire...
Rejoignez-nous