and4more hat geschrieben:Wird das HTML-Formular dann im Browser angezeigt oder statt des MemoFelds, also im gleichen Unterfenster?...und eigentlich wollte ich in der nächsten Ausbaustufe ein PDF-Formular generieren!!! Oh je mir schwant Schlimmes
Wie wolltest du das PDF erstellen? Per Ausdruck? Dann wäre es kein Problem, das TIpHtmlPanel hat auch eine Druck Funktionalität.
Hey, damit Du nicht hin- und hergerissen bist, stimme im Theo bzw. M.Fuchs zu. So lernst Du auch noch ein bischen HTML kennen, was auf jeden Fall nicht verkehrt ist! Ich hatte nur versucht, Dir Deine Denkfehler aufzuzeigen, der bessere Ansatz scheint IpHtmlPanel zu sein - habe da praktisch zu wenig Erfahrung (setze weder lzRichEdit noch RichMemo in der Praxis ein - IpHtmlPanel nutzte ich eine Zeit lang in einem Projekt - war da ausreichend).
Wäre wirklich zu überlegen die Ausgabe in HTML durchzuziehen, allerdings ist "wiki.freepascal.org/Lazarus_Packages" momentan nicht erreichbar und ich finde keine alternative Downloadquelle außer den GitHubs. Aber 'ne ZIP-Datei von turbopoweripro und turbopoweriprodsgn wär mir echt lieber als alle Dateien einzelnen zu laden.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
procedure TForm1.Button1Click(Sender: TObject);
var NewHTML:TIpHtml;
Strm:TStringStream;
begin
NewHTML:=TIpHtml.Create;
Strm:=TStringStream.Create('test <b>test</b> test <br> test <i>test</i> test');
NewHTML.LoadFromStream(Strm);
IpHtmlPanel1.SetHtml(NewHTML);
Strm.Free;
end;
O. K., so wie ich das verstehe erzeugst du erst ein HTML-Dokument (NewHTML), das dann im HTML-Fenster (IpHTMLPanel1) angezeigt wird. In welcher unit sind diese Funktionen enthalten?
and4more hat geschrieben:O. K., so wie ich das verstehe erzeugst du erst ein HTML-Dokument (NewHTML), das dann im HTML-Fenster (IpHTMLPanel1) angezeigt wird. In welcher unit sind diese Funktionen enthalten?
Die Frage verstehe ich jetzt zwar überhaupt nicht, aber ohne weitere Nachfragen: Die Unit heisst IpHtml
So, ich habe jetzt auf HTML umgestellt und glaube, dass es eine Super-Idee war. Allerdings bleibt das HTML-Panel leer. Habe alles folgendermaßen realisiert:
var
RisikoListe: TStringList;
.
.
//Hauptprogramm
.
.
// ***** Abschließende Beurteilung *****
// ----- Platz für Firmenlogo oben ----
InhaltListe.Add('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'+
'<html><head><meta http-equiv="content-type" content="text/html; charset=utf8">');
InhaltListe.Add('<title>Osteoporose-Risiko-Check</title></head><body><br><br><br>');
InhaltListe.Add('<br><br><br><h1><b>Osteoporose-Risiko Erhebungsbogen</b></h1>');
// --------- Inhalt ---------------------------
InhaltListe.Add('<br><h3>');
InhaltListe.Add('<b>Datum der Befunderhebung: '+tab+tab+tab+tab+tab+tab+tab+tab+
TEdUTT.Text+'.'+TEdUMM.Text+'.'+TEdUJJJJ.Text+'</b></h3><br><br>');
InhaltListe.Add('Patientenname: '+tab+tab+tab+tab+tab+tab+tab+tab+tab+tab+
TEdVName.Text+' '+TEdName.Text+'<br>');
InhaltListe.Add('Geburtsdatum: '+tab+tab+tab+tab+tab+tab+tab+tab+tab+
TEdTT.Text+'.'+TEdMM.Text+'.'+TEdJJJJ.Text+'<br>');
InhaltListe.Add('Alter zum Untersuchungszeitpunkt: '+tab+tab+tab+tab+tab+
tab+tab+TEdAlter.Text+'<br>');
InhaltListe.Add('Körpergröße: '+tab+tab+tab+tab+tab+tab+tab+tab+tab+
TEdGroesse.Text+' cm'+'<br>');
.
.
// ***** Übertragung an das HTML-Panel aus InhaltListe *****
// ResultsForm.MemBewertung.Text:='';
InhaltListe.Add('</body></html>');
for i:=1 to InhaltListe.Count do
ResultsForm.MemBewertung.SetHtmlFromStr(InhaltListe[i-1]);
// InhaltListe.Free;
.
.
Eigentlich sollte der HTML-Code im Panel angezeigt werden, irgendwie klappt das aber in dieser Form nicht, d. h. das Formular bleibt leer, aber auch keine Fehlermeldung. Möglicherweise irgendwo ein Fehler im HTML-Code.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
Super, das war's, jetzt klappt die Ausgabe. Vielen Dank. Allerdings werden die Sonderzeichen leider nicht korrekt dargestellt. Gibt es einen einfachen Weg oder muss jedes Zeichen gemäß &#...; kodiert werden?
Dateianhänge
HTML-Ausgabe
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
Ergänzung: Hab's grade selbst rausgefunden. Hatte noch im Kopf 'charset=UTF-8' auskommentiert. Nach Aktivierung klappt's super. Nochmal vielen Dank an Alle, die sich soviel Zeit und Mühe mit meinem Problem gemacht haben.
Dateianhänge
UTF8-Ausgabe
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit