![]() |
Webinterface, HTML Inhalt dynamisch erzeugen
Ich bin mal wieder bei meinem geliebten Thema (Intra-)Webinterface und nein, ich möchte Intraweb nicht verwenden.
Ein Stück Software das ich gerade erstelle soll mit einem kleinen Webinterface aufwarten können. Ich dachte nun daran idHTTPServer einzusetzen, um das Interface autark von zusätzlich installierter Software betreiben zu können. Da ich in diesem Thema relativ neu unterwegs bin, bin ich derzeit erst mal froh einen kleinen Testserver zu haben, der mir ein HTML Dokument (index.html) mit einem Bildchen drauf liefert. Das ist schon was, aber nur die halbe (wahrscheinlich nur 1/30) Miete. Es sollen ja Daten (Tabellen, etc) dargestellt, ggf. auch Inhalte zum Herunterladen angeboten werden, d.h. ich werde die Seiten dynamisch erzeugen müssen. Gibt es für solche Dinge nützliche (Software-)Helfer, die diese Aufgabe erleichtern oder muss ich die HTML-Strings von Hand basteln? Ich schätze ich werde mich auf jeden Fall mal intesiv mit HTML beschäftigen müssen :cry: Würde mich über Anregungen von euch freuen! Danke! |
Re: Webinterface, HTML Inhalt dynamisch erzeugen
Schau dir mal
![]() |
Re: Webinterface, HTML Inhalt dynamisch erzeugen
Ich denke ich werde es jetzt auf die folgende Weise versuchen:
In den normalen HTML Quelltext werden definierte Seitenvariablen eingefügt, deren Inhalt anschließend dynamisch ausgetauscht wird. z.B. im HTML Text
Delphi-Quellcode:
und in Delphi
<div id="Seite">
<h1> </h1>
Delphi-Quellcode:
Ich denke, damit komme ich schon recht weit.
const pvTitle = '';
pvHeader = ''; pvNavigation = ''; pvFooter = ''; procedure HTMLHeader(const AHeader: String; var HTML: TStrings); begin HTML.Text := StringReplace(HTML.Text,pvHeader,AHeader,[rfIgnoreCase]); end; |
Re: Webinterface, HTML Inhalt dynamisch erzeugen
Hallo,
zum dynamischen Generieren von HTML-Seiten bietet sich TPageProducer an. Dem kannst Du ein HTML-Template unterschieben, in Form einer Datei. Mit einem TDataSetTableProducer kannst Du die Ergebnisse einer SQL-Abfrage (TQuery) oder einer Tabelle (TTable) bzw. allen Nachkommen von TDataSet aufbereiten lassen. Beispiel für eine HTML-Datei:
Delphi-Quellcode:
Beispiel für den Quelltext in Delphi, der den Inhalt in die Datei einfügt:
<html>
<head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <meta http-equiv="expires" content="0"> <meta name="robots" content="index"> <meta name="robots" content="follow"> <title>Das ist der Seitentitel</title> <link rel="stylesheet" type="text/css" href="/stylesheets/neutral.css"> </head> <body> <div id="navigation"> <h1 class="center">EDV-Spezialadressen</h1> <h2 class="center">Übersicht über Firmen einer Branche</h2><hr /> <#CONTENT> <hr /> </div> </body> </html>
Delphi-Quellcode:
Zur Laufzeit wird von der Komponente nun an der Stelle <#CONTENT> der HTML-Seite der dynamische Inhalt eingefügt.
// Aufbau der Indexseite
// mit ersetzen der ggfls. im Template enthaltenen Platzhalter. procedure Twm.ppIndexHTMLTag(Sender: TObject; Tag: TTag; const TagString: String; TagParams: TStrings; var ReplaceText: String); begin // An die Stelle dieses Platzhalters kommt der Inhalt der Tabelle tbSQL // entsprechend den Auswahlkriterien. If (AnsiCompareText(TagString,'CONTENT') = 0) Then Begin tbSQL.Filter := 'EXCELREPORT=2'; tbSQL.Filtered := true; tbSQL.Open; ReplaceText := dstpSQL.Content; tbSQL.Close; tbSQL.Filter := ''; tbSQL.Filtered := false; End Else Begin // ... hier können beliebige weitere Ersetzungen stattfinden End; end; Der dynamische Inhalt ergibt sich in diesem Beispiel aus der Ergebnismenge der Tabellenkomponente tbSQL, die durch einen Filter eingeschränkt wird. Die Aufbereitung des Inhaltes wird von der Komponente dstpSQL (TDataSetTableProducer) durchgeführt. Das Ganze geht mit verblüffend wenig Quelltext und ist, wenn man es ausreizt, hochflexibel. Im HTML-Text kannst Du jeden beliebigen Inhalt durch Tags der Form <#TAGNAME> über die Ereignisroutine eines TPageProducer ersetzen lassen. Nutze hier die Möglichkeiten, die Dir Delphi bietet. Das Bauen eigener Ersetzungsroutinen würde das vorhandenen bestenfalls nachbilden. Warum das Fahrrad nochmal erfinden, Delphi bietet die hier schon ein sehr leistungsfähiges Gefährt an. Stephan |
Re: Webinterface, HTML Inhalt dynamisch erzeugen
Danke Stephan,
das ist genau was ich gesucht habe. Ich werde mich da mal etwas einarbeiten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz