Autor Beitrag
Gabriel
Hält's aus hier
Beiträge: 9

XP Home (Op9)
Delphi 7, PHP
BeitragVerfasst: Mi 05.09.07 21:18 
Hallo,

ich würde gerne eine etwas längeren Text (ca. 40 MB) von extern per Zwischenablage in eine Memo reinkopieren - der Rechner arbeitet kurz, kopiert aber nichts. Einfügen in andere Programme funktioniert. Ist da die maximale Länge eines Memo-Feldes erschöpft?

Gruß,
Gabriel
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 05.09.07 21:45 
Unter Windows 9x ist der Text für dieses Steuerelement auf 64 K begrenzt.

WIN XP:
Das Memofeld enthält einen String, der dem Steuerelement zugeordnet ist.
In Win32 wird am häufigsten der Typ AnsiString (auch als langer String bezeichnet) verwendet.
Länge bis 2 GB.
Gabriel Threadstarter
Hält's aus hier
Beiträge: 9

XP Home (Op9)
Delphi 7, PHP
BeitragVerfasst: Mi 05.09.07 21:53 
Ich verwende Win XP (32 Bit) und Delphi 7. Dann sollte es ja eigentlich keine Probleme geben, oder?

An was könnte das Problem sonst noch liegen?
Gabriel Threadstarter
Hält's aus hier
Beiträge: 9

XP Home (Op9)
Delphi 7, PHP
BeitragVerfasst: Do 06.09.07 18:05 
Ich habe jetzt noch weiter rumprobiert - wenn ich den Text auf 2 mal reinkopiere geht es einwandfrei, nur auf einmal nicht. Aber diese Beschränkung der Windows-Zwischenablage habe ich bisher nur bei Delphi-Programmen als Ziel feststellen können. Kann man das irgendwie umgehen?
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 06.09.07 19:06 
Nimm ein anderes Clipboard-Programm z.B. DITTO:

prdownloads.sourcefo..._15_1_0.exe?download


INFO:
Da die TDBMemo-Komponente umfangreiche Datenmengen anzeigen kann, wird zur Laufzeit möglicherweise einige Zeit benötigt, bis der gesamte Text dargestellt ist. Um die Zeit, die für den Bildlauf durch die Datensätze erforderlich ist, zu verkürzen, verfügt TDBMemo über die Eigenschaft AutoDisplay. Diese bestimmt, ob die Daten, auf die zugegriffen wird, automatisch angezeigt werden. Wenn Sie AutoDisplay auf False setzen, zeigt TDBMemo anstelle der tatsächlichen Daten den Feldnamen an. Durch einen Doppelklick im Steuerelement werden die tatsächlichen Daten eingeblendet.
Gabriel Threadstarter
Hält's aus hier
Beiträge: 9

XP Home (Op9)
Delphi 7, PHP
BeitragVerfasst: Fr 07.09.07 10:02 
Ich möchte ungern externe Programme verweden, wenn es doch eigentlich mit Bordmitteln fukntionieren müsste.

Zu AutoDisplay: Wo kann man das einstellen? Weder zeigt mein Objektinspektor "AutoDisplay" an, noch ist der Befehl "memo1.autodisplay" verfügbar...
Aber wenn ich die große Datenmenge einfüge entsteht kein Bildlauf, der Rechner arbeitet nur für ein Sekunde und dann war es dass - das Programm macht nichts mehr und man kann weiterarbeiten als sei nichts gewesen.
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 07.09.07 14:04 
Memo funktioniert bei mir.
Teste doch mal ein RichEdit (evtl.Plaintext:=true,Maxlength:=0) oder DBMemo.

Alle 3 funktionieren mit 32MB grossen Files - Ladezeit ca.20-40sec - grössere habe ich leider nicht.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Button7Click(Sender: TObject);
begin
DbMemo1.lines.LoadFromFile('test.txt'); //oder DbMemo1.PasteFromClipboard;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
Richedit1.lines.LoadFromFile('test.txt');//oder Richedit1.PasteFromClipboard;
end;