HTMLBox
Affiche en fenêtre pop-up un contenu html simple
Syntaxe
function HTMLBox(html: String; width: Integer; height: Integer): String
height : hauteur de la fenêtre (en pixels)
width : largeur de la fenêtre (en pixels)
html : code html à afficher
Remarques
Cette fonction offre une version simplifiée des fonctions offertes par THTMLForm.
- La fenêtre qui s'ouvre utilise un moteur de rendu simple du langage html (pas de JavaScript, tous les tags ne sont pas supportés).
- Si l'utilisateur ferme la fenêtre avec la croix (ou Alt+F4), elle se ferme et la fonction retourne une chaîne vide.
- Si le HTML contient des liens hypertexte (balises <a>) et que l'utilisateur clique sur un lien, la fenêtre se ferme et la fonction retourne le contenu de l'attribut href du lien cliqué.
- Si le HTML contient des champs de saisie de formulaire (balises <input>) et que l'utilisateur soumet le formulaire (par exemple en cliquant sur un <input type="submit">), la fenêtre se ferme et la fonction retourne les noms=valeurs des champs de saisie au format CommaText.
- Comme toute fenêtre pop-up, il faut bien veiller à l'utiliser dans un contexte interactif.
- Certaines méthodes de script peuvent être utilisée pour formater en html, et peuvent alors être affichée à l'aide de cette fonction. C'est le cas de TDataGrid.AsHTMLRows, qui construit un tableau html depuis une TDataGrid.
Exemples
var html := '<html><head><title>Titre de la fenêtre</title></head>'
+ '<body>'
+ '<b>Exemple de liens hypertexte</b><br>'
+ '<i>HTMLBox renvoie le href du lien</i>'
+ '<ul>'
+ '<li><a href="cas 1">Cliquez ici pour le choix 1</a></li>'
+ '<li><a href="cas 2">Cliquez ici pour le choix 2</a></li>'
+ '</ul>'
+ '<hr>'
+ '<b>Exemple de formulaire</b><br>'
+ '<i>HTMLBox renvoie les input du formulaire</i>'
+ '<form><table>'
+ '<tr><td>Nom</td><td><input type="text" name="nom"></td></tr>'
+ '<tr><td>Description</td><td><textarea name="description"></textarea></td></tr>'
+ '<tr><td>Afficher la description</td><td><input type="checkbox" name="affiche_desc"></td></tr>'
+ '</table><center><input type="submit" name="ok" value="Valider"><br>'
+ '<input type="submit" name="cancel" value="Annuler"></center>'
+ '</form></body></html>';
// Affichage de la fenêtre
var results:=HTMLBox(html, 400, 500);
// Traitement des résultats
if results='' then begin
// fermeture avec la croix
InformationDlg('Abandon');
end else if StrBeginsWith(results, 'cas') then begin
// clic sur un lien
InformationDlg('Vous avez choisi : '+results);
end else begin
// validation du formulaire
var inputs:=TStrings.Create;
inputs.CommaText:=results;
if inputs.Values['cancel']<>'' then begin
InformationDlg('Abandon');
end else if inputs.Values['affiche_desc']<>'' then begin
InformationDlg(inputs.Values['nom']+' ('+inputs.Values['description']+')');
end else begin
InformationDlg(inputs.Values['nom']);
end;
end;
+ '<body>'
+ '<b>Exemple de liens hypertexte</b><br>'
+ '<i>HTMLBox renvoie le href du lien</i>'
+ '<ul>'
+ '<li><a href="cas 1">Cliquez ici pour le choix 1</a></li>'
+ '<li><a href="cas 2">Cliquez ici pour le choix 2</a></li>'
+ '</ul>'
+ '<hr>'
+ '<b>Exemple de formulaire</b><br>'
+ '<i>HTMLBox renvoie les input du formulaire</i>'
+ '<form><table>'
+ '<tr><td>Nom</td><td><input type="text" name="nom"></td></tr>'
+ '<tr><td>Description</td><td><textarea name="description"></textarea></td></tr>'
+ '<tr><td>Afficher la description</td><td><input type="checkbox" name="affiche_desc"></td></tr>'
+ '</table><center><input type="submit" name="ok" value="Valider"><br>'
+ '<input type="submit" name="cancel" value="Annuler"></center>'
+ '</form></body></html>';
// Affichage de la fenêtre
var results:=HTMLBox(html, 400, 500);
// Traitement des résultats
if results='' then begin
// fermeture avec la croix
InformationDlg('Abandon');
end else if StrBeginsWith(results, 'cas') then begin
// clic sur un lien
InformationDlg('Vous avez choisi : '+results);
end else begin
// validation du formulaire
var inputs:=TStrings.Create;
inputs.CommaText:=results;
if inputs.Values['cancel']<>'' then begin
InformationDlg('Abandon');
end else if inputs.Values['affiche_desc']<>'' then begin
InformationDlg(inputs.Values['nom']+' ('+inputs.Values['description']+')');
end else begin
InformationDlg(inputs.Values['nom']);
end;
end;