Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi WebSeite in App anzeigen wie Artisteer (https://www.delphipraxis.net/141942-webseite-app-anzeigen-wie-artisteer.html)

ASoraru 19. Okt 2009 15:10


WebSeite in App anzeigen wie Artisteer
 
Hallo zusammen,

ich suche eine Möglichkeit eine Webseite erzeugen zu lassen in meiner App und das Ergebniss auch entsprechend anzuzeigen. Ich orientiere mich da an einer Lösung wie in Artisteer ... ich weis nicht ob Ihr da skennt. Welche Komponente nutze ich da am besten ? TWebBrowser ? oder gibt es da andere Lösungsansätze.

Grüße,

Andreas

Bernhard Geyer 19. Okt 2009 15:14

Re: WebSeite in App anzeigen wie Artisteer
 
Anzeige mit TWebBrowser/TEmbeddedWB und Seitenerzeugung mittles ICS-Komponenten (oder auch Synapse, Indy, IP*Works) per HTTP

ASoraru 19. Okt 2009 15:22

Re: WebSeite in App anzeigen wie Artisteer
 
Zitat:

Zitat von Bernhard Geyer
Anzeige mit TWebBrowser/TEmbeddedWB und Seitenerzeugung mittles ICS-Komponenten (oder auch Synapse, Indy, IP*Works) per HTTP

whow ... danke für den tipp ... also das anzeigen verstehe ich problemlos ... da es sich aber um templates wie joomla handlelt wäre es interessant zu wissen wie man das zusammensetzt ... gibts da tutorials oder etwas anderes ? ... immerhin besteht so ein template ja aus entsprechenden teiles von php, css, html, bildern etc.

Bernhard Geyer 19. Okt 2009 17:04

Re: WebSeite in App anzeigen wie Artisteer
 
Zitat:

Zitat von ASoraru
Zitat:

Zitat von Bernhard Geyer
Anzeige mit TWebBrowser/TEmbeddedWB und Seitenerzeugung mittles ICS-Komponenten (oder auch Synapse, Indy, IP*Works) per HTTP

whow ... danke für den tipp ... also das anzeigen verstehe ich problemlos ... da es sich aber um templates wie joomla handlelt wäre es interessant zu wissen wie man das zusammensetzt ... gibts da tutorials oder etwas anderes ? ... immerhin besteht so ein template ja aus entsprechenden teiles von php, css, html, bildern etc.

Da wirst du dich mit parsen von Template-Dateien auseinandersetzen müssen.
Wir verwenden obige Lösung nur um fertige PDF/HTML-Dateien auszuliefern.

ASoraru 19. Okt 2009 17:08

Re: WebSeite in App anzeigen wie Artisteer
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von ASoraru
Zitat:

Zitat von Bernhard Geyer
Anzeige mit TWebBrowser/TEmbeddedWB und Seitenerzeugung mittles ICS-Komponenten (oder auch Synapse, Indy, IP*Works) per HTTP

whow ... danke für den tipp ... also das anzeigen verstehe ich problemlos ... da es sich aber um templates wie joomla handlelt wäre es interessant zu wissen wie man das zusammensetzt ... gibts da tutorials oder etwas anderes ? ... immerhin besteht so ein template ja aus entsprechenden teiles von php, css, html, bildern etc.

Da wirst du dich mit parsen von Template-Dateien auseinandersetzen müssen.
Wir verwenden obige Lösung nur um fertige PDF/HTML-Dateien auszuliefern.

mit dem aufbau und dem rest bin ich vertraut ... nur mache ich das sonst von hand :-) ... ich weis nur nicht wie ich das dann zusammenführe mit welcher komponente .... für mich sieht das in artisteer aber nicht aus wie ein browser ... sondern mehr wie eine eigene komponente ... also quasi nur für die settings und daraus wird dann das template erstellt ... hat da jemand mehr einblick ?

nahpets 19. Okt 2009 17:58

Re: WebSeite in App anzeigen wie Artisteer
 
Hallo,

weiß nicht genau, was Du vorhast.

Für meine dynamischen Webseiten benutze ich den TPageProducer (bei Delphi 7 auf dem Komponentenreiter Internet zufinden). Damit geht das extrem einfach, überall, wo zur Laufzeit ein dynamischer Inhalt hin soll, gibt man im Template eine eigenes Tag an in der Form <#Tagname> ein. Beim Ausliefern des Inhaltes ruft TPageProducer ein Ereignis OnHTMLTag auf, in dem man den Namen dieser eigenen Tags abfragen kann und als Rückgabe den gewünschten Inhalt liefert, der wird dann in das Template eingefügt und ausgeliefert wird eine HTML-Seite, die auf dem Tamplate basiert, bei dem alle Tags durch den entsprechenden Inhalt ersetzt wurde.

Das geht sehr schnell, komfortabel und man muss selbst nichts parsen.

Für die Anzeige könntest Du Dir die entsprechende ActiveX-Komponente des Internetexplorers imporieren.

ASoraru 19. Okt 2009 18:08

Re: WebSeite in App anzeigen wie Artisteer
 
Zitat:

Zitat von nahpets
Hallo,

weiß nicht genau, was Du vorhast.

Für meine dynamischen Webseiten benutze ich den TPageProducer (bei Delphi 7 auf dem Komponentenreiter Internet zufinden). Damit geht das extrem einfach, überall, wo zur Laufzeit ein dynamischer Inhalt hin soll, gibt man im Template eine eigenes Tag an in der Form <#Tagname> ein. Beim Ausliefern des Inhaltes ruft TPageProducer ein Ereignis OnHTMLTag auf, in dem man den Namen dieser eigenen Tags abfragen kann und als Rückgabe den gewünschten Inhalt liefert, der wird dann in das Template eingefügt und ausgeliefert wird eine HTML-Seite, die auf dem Tamplate basiert, bei dem alle Tags durch den entsprechenden Inhalt ersetzt wurde.

Das geht sehr schnell, komfortabel und man muss selbst nichts parsen.

Für die Anzeige könntest Du Dir die entsprechende ActiveX-Komponente des Internetexplorers imporieren.

wenn ich das alos recht höre habe ich interne tags für texte etc ... sobald beim anzeigen der webseite eines davon benötigt wird holt sich der pageproducer die daten des tags bzw. übergibt ein tag und ich gebe ihm die daten zurück ... das ergebniss wird dann im TEmbeddedWB oder TWebBrowser angezeigt ... richtig ? ... wie schaut es mit css dateien aus etc. ... die basis eines tmaplates ist ja eine php datei ... geht das dann trotzdem ?

nahpets 19. Okt 2009 18:33

Re: WebSeite in App anzeigen wie Artisteer
 
Hallo,

ob's mit PHP-Dateien funktioniert, weiß ich nicht, kommt auf 'nen Versuch an.

TPageProducer hat ein Attribut für einen Dateinamen, dort gebe ich mein Template an.

Wenn nun TPaceProducer.Content abgerufen wird, parst er diese Datei und ersetzt die Tags.
Delphi-Quellcode:
Var
  pp           : TPageProducer;
  sFertigeSeite : String;
begin
  pp := TPaceProducer.Create(Nil);
  pp.HTMLFile := 'MeinTemplate.html';
  pp.OnHTMLTag := ppHTMLTag;
  // bei dieser Zuweisung werden die Tags ersetzt.
  sFertigeSeite := pp.Content;
... mach damit was Du willst ;-)
  pp.Free;
end;

procedure ppHTMLTag(diverse parameter macht Dir die IDE, hab ich gerade nicht da);
begin
  if comparetext(TagString,'1terparameter') then begin // Tagstring ist einer der Prozedurparameter
    // Über die Komponente TDataSetTableProducer können hier auch komplette Abfrageergebnisse
    // von Datenbanken eingefügt werden.
    // Eigentlich ist alles möglich, was als Ergebnis einen String liefert.
    ReplaceText := 'Das möchte ich beim Parameter <#1terparameter> im Template stehen haben';
  end else
  if comparetext(TagString,'2terparameter') then begin
    ReplaceText := 'Das möchte ich beim Parameter <#2terparameter> im Template stehen haben';
  end else begin
    ReplaceText := 'Upp''s, für den Parameter <#' + TagString + '> habe ich keinen Rückgabewert.';
  end;
end;
Das ist jetzt nur so hingedaddelt, habe momentan kein Delphi zur Verfügung.

Hoffe, es wird klar was geht, Du kannst ja dann entscheiden, ob's für Dich geeignet ist.

ASoraru 19. Okt 2009 18:49

Re: WebSeite in App anzeigen wie Artisteer
 
Zitat:

Zitat von nahpets
Hallo,

ob's mit PHP-Dateien funktioniert, weiß ich nicht, kommt auf 'nen Versuch an.

TPageProducer hat ein Attribut für einen Dateinamen, dort gebe ich mein Template an.

Wenn nun TPaceProducer.Content abgerufen wird, parst er diese Datei und ersetzt die Tags.
Delphi-Quellcode:
Var
  pp           : TPageProducer;
  sFertigeSeite : String;
begin
  pp := TPaceProducer.Create(Nil);
  pp.HTMLFile := 'MeinTemplate.html';
  pp.OnHTMLTag := ppHTMLTag;
  // bei dieser Zuweisung werden die Tags ersetzt.
  sFertigeSeite := pp.Content;
... mach damit was Du willst ;-)
  pp.Free;
end;

procedure ppHTMLTag(diverse parameter macht Dir die IDE, hab ich gerade nicht da);
begin
  if comparetext(TagString,'1terparameter') then begin // Tagstring ist einer der Prozedurparameter
    // Über die Komponente TDataSetTableProducer können hier auch komplette Abfrageergebnisse
    // von Datenbanken eingefügt werden.
    // Eigentlich ist alles möglich, was als Ergebnis einen String liefert.
    ReplaceText := 'Das möchte ich beim Parameter <#1terparameter> im Template stehen haben';
  end else
  if comparetext(TagString,'2terparameter') then begin
    ReplaceText := 'Das möchte ich beim Parameter <#2terparameter> im Template stehen haben';
  end else begin
    ReplaceText := 'Upp''s, für den Parameter <#' + TagString + '> habe ich keinen Rückgabewert.';
  end;
end;
Das ist jetzt nur so hingedaddelt, habe momentan kein Delphi zur Verfügung.

Hoffe, es wird klar was geht, Du kannst ja dann entscheiden, ob's für Dich geeignet ist.

super ... vielen dank dafür ... ich bin trotzdem noch nicht sicher ob ich es damit realisieren kann und ob es bei artisteer so gemacht wird ... hmpf
alles etwas kompiliziert ... vor allem das ganze so editierbar zu machen .... am besten wäre es wenn man jeden teil der webpage anklicken könnte so wie im firebug von firefox und dann entweder den css teil / html teil hat oder bei grafiken diese entsprechend anpassen kann ... ich überlege noch wie ich das aufbaue


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:01 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