Autor |
Beitrag |
moerf94
Hält's aus hier
Beiträge: 3
|
Verfasst: Di 18.01.11 22:20
Also Ich muss ein HTML "Wandler" erstellen. Also man soll einen Text im Memofeld1 öffnen, Dann soll per oneclick der text ins HTML format gewandelt werden und im memofeld2 ausgegeben werde. Das klappt schon mal. So hier ist erstmal mein Code und Das Programm:
Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; Memo2: TMemo; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; ColorDialog1: TColorDialog; Button10: TButton; procedure Button4Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button5Click(Sender: TObject); private textfarbe:string;
public end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button4Click(Sender: TObject); begin form1.close; end;
procedure TForm1.Button1Click(Sender: TObject); begin if opendialog1.Execute then memo1.Lines.LoadFromFile(opendialog1.filename); end;
procedure TForm1.Button9Click(Sender: TObject); begin memo1.Clear; end;
procedure TForm1.Button2Click(Sender: TObject); begin memo2.clear; memo2.Lines.Add('<html>'); memo2.Lines.Add(' <head>'); memo2.Lines.Add(' <title> </title>'); memo2.Lines.Add(' </head>'); memo2.Lines.Add(' <body text='+ textfarbe +' bgcolor="#FFFFFF">'); memo2.Lines.Add(memo1.Text); memo2.Lines.Add(' </body>'); memo2.Lines.Add('</html>'); end;
procedure TForm1.Button3Click(Sender: TObject); begin if savedialog1.Execute then memo2.Lines.LoadFromFile(opendialog1.filename); end;
procedure TForm1.Button10Click(Sender: TObject); begin memo2.clear; end;
procedure TForm1.FormCreate(Sender: TObject); begin textfarbe:='"#000000"'; end;
begin end;
end. |
So nun zu meinen Problemen ich möchte die rgb werte im body kopf der html seite ändern mit dem dialog colordialoge1. Ich habe für die werte bereits eine variable gesetzt und beim strart setzt er auch den Anfangswert den ich vorgegeben habe. Nun möchte ich das der dialog sich öffnet wenn man auf HTML Hintergrungfarbe drückt und die variable neu setzt. Ich hoffe auf euere hilfe. Danke schon mal im voraus.
Moderiert von Narses: Delphi-Tags hinzugefügt
Moderiert von Martok: Topic aus Sonstiges (Delphi) verschoben am Di 18.01.2011 um 23:24
Einloggen, um Attachments anzusehen!
Zuletzt bearbeitet von moerf94 am Mi 19.01.11 17:47, insgesamt 2-mal bearbeitet
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 18.01.11 23:28
Moin und  im Forum!
Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:
1.2 Beiträge: | Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...] |
Einfach oben bei Deinem ersten Beitrag auf  oder  klicken und den Titel ändern. Danke Dir!
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mi 19.01.11 00:59
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.Button1Click(Sender: TObject); type TColorRec=Record Red:Byte; Green:Byte; Blue:Byte; Alpha:Byte; end; var textcolor:String; begin if Colordialog1.Execute then begin textcolor := '"#' +IntToHex(TColorRec(Colordialog1.Color).Red,2) + IntToHex(TColorRec(Colordialog1.Color).Green,2) + IntToHex(TColorRec(Colordialog1.Color).Blue,2) +'"'; end; end; |
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 19.01.11 07:43
Oder ganz einfach: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.Button1Click(Sender: TObject); var textcolor: String; begin if Colordialog1.Execute then begin textcolor := '"#' + IntToHex(GetRValue(Colordialog1.Color), 2) + IntToHex(GetGValue(Colordialog1.Color), 2) + IntToHex(GetBValue(Colordialog1.Color), 2) + '"'; ... end; end; |
|
|
moerf94 
Hält's aus hier
Beiträge: 3
|
Verfasst: Mi 19.01.11 18:07
So das klappt aber ich habe noch ein Problem. So erst mal der Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; Memo2: TMemo; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; ColorDialog1: TColorDialog; Button10: TButton; procedure Button4Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); private textcolor:string; bgcolor:string;
public end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button4Click(Sender: TObject); begin form1.close; end;
procedure TForm1.Button1Click(Sender: TObject); begin if opendialog1.Execute then memo1.Lines.LoadFromFile(opendialog1.filename); end;
procedure TForm1.Button9Click(Sender: TObject); begin memo1.Clear; end;
procedure TForm1.Button2Click(Sender: TObject); begin memo2.clear; memo2.Lines.Add('<html>'); memo2.Lines.Add(' <head>'); memo2.Lines.Add(' <title> </title>'); memo2.Lines.Add(' </head>'); memo2.Lines.Add(' <body text='+ textcolor +' bgcolor="#FFFFFF">'); memo2.Lines.Add(memo1.Text); memo2.Lines.Add(' </body>'); memo2.Lines.Add('</html>'); end;
procedure TForm1.Button3Click(Sender: TObject); begin if savedialog1.Execute then memo2.Lines.LoadFromFile(opendialog1.filename); end;
procedure TForm1.Button10Click(Sender: TObject); begin memo2.clear; end;
procedure TForm1.FormCreate(Sender: TObject); begin textcolor:='"#000000"'; bgcolor:='"#FFFFFF"'; end;
procedure TForm1.Button5Click(Sender: TObject); var textcolor:String; begin if Colordialog1.Execute then begin textcolor := '"#' + IntToHex(GetRValue(Colordialog1.Color), 2) + IntToHex(GetGValue(Colordialog1.Color), 2) + IntToHex(GetBValue(Colordialog1.Color), 2) + '"'; end; memo2.clear; memo2.Lines.Add('<html>'); memo2.Lines.Add(' <head>'); memo2.Lines.Add(' <title> </title>'); memo2.Lines.Add(' </head>'); memo2.Lines.Add(' <body text='+ textcolor +' bgcolor="#FFFFFF">'); memo2.Lines.Add(memo1.Text); memo2.Lines.Add(' </body>'); memo2.Lines.Add('</html>'); end;
procedure TForm1.Button6Click(Sender: TObject); var bgcolor:String; begin if Colordialog1.Execute then begin bgcolor := '"#' + IntToHex(GetRValue(Colordialog1.Color), 2) + IntToHex(GetGValue(Colordialog1.Color), 2) + IntToHex(GetBValue(Colordialog1.Color), 2) + '"'; end; memo2.clear; memo2.Lines.Add('<html>'); memo2.Lines.Add(' <head>'); memo2.Lines.Add(' <title> </title>'); memo2.Lines.Add(' </head>'); memo2.Lines.Add(' <body text='+ textcolor +' bgcolor='+ bgcolor +'>'); memo2.Lines.Add(memo1.Text); memo2.Lines.Add(' </body>'); memo2.Lines.Add('</html>');
end;
end. |
Wenn ich nun eine die Hintergrundfarbe änder möchte, dann setzt Delphi für textcolor wieder denn start wert ein sprich :"#000000".
Kann ich den wert der Variable denn so lange speichern bis er geändert wird oder das Programm geschlossen wird?
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mi 19.01.11 18:10
Das ist weil du einmal textcolor als lokale und einmal als globale variable definiert hast. Dadurch bevorzugt Delphi immer die lokale, die nach ende der Prozedur gelöscht wird. Lösung: Schmeiß die Lokale definition raus und fertig.
Falls du jetzt nicht weißt das lokale und globale variablen sind:
Christians Crashkurs
Delphi-Wikibook
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
moerf94 
Hält's aus hier
Beiträge: 3
|
Verfasst: Mi 19.01.11 18:24
Ja super hat geklappt.
Nun möchte ich mein Programm ein Bisschen verbessern dazu möchte ich das man den Code Für ein bild eingeben kann. Also so in etwas das man im memofeld 2 mit dem Cursor an eine stelle spring und dann auf einen Button drückt. Das dann ein Feld geöffnet wird wo man ein bild auswählen kann und wir an der stelle wo der Cursor ist der html code mit den link zur Datei angegeben ist. Geht das überhaupt oder mute ich mir da zuviel zu?
|
|
ALF
      
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: Do 20.01.11 13:44
moerf94 hat folgendes geschrieben : | Also Ich muss ein HTML "Wandler" erstellen. .... |
Machbar ist alles, aber wer kommt auf solche Ideen? Eine Html Seite besteht aber nicht nur aus die paar Zeilen!
Oder jetzt, wie Du es möchtest, noch ein Bild einfügen. Irgendwann kommt text, position und und und, dazu!
Ist halt nur so ne Frage von mir!
Zurück zu Deiner Frage:
Entweder Du erstellst Dir ne neue Form und bastellst Dir einen eigenen Explorer, oder Du rufst in Deinem Prog den Winexplorer dafür auf und mit hilfe von DragDrop, Copy/Paste fügst Du den String an der Stelle ein!
Aber, wie hier und in anderen Foren gilt die Regel:
Neue Frage, neuer Thread
Gruss Alf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
|
|
|