Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Text zerlegen (https://www.delphipraxis.net/33162-text-zerlegen.html)

glkgereon 2. Nov 2004 14:36

Re: Text zerlegen
 
Zitat:

bei der Zeile mit dem Copy gibt er folgenden Fehler aus:
Operator oder Semikolon fehlt
hast du den code so anbgeschrieben? :roll:

also, diese beiden befehle:

TMemo(findcomponent('Memo'+inttostr(i)))
copy(Memo.Lines.Text,0,510)

habbich erstmal einzeln erklärt....
und dann die kombination....

also, hier nochma der code:

Delphi-Quellcode:
for i:=1 to length(Memo.Lines.Text) div 510 do
  begin   
  TMemo(findcomponent('Memo'+inttostr(i))).Lines.Text:=copy(Memo.Lines.Text,0,510);   
  delete(memo1.Lines.Text,0,510);
  end;   
TMemo(findcomponent('Memo'+inttostr(i+1))).Lines.Text:=Memo.Lines.Text;
Memo.Clear;
deine ausgangsmemo heisst Memo und die anderen memo1, memo2, ..., memon

mirage228 2. Nov 2004 14:37

Re: Text zerlegen
 
Hi Nicodius,

Dein Vorschlag ist zwar korrekt, aber nicht sehr effektiv, da bei jedem Zuweis an Text das Memo imho neu gezeichnet wird.

So ähnlich wäre es imho besser:
Delphi-Quellcode:
  Memo2.Text := Copy(Memo1.Text, 1, 510);
mfG
mirage228

icke 2. Nov 2004 14:43

Re: Text zerlegen
 
jetzt sagt er:
bei der delete zeile:

Konstantenobjekt kann nicht als VAR-Parameter weitergegeben werden

zum richtig abschreiben:
Ich kopier sie aus dem Forum raus ;-)

pjuk 2. Nov 2004 14:45

Re: Text zerlegen
 
naja die komponenten musst du schon so ändern dass sie zu deinem source passen.
solltest nicht vergesses alles zu hinterlegen.

icke 2. Nov 2004 14:46

Re: Text zerlegen
 
und wie?
das ganze sieht bis jetzt so aus
Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Memo: TMemo;
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    Memo4: TMemo;
    Memo5: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  t1, i: integer;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
for i:=1 to length(Memo.Lines.Text) div 510 do
  begin
  TMemo(findcomponent('Memo'+inttostr(i))).Lines.Text:=copy(Memo.Lines.Text,0,510);
  delete(memo.Lines.Text,0,510);
  end;
TMemo(findcomponent('Memo'+inttostr(i+1))).Lines.Text:=Memo.Lines.Text;
Memo.Clear;
end;

end.

pjuk 2. Nov 2004 14:47

Re: Text zerlegen
 
in bezug auf was?
den code anpassen oder was meinst du?

mirage228 2. Nov 2004 14:48

Re: Text zerlegen
 
Zitat:

Zitat von icke
jetzt sagt er:
bei der delete zeile:

Konstantenobjekt kann nicht als VAR-Parameter weitergegeben werden

zum richtig abschreiben:
Ich kopier sie aus dem Forum raus ;-)

Das:
Delphi-Quellcode:
delete(memo1.Lines.Text,0,510);
kann auch nicht funktionieren, da Delphi-Referenz durchsuchenproperties (In dem Fall die property Text von Memo1.Lines) nicht als Referenzparameter (VAR oder OUT Parameter) verwendet werden können. Du musst so dann mit einer Zwischenvariable arbeiten.

So z.B.:
Delphi-Quellcode:
var
  s: string;
begin
  s := memo1.lines.text;
  delete(s, 0, 510);
  memo1.lines.text := s;
end;
mfG
mirage228

Edit: BB-Code Fehler verbessert - zum X-ten mal :mrgreen:

Nicodius 2. Nov 2004 14:51

Re: Text zerlegen
 
Delphi-Quellcode:
TMemo(findcomponent('Memo'+inttostr([b]i[/b]+1))).Lines.Text:=Memo.Lines.Text;

wie das funktioniert versteh ich nicht entweder ist i nil oder i ist nach der schleife 540 ... andere möglichkeiten gibt es nicht ..
das kann also nicht funktionieren

icke 2. Nov 2004 14:51

Re: Text zerlegen
 
sorry, aber ich bin halt noch ´n newbie

Ich checks immer noch nicht.
kann mir niemand den kompletten Quelltext schreiben?

mirage228 2. Nov 2004 14:55

Re: Text zerlegen
 
Zitat:

Zitat von Nicodius
Delphi-Quellcode:
TMemo(findcomponent('Memo'+inttostr([b]i[/b]+1))).Lines.Text:=Memo.Lines.Text;

wie das funktioniert versteh ich nicht entweder ist i nil, 0, 1 oder i ist nach der schleife 540 ... andere möglichkeiten gibt es nicht ..
das kann also nicht funktionieren

Oh, stimmt. Das Benutzen der Schleifenvariable nach der Schleife könnte glaube ich interessant werden :mrgreen:

mfG
mirage228


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz