![]() |
Delphi-Version: 2010
Delphi an das Ende eines memo's einen doppelpunkt setzen
Hallo,
ich möchte eine Liste abarbyten. Also man hat quasi einen Text der in etwa so aussehen könnte:
Code:
Ohne jetzt zu erwähnen warum ich das so möchte, sollte es nach Bearbeitung der routine dann so aussehen:
hallo mein name ist
ich bin 99 jahre alt ich liebe pizza außerdem asdasdasd obendrauf gefallen mir
Code:
Jemand eine Idee wie das machbar wäre?
hallo mein name ist:
ich bin 99 jahre alt: ich liebe pizza: außerdem asdasdasd: obendrauf gefallen mir: Habs so versucht:
Code:
procedure TForm1.pSetzedoppel;
var i : Integer; begin for i := 0 to memo1.Lines.count - 1 do begin memo1.Lines[i] := memo1.Lines[i] + ':'; end; end; Ist aber völliger Schwachsinn! Also bitte um Denkanstöße :) MfG |
AW: Delphi an das Ende eines memo's einen doppelpunkt setzen
Zitat:
|
AW: Delphi an das Ende eines memo's einen doppelpunkt setzen
Das ist total OFF-Topic, aber total geil deswegen muss das mal gesagt werden^^
Zitat:
|
AW: Delphi an das Ende eines memo's einen doppelpunkt setzen
Zitat:
Habs mit 1565 Zeilen versucht, dauert ewig! |
AW: Delphi an das Ende eines memo's einen doppelpunkt setzen
'ne TStringList nehmen
abarbeiten und dann in's TMemo kopieren sollte einiges schneller sein |
AW: Delphi an das Ende eines memo's einen doppelpunkt setzen
Füge diese Zeilen ein:
Delphi-Quellcode:
Memo1.Lines.BeginUpdate
... //Bearbeitung ... Memo1.Lines.EndUpdate; |
AW: Delphi an das Ende eines memo's einen doppelpunkt setzen
Zitat:
Code:
Gibts sonst noch andere methoden um eine liste abzuarbyten?
procedure TForm1.pSetzedoppel;
var i : Integer; begin progressbar1.position := 0; for i := 1 to memo1.Lines.count do begin Memo1.Lines.BeginUpdate; memo1.Lines[i] := memo1.Lines[i] + ':'; progressbar1.position := i; application.ProcessMessages; Memo1.Lines.EndUpdate; end; end; die performance würde ich schon gerne erhöhen. MfG |
AW: Delphi an das Ende eines memo's einen doppelpunkt setzen
Zitat:
Delphi-Quellcode:
procedure TForm1.pSetzedoppel;
var i : Integer; begin progressbar1.position := 0; Memo1.Lines.BeginUpdate; for i := 1 to memo1.Lines.count do begin memo1.Lines[i] := memo1.Lines[i] + ':'; progressbar1.position := i; application.ProcessMessages; end; Memo1.Lines.EndUpdate; end; |
AW: Delphi an das Ende eines memo's einen doppelpunkt setzen
Hallo,
BeginUpdate vor der Schleife EndUpdate noch der Schleife. Grüße Klaus |
AW: Delphi an das Ende eines memo's einen doppelpunkt setzen
Erstmal ist es totaler "Schachsinn" überhaupt soviele Zeilen in einem Memo verarbeiten zu wollen.
Wer will sich das alles ansehn? TStringList geht schneller, da hier jede Zeile "einzeln" ist und damit alles schnell verarbeitet wird. (Memo.Text > StringList.Text > die StringList verarbeiten > StringList.Text > Memo.Text) TMemo ist nunmal nicht für eine massenhafte String-Verarbeitung geeignet, denn dort befindet sich alles in einem Speicherblock, also für das Einfügen eines Zeichens am Anfang werden alle nachfolgenden Zeichen verschoben. und bei 1 Mio. Zeilen muß da viel verschoben werden. Ohne BeginUpdate wird dabei auch noch jedesmal die GUI geupdatet, was dann nochmals massig Rechenleistung verbrät. usw. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:11 Uhr. |
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