Einzelnen Beitrag anzeigen

Benutzerbild von Radon
Radon

Registriert seit: 15. Mai 2006
29 Beiträge
 
#1

Memo Zeile lässt sich nicht komplett auslesen

  Alt 28. Mär 2007, 18:47
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?
  Mit Zitat antworten Zitat