BOÎTE DE MESSAGE AMÉLIORÉE (NOM ET NOMBRE DE BOUTON LIBRE - MESSAGE FORMATÉ GRÂC

elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 - 2 nov. 2005 à 08:55
assemple Messages postés 65 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 16 décembre 2011 - 3 nov. 2005 à 08:19
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/34227-boite-de-message-amelioree-nom-et-nombre-de-bouton-libre-message-formate-grace-a-html

assemple Messages postés 65 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 16 décembre 2011
3 nov. 2005 à 08:19
WYSIWYG : What You See Is What You Get.
Voir la copie d'écran de mon éditeur HTML WYSIWIG : www.assemple.fr/HTMWEDIT.JPG
Les tags non sont pas affichés et les sections de texte apparraissent dans le format (police, alignement ...) définit par les tags. Une sélection est changée de format d'un clic, et est immédiatement affichée dans ce nouveau format.
Ce mot (WYSIWIG) a été inventé longtemps avant Windows.
Il est devenu un peu obsolète depuis, car le WYSIWIG c'est vraiment généralisé.
Mais pour ce qui concerne l'HTML, beaucoup d'éditeur de page Web ne sont pas WYSIWIG, c'est à dire qu'on voit les tags, éventuellement avec une coloration syntaxique. C'est pour ça que j'ai souvent utilisé Word qui est WYSIWIG pour .DOC mais aussi pour .HTM. Mais word génère des fichiers usines à gaz.
Hier j'ai cherché des éditeurs HTML WYSIWIG, et j'en ai trouvé plusieurs, dont un qui s'intégre à Delphi à travers un composant active X.
Mais ils ne permettent pas de créer des formulaires (tags <FORM ...> ). Or j'ai besoin de pouvoir créer des formulaire. Chaque formulaire correspondant à un fichier de données, une application se définit uniquement par un groupe de formulaires. Par exemple une application composée des formulaire Article, Client, et facture est une application de Facturation.

Pour WYSIWIG, tu aurais peut-être dû me poser la question plus tôt !
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
2 nov. 2005 à 21:46
je dit pas que ton truc est inutil et compliqué mais à mon avis si tu etend ton parseur à quelque chose de plus etendu comme un editeur etc... çà va interesser du monde j'en suis sur ;-)

Ah oui au faite tu m'expliquer ce que c'est que : "WYSIWYG" ..

çà je connait pas :-(

Merci.

Damien
assemple Messages postés 65 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 16 décembre 2011
2 nov. 2005 à 12:38
Damien a dit : "...un débutant aura déjà du mal à utiliser les boîtes de dialogues standards..."

Pas pour :
ATTENTION
Voulez-vous vraiment continuer ?

Et ce sont balises qui permette ne nettement améliorer la lisibilité du Message !

En outre, la liste des Boutons ('Oui#13Non#13Peut-être') est facile a coder, plus facile que :
...
mtConfirmation,
[mbYes,mbNo,mbRetry{... etc ...}]
...
assemple Messages postés 65 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 16 décembre 2011
2 nov. 2005 à 10:21
Ddu.pas est une unité fourre-tout.
Je l'ai allégée pour supprimer des dépendances.
Il y a des reliquats de code inutilisé.
Je pensai que le fait que je l'aie renommé DDU_Public serait compris.

Comme il y a les sources, que chacun restructure ça à sa guise.

Le code est un peu illisible, mais marche bien.

TextHTMLOut permet par exemple d'imprimer dans le cadre de la page contrairement à internet explorer, qui systématiquement déborde de la page, sans aucun complexe, et sans qu'on sache pourquoi.

HauteurSansMarges := HauteurPage - MargeHaut - MargeBas ;
Y := MargeHaut ;
HauteurTotale := HauteurSansMarges ; // init arbitraire
While Y>-HauteurTotale do
Begin
TextHTMLOut(Printer.Canvas,
MargeGauche,
Y,
LargeurPage-MargeGauche-MargeDroite, // largeur
ChaineHTML,
HauteurTotale // paramètre VAR
) ;
Y := Y - HauteurSansMarges ;
End ;
Et bien ça, c'est du code simple, qui fait ce qu'internet explorer ne fait même pas !

J'ai commencé un éditeur HTML WYSIWYG. Il marche mais beugue.

Ce serait génial d'avoir un éditeur HTML/PHP WYSIWYG et Syntaxique.

Les sections PHP seraient colorées syntaxiquement, les portions HTML (dont les chaînes HTML dans une section PHP) seraient "éditable" en WYSIWYG.

Cet éditeur pourrait s'intégrer à un EDI PHP.

J'ai eu créer un petit PHP. Ce fut galérant de mélanger dans un éditeur Texte des instructions php et des chaines HTML, d'autant qu'une des chaînes HTML etait le contenu d'un mel, donc une longue chaîne qui s'étalait sur une vingtaine de ligne !

J'ai inventé un générateur d'application de base de données en réseau local dont j'aimerais faire une version Client/serveur Php/MySQL. Pour ce faire j'airais besoin de ce type d'éditeur HTML/PHP.

Je ferais comme critique ceci.
Je pense qu'il serait mieux de travailler sur des projets qui n'ont pas d'équivalent. Ton parser ainsi que celui de florenth a son equivalent. J'ai télécharger des éditeurs syntaxiques très bien fini.
Est-ce que tu connais des éditeurs HTML WYSIWYG (sous delphi) ?
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
2 nov. 2005 à 08:55
Salut,

Je poste ici, car çà sert a rien d'entré dans un debat qui va augmenter mon nombre de poste sur ma source alors que tu veux qu'on parle de la tienne.

Déja je tient a te dire que je te comprend, moi aussi j'ai souvent posté des sources que je penssais super, et au final j'ai une note de m**** et aucun commentaires (ou alors c'est pour me taillé).

Mais bon j'ai fait un parser, et je voulais le faire de la façon la plus simple possible,et faire quelque chose accessible par tout le monde.

En lisant ton code c'est tout l'inverse que je vois, je ne critique pas, et ne serai pas dur avec toi car tu as laissé un comme sur la mienne.. mais je vais te dire honnetement et simplement ce que j'en pense :

Les + :

- Je sais pas si tu a tout ecrit mais bravo car le nombre de lignes est assez impressionant, çà du te demander des heures de boulots !

- C'est indenté (je le precise car je vois pas çà partout)

- Et tu utilise des choses qui me font dire que tu n'est pas débutant

Les - :

Je pense que si ta source n'interesse pas grand monde, c'est a cause de son utilité : Tu parse et affiche du HTML, en utilisant un code complexe, mais juste pour faire des boites de dialogues, les boites de dialogues par default me suffisent (pour moi) largement et au besoin si j'ai 5 bouton a y mettre je ne fait pas une boite de dialogue.

De plus tu propose de la coder en HTML, un debutant aura deja du mal à utilisé les boites de dialogues standard, alors coder en + en HTML, laisse tomber.
Et une personne plus avancé dans delphi, voudra un code optimisé et leger, ta source ne va pas dans ce sens, elle demande 2 unités supplémentaires et un tas de boucles et controls juste pour afficher une boite de dialogue.

Ce que je te conseil pour faire parler de ta source c'est d'utiliser le meme moteur que tu as crée mais en faisant une appli complete, un editeur HTML ou PHP par exemple !

Pour ce qui concerne le code :

- Pour ne parler que de ta fonction TextHTMLOut, elle fait 806 lignes dans laquelle on peu compter environ 26 While sans compter les nombreuses conditions "If" et blocs begin .. end; => un peu illisible

- Sans compté que ton code manque cruellement de commentaires et d'aération !

- Pour tes comparaisons de balises je cite (Balise='') or (Balise=''), utilise plutot ( LowerCase(Balise) = '' )

- J'aime pas trop çà ( çà me fait pensé à VB :s ):
NomOption := DossierInitial+'\'+ExtractFileName(ParamStr(0)) ;
NomOption := Copy(NomOption,1,Pos('.',NomOption))+'INI' ;

- C'est bourré de calculs complexes (avec des commentaires un peu leger):
If Y2-R.Top>0 then
Begin
erreurH[(Y2-R.Top) div 4] := erreur div 5 * 2 ;
erreurH[(Y2-R.Top-4) div 4] := erreurH[(Y2-R.Top-4) div 4] + erreur div 5 ;
erreur := erreur - (erreur div 5 * 3) ;
End else
...


- Est ce bien necessaire ?
Touche_RETURN = vk_RETURN ;
Touche_CONTROL = vk_CONTROL;
Touche_MENU = vk_MENU ;

- çà sert à quoi çà ?
TypeDeRaccourci = (_DESKTOP, _QUICKLAUNCH, _SENDTO, _STARTMENU);

- Ya surement mieux que çà aussi
LongWWW := LongWWW +LongWWW +LongWWW +LongWWW +LongWWW ;

Enfin voila j'vais m'arreter la mais un conseil, remanie ton code, commente le un peu, decoupe le bien tes fonctions en quelque chose de precis et reutilisable, et crée un projet plus elaboré qu'une appli pour crée des boites de dialogues !

Cordialement

Damien.
Rejoignez-nous