![]() |
TMemo ersetzen
Hallo zusammen,
ich habe ein Werkzeug entwickelt, was einem User die Textbearbeitung (Schneiden / Ersetzen von Textbausteinen) visuell in mehreren TMemo-Komponenten angezeigt hat. Es ist aber mittlerweile so, dass kaum User drauf schaut und das Tool automatisiert die Dateien verarbeitet. Jetzt möchte ich das Tool schneller machen, also einige VCLs ersetzen. Gerne würde ich die TMemo-Komponenten ersetzen und das durch ein TFileStream, TStringList oder??? Wobei ich einfach den gesamten Quellcode nicht mehr ändern möchte, sondern nur die TMemo entfernen will und eine nonVCL Komponente unter gleichem Namen verwenden möchte. Was würdet ihr denn verwenden? Gibt es einen TMemo Ersatz? Beispielweise möchte ich vermeiden: memo1.linesdurch Memo_Verzeichnis_Inhalt.Add()zu ersetzen. Versucht habe ich TMemo durch TStrings zu ersetzen. Bekomme aber oft "abstrakter Fehler" als Ergebnis. mfg JK |
AW: TMemo ersetzen
Statt TStrings einfach mal TStringlist versuchen :)
|
AW: TMemo ersetzen
Lines vom TMemo sind eigentlich "nur" TStrings. Wenn Du alles, was auf Lines zugreift durch 'ne TStringList ersetzt, sollte das problemlos funktionieren.
|
AW: TMemo ersetzen
TStrings ist der "abstrakte" Vorfahre aller seiner Nachfahren. :angle:
Der kann selber nichts, deswegen auch abstract, aber er ist eine gute "einheitliche" Schnittstelle zu Allem mit "ähnlichen" Funktionen. TStringList ist intern 'ne Liste aus vielen Strings. TMemoStrings, das versteckt intern im TMemo, und ist eine Schnittstelle/Weiterleitung zu den Zeilen des MEMO. In TListBox, TComboBox, TQuery.SQL vieler DB-Komponenten usw. verstecken sich ebenfalls entsprechende Weiterleitungen. |
AW: TMemo ersetzen
Was eine Möglichkeit wäre:
Delphi-Quellcode:
durch
Type
myMemo : tMemo;
Delphi-Quellcode:
Zu ersetzen.
Type
myMemo:Tstrings; begin myMemo:=Tstringlist.Create; allerdings hast Du dann z.B. die
Delphi-Quellcode:
oder
CaretPos
Delphi-Quellcode:
nicht. Dann ist es u.U. besser mit einem unsichtbaren Memo zu arbeiten.
SelLength,SelStart, SelText
Gruß K-H |
AW: TMemo ersetzen
hi,
ich hab jetzt doch zu wenig Ahnung davon. Aber könnte es Dir helfen, vor der Verarbeitung von den Memo/RTF/Combo/Listbox-Komponenten diese mit
Delphi-Quellcode:
einfzufassen?
memo1.lines.BEGINupdate;
// jetzt Strings Bearbeiten memo1.lines[i] := memo1.lines[i] + 'blablabla'; //und nachher mit memo1.lines.ENDupdate; // abschließen. - Fertig das könnte evtl Deine Geschwindigkeitsprobleme beheben, da die Anzeige nicht andauernd bei jedem Zugriff aktualisiert werden muß. |
AW: TMemo ersetzen
Hallo,
wird denn TMemo "missbraucht" für String-Operationen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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 by Thomas Breitkreuz