Autor Beitrag
moerf94
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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:
ausblenden volle Höhe Delphi-Quelltext
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
    { Private-Deklarationen }
       textfarbe:string;

  public
    { Public-Deklarationen }
  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 user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconMartok: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 18.01.11 23:28 
Moin und :welcome: 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 user defined image oder user defined image 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mi 19.01.11 00:59 
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 19.01.11 07:43 
Oder ganz einfach:
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 19.01.11 18:07 
So das klappt aber ich habe noch ein Problem. So erst mal der Code:

ausblenden volle Höhe Delphi-Quelltext
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
    { Private-Deklarationen }
       textcolor:string;
       bgcolor:string;

  public
    { Public-Deklarationen }
  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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Do 20.01.11 13:44 
user profile iconmoerf94 hat folgendes geschrieben Zum zitierten Posting springen:
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 :wink:

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!