AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Webinterface, HTML Inhalt dynamisch erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

Webinterface, HTML Inhalt dynamisch erzeugen

Ein Thema von guidok · begonnen am 16. Jul 2008 · letzter Beitrag vom 17. Jul 2008
Antwort Antwort
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#1

Webinterface, HTML Inhalt dynamisch erzeugen

  Alt 16. Jul 2008, 15:22
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

Würde mich über Anregungen von euch freuen!

Danke!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Webinterface, HTML Inhalt dynamisch erzeugen

  Alt 16. Jul 2008, 16:07
Schau dir mal http://g-framework.org/ an
Markus Kinzler
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#3

Re: Webinterface, HTML Inhalt dynamisch erzeugen

  Alt 17. Jul 2008, 13:40
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:
<div id="Seite">
  <h1> </h1>
und in Delphi
Delphi-Quellcode:
const pvTitle = '';
      pvHeader = '';
      pvNavigation = '';
      pvFooter = '';

procedure HTMLHeader(const AHeader: String; var HTML: TStrings);
begin
  HTML.Text := StringReplace(HTML.Text,pvHeader,AHeader,[rfIgnoreCase]);
end;
Ich denke, damit komme ich schon recht weit.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

Re: Webinterface, HTML Inhalt dynamisch erzeugen

  Alt 17. Jul 2008, 14:11
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:
<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>
Beispiel für den Quelltext in Delphi, der den Inhalt in die Datei einfügt:

Delphi-Quellcode:
// 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;
Zur Laufzeit wird von der Komponente nun an der Stelle <#CONTENT> der HTML-Seite der dynamische Inhalt eingefügt.
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
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#5

Re: Webinterface, HTML Inhalt dynamisch erzeugen

  Alt 17. Jul 2008, 14:19
Danke Stephan,

das ist genau was ich gesucht habe. Ich werde mich da mal etwas einarbeiten.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz