| Autor |
Beitrag |
lukas-a
Hält's aus hier
Beiträge: 11
|
Verfasst: Fr 12.12.08 17:23
Hallo ,hab mich gerade hier angemeldet udn hoffe eure hilfe.
ich bin aus der übung ... bzw war nie besonders gut.
Hoffe es ist das richtige unterforum
Zu meinem Problem:
Ich möchte für einen Autohandel ein Programm schreiben das nach Eingabe der Parameter (Leistung,km,..) diese in ein html-code einfügt und dann als fertigen html-code ausgibt.
Klingt ja nicht schwer .
Habe dann folgendes gemacht.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Button1Click(Sender: TObject); begin Memo4.Lines.Add(' <html> <head> </head> <body> <br> <br> <br> <p></p> <p class="MsoNormal"><font color="#333333" face="Arial" size="1"><span style="font-size: 9pt; font-family: Arial; color: rgb(51, 51, 51);"> <p> </p> </span></font></p> <p class="MsoNormal"><font color="#333333" face="Arial" size="1"><sp |
doch dann kommen fehler dass das nicht geht . meine frage gibt es eine Möglichkeit den Html-code als memo oder ähnliches auszugeben?
und
Wie lasse ich die Parameter einfließen hatte eigentlich gedacht das es so geht
einfach im memotext/htmlcode
leistung:edit4.text
dann kommt aber ja nur edit4.text und nicht die eigentliche eingabe.Ich denke dies ist ein kleiner aber sehr dummer fehler.
Ich weiß echt nicht mehr wie es richtig geht ,hatte nur 1 jahr info in der schule un hab dann 1,5 jahren nichts mehr gemacht.
danke m vorraus
lukas
Moderiert von Gausi: Delphi-Tags hinzugefügtModeriert von Gausi: Topic aus Algorithmen, Optimierung und Assembler verschoben am Fr 12.12.2008 um 16:46
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 12.12.08 17:26
Versuch es mal so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Button1Click(Sender: TObject); begin Memo4.Lines.Add('<html>'); Memo4.Lines.Add('<head>'); Memo4.Lines.Add('</head>'); Memo4.Lines.Add('<body> '); end; |
Im Quelltext darf bei Stringliteralen kein Zeilenumbruch stehen. Den kannst Du zur Not auch händisch mit sLinebreak einfügen.
|
|
Chrischuh
      
Beiträge: 124
Erhaltene Danke: 1
Win 7
Turbo Delphi
|
Verfasst: Fr 12.12.08 17:33
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Button1Click(Sender: TObject); begin
with memo4.lines do begin clear; add('<html>'); add('<head>'); add('Leistung: '+edit4.text); end;
end; |
|
|
lukas-a 
Hält's aus hier
Beiträge: 11
|
Verfasst: Fr 12.12.08 17:35
vielen dank für dei schnelle hilfe, aber es ist ein sehr langer htmlcode jedes einzelne wort immer wieder zusatzen dauert ja ewigkeiten. gibt es nicht noch eine andere ausgabe möglichkeit?
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 12.12.08 17:38
Du könntest den HTML-String als Konstante hinterlegen, wobei Du für die variablen Teile ein "%s" (ohne Anführungszeichen) einfügst. Mit dem Format-Befehl kannst Du dann die variablen Teile einfügen, wobei die Anzahl der Parameter genau der Anzahl der "%s" entsprechen muss.
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 12.12.08 17:41
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button1Click(Sender: TObject); begin Memo4.Lines.Add('<html>'#13#10 + '<head>'#13#10 + '</head>'#13#10 + '<body>'#13#10 + ''#13#10 + ''#13#10 + ''#13#10 ... |
Besser wäre es aber vielleicht den Text als externe Datei oder in der Exe als Ressource mitzuliefern, sonst tippst du trotzdem lange.
Falls du ein neueres Delphi hast, kannst du auch per Makro die Änderung in den Zeilen machen.
|
|
lukas-a 
Hält's aus hier
Beiträge: 11
|
Verfasst: Fr 12.12.08 17:45
das mit dem formatbefehl versteh ich net ganz
hab ich mir auch überlegt könnte ich das als editordatei ausgeben?bzw.schon bei der exe mitgeliefert.
wie mach ich dann das sich die parameter ändern?
bzw. wie lad/speicher ich dann die editordatei?
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 12.12.08 17:52
Was ich meinte:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| const sText = '<html>'+sLineBreak+'<head>'+ sLineBreak+'<title>%s</title>'+ sLineBreak+'</head>'+sLinebreak+'<body>'+ sLinebreak+'%s'+ '</body>'+sLinebreak+'</html>'; begin Memo1.Text := Format(sText,['Eine Seite','Hallo Welt']); end; |
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 12.12.08 17:57
lukas-a hat folgendes geschrieben : | bzw.schon bei der exe mitgeliefert.
wie mach ich dann das sich die parameter ändern?
bzw. wie lad/speicher ich dann die editordatei? |
Wie du dann Text einfügst hat DeddyH ja gerade demonstriert.
Mitliefern würde ich es als Ressource. Diese lädst du dann mit einem TResourceStream, kopierst diesen in einen TStringStream und hast dann den Text in der Eigenschaft DataString des TStringStream stehen. Darauf wendest du dann den Formatbefehl an.
|
|
lukas-a 
Hält's aus hier
Beiträge: 11
|
Verfasst: Fr 12.12.08 18:17
DeddyH hat folgendes geschrieben : | Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| const sText = '<html>'+sLineBreak+'<head>'+ sLineBreak+'<title>%s</title>'+ sLineBreak+'</head>'+sLinebreak+'<body>'+ sLinebreak+'%s'+ '</body>'+sLinebreak+'</html>'; begin Memo1.Text := Format(sText,['Eine Seite','Hallo Welt']); end; | |
wenn ich das so übernehme kommt es zum fehler bei slinebreak :undefinierter bezeichner
das ist ja ganz gut nur muss ich auch den ganzen code mühsam umschreiben.
wie bekomm ich es hin das anstatt z.b. eine seite der inhalt von z.b. edit2.text übernommen wird
sorry für die vielen fragen ^^
Moderiert von Narses: Zitat repariert
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 12.12.08 18:27
lukas-a hat folgendes geschrieben : | | das ist ja ganz gut nur muss ich auch den ganzen code mühsam umschreiben. |
Nicht wenn du es machst wie ich es gesagt habe und den Text aus einer Ressource lädst.
|
|
lukas-a 
Hält's aus hier
Beiträge: 11
|
Verfasst: Fr 12.12.08 18:29
hab noch nie mit TResourceStream und den dingen gearbeit wie gesagt nur 1 jahr schulinfo,und aus der hilfe werd ich auch net schlau draus.
|
|
pesi
      
Beiträge: 67
Erhaltene Danke: 1
|
Verfasst: Fr 12.12.08 18:36
Titel: LoadFromFile
Warum so kompliziert? Mach eine "Textdatei" (wie auch immer die Endung heißen mag) mit Deinem HTML-Inhalt und speicher sie lokal in dem Verzeichnis wo auch die Anwendung liegt.
Dann im Programm einfach Memo.Lines.LoadFromFile('DeineDatei.txt');
Wenn Du dann Deine anderen Sachen dort eingefügt hast, dann kannst Du das Memo einfach abspeicher wie z.B.: Memo.Lines.SaveToFile('MeineHTMLDatei.HTML');
...und wenn´s dann auch noch angezeigt werden soll, dann schau Dir mal "shellexecute" an, damit kannst Du die soeben abgespeicherte HTML-Datei im Browserfenster aufrufen.
Gruß Peter
|
|
lukas-a 
Hält's aus hier
Beiträge: 11
|
Verfasst: Fr 12.12.08 18:51
vielen dank
jetzt hab ich die html datei zumindestmal in meiner memobox aber wie bekomm ich jetzt noch meine parameter rein?
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 12.12.08 18:53
Memo.Lines.Insert(Zeilennummer,String)
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 12.12.08 18:56
Titel: Re: LoadFromFile
pesi hat folgendes geschrieben : | | Dann im Programm einfach Memo.Lines.LoadFromFile('DeineDatei.txt'); |
So ist es falsch und wird nicht immer funktionieren, nur zufällig und bei kleineren Programmen meistens.
www.delphi-library.d...ewtopic.php?p=499701
Wie es mit Ressourcen funktioniert:
Die Datei mit dem Code, z.B. MeineDatei.html, ins Unterverzeichnis Res.
Res\MeineRes.rc 1:
| NameDerRessource TEXT MeineDatei.html |
Res\MeineRes.bat Die Datei MeineRes.bat doppelklicken.
Im Code dann Delphi-Quelltext
Und zum Benutzen: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var ResStream: TResourceStream; StringStream: TStringStream; begin ResStream := TResourceStream.Create(hInstance, 'NameDerRessource', 'TEXT'); StringStream := TStringStream.Create(''); StringStream.CopyFrom(ResStream, ResStream.Size); ResStream.Free; ShowMessage(StringStream.DataString); StringStream.Free; end; | An der Stelle mit ShowMessage kannst du dann stattdessen die Parameter einfügen.
|
|
lukas-a 
Hält's aus hier
Beiträge: 11
|
Verfasst: Fr 12.12.08 21:22
ich hab iwie immer noch probleme tortz der erklärungen
1 .
| Zitat: | | Memo.Lines.Insert(Zeilennummer,String) |
ich möchte aus verschiedenen editx.text die inhalte an gewisse stellen im html-quelltext setzen . wie mach ich das ? ich denke damit kommt man nicht weit weil doch nirgends edit vorkommt.
der zweite post ist nach meinen vorstellungen nur mit zu viel arbeit.
2.
| Zitat: | | An der Stelle mit ShowMessage kannst du dann stattdessen die Parameter einfügen. |
versteh ich ebenfalls nicht hab mehrere strings die ich an verschiedenen stellen im html code setzen möchte.
wie erstelle ich eine .rc datei bzw. eine solche .bat ?
hab mal bild angehangen so wie mein prog, aussieht .
gibt es noch ne andere ausgabevariante ? mit der man einfach den htmlcode einfügt und dann dort wo was hin soll edit1.text usw ersetzt?
Einloggen, um Attachments anzusehen!
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 12.12.08 21:27
Wie bereits gesagt, den gesamten HTML-Code mit "%s"-Platzhaltern irgendwo ablegen, sei es als Ressource, als Konstante oder was weiß ich. Und dann setz Dich mal mit dem Format-Befehl auseinander, ein Beispiel hab ich bereits gepostet.
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 12.12.08 22:03
lukas-a hat folgendes geschrieben : | | wie erstelle ich eine .rc datei bzw. eine solche .bat ? |
Das sind normale Textdateien, wie ja der Inhalt wohl nahelegt...
Und in deiner HTML-Datei fügst du dann die Platzhalter ein. Quelltext Und dann benutzt du den Format-Befehl wie oben schon gezeigt wurde oder wie es im Internet in x Beispielen zu sehen ist.
Und wenn du damit nicht klar kommst, dann zeig doch wie weit du bist und wo du nicht weiter kommst.
|
|
lukas-a 
Hält's aus hier
Beiträge: 11
|
Verfasst: Fr 12.12.08 23:41
www.file-upload.net/...312762/auto.rar.html viellt. kann mal jemand drüber sehn.
iwie gelingt es mir nicht die res datei zu erstellen. hab im quelltext die ersten edits zu %s geändert viellt. kann es ja mal einer angeben mit edit1.text oder so
dnake
|
|