Boîte de message améliorée (nom et nombre de bouton libre - message formaté grâce à html)

Soyez le premier à donner votre avis sur cette source.

Vue 7 122 fois - Téléchargée 627 fois

Description

Nous avons souvent besoin des Boîtes de Message.
Malheureusement les boîtes de message standards sont vraiment très limitées.
J'avais déjà publié une boite de message à boutons libres (Nom et nombre des boutons libres).
Exemple :
Case BM(Titre,Message,'Oui#13Non#13Peut-être') do
0 : // la BM a été fermée avec [X] ou <Echap>
1 : // OUI
2 : // NON
3 : // Peut-être
End ; // case

Si NomBouton.Bmp est présent dans le répertoire courant, il attribué comme glyph du bouton.
Cette nouvelle boîte permet de passer en paramètre un message au format HTML.
La syntaxe est la même.
Case BM(Titre,
'<FONT Face="Times New Roman" Size=15 Color=#FF>'+
'Tu m''aimes ?<P><FONT>'+
'<I>Réfléchis bien !</I>',
'Peut-être#13Un peu#13Beaucoup#13A la Folie#13pas du &Tout') do
0 : // la BM a été fermée avec [X] ou <Echap>
1 : // Peut-être
2 : // Un peu
3 : // Beaucoup
4 : // A la Folie
5 : // pas du Tout
End ; // End case
ATTENTION : l'interpréteur HTML ne respecte pas avec rigeur la norme HTML. C'est même une approximation. Les habitués d'HTML ne seront pas perdu.
Comme le source est fourni et que je 'ai pas le temps, je documente pas ce source

Vous trouverez aussi la fonction :
Function TextHTMLOut ( CanvasCible : TCanvas ;
X, Y, Largeur : Integer ;
Chaine : String ; // HTML !
AvecMarques : Boolean = False ) : Integer ;
J'ai commencé un editeur HTML qui marche en beugant un peu.

Conclusion :


Si je rédige une doc, en particulier sur les balises HTML reconnues BM et , je la publierai TextHTMLOut.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
72
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
16 décembre 2011

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 !
Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
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
Messages postés
72
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
16 décembre 2011

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 ...}]
...
Messages postés
72
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
16 décembre 2011

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) ?
Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
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.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.