Hi
Ich habe folgendes vor: Es existieren zwei Memofelder. In das erste trägt man so eine Art Maske ein, wobei man Variablen benutzen kann, die in eckigen Klammern stehen.
Nun sollen sie bei einem Klick auf den Button einzeln in einen temporären String gelesen werden (zeilenweise), dort dann bearbeitet werden, sprich die entsprechenden Variablen sollen ersetzt werden, dann landet das alles in das zweite Memofeld, was dann als Ausgabe dient.
Der Quellcode:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 =
class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
sETitle: TLabeledEdit;
sESize: TLabeledEdit;
sELength: TLabeledEdit;
sEText: TMemo;
sEDL: TLabeledEdit;
sEAdd: TLabeledEdit;
sELayout: TMemo;
// Das erste Textfeld, wo die Maske reingeschrieben wird
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Textfeld: TMemo;
// Das Ausgabefeld
BtnGenerate: TButton;
BtnDefault: TButton;
// Die Prozedur schreibt auf Wunsch eine vorgefertigte Maske in das Layout-Feld
procedure BtnGenerateClick(Sender: TObject);
procedure BtnDefaultClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BtnGenerateClick(Sender: TObject);
var
sTempLine, sTTitle, sTText, sTSize, sTLength, sTAdd, sTDl:
string;
sTempChar: char;
n: integer;
begin
for n := 0
to sELayout.Lines.Count - 1
do begin
sTempLine := sELayout.Lines.ValueFromIndex[n];
//ShowMessage(sELayout.Lines.ValueFromIndex[n]);
Textfeld.Lines.Add(sTempLine);
end;
end;
procedure TForm1.BtnDefaultClick(Sender: TObject);
begin
sELayout.Lines.Add('
[b][color=skyblue]{TITLE}[/color][/b]');
sELayout.Lines.Add('
');
sELayout.Lines.Add('
{TEXT}');
sELayout.Lines.Add('
');
sELayout.Lines.Add('
Größe: {SIZE}');
sELayout.Lines.Add('
[url={DL}][b][color=red]Download[/color][/b][/url]');
sELayout.Lines.Add('
');
sELayout.Lines.Add('
{ADD}');
sELayout.Lines.Add('
-----------------------------------------------');
end;
end.
Das Problem: Es werden mir bei der Zuweisung in den Temporären String Zeichen gekürzt.
Das hier:
Code:
[b][color=skyblue]{TITLE}[/color][/b]
{TEXT}
Größe: {SIZE}
[
url={
DL}][b][color=red]Download[/color][/b][/
url]
{ADD}
--------------------------------------------------------------------------------
Wird also im zweiten Memo-Ausgabefeld dazu:
Code:
skyblue]{TITLE}[/color][/b]
TEXT}
röße: {SIZE}
{
DL}][b][color=red]Download[/color][/b][/
url]
ADD}
-------------------------------------------------------------------------------
Es werden hauptsächlich Sonderzeichen unterschlagen und das erste Zeichen anscheinend überall. Was kann ich dagegen tun?