AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TMemo ersetzen

Ein Thema von Keflock · begonnen am 22. Nov 2016 · letzter Beitrag vom 24. Nov 2016
Antwort Antwort
Keflock

Registriert seit: 23. Nov 2006
17 Beiträge
 
Delphi 2007 Enterprise
 
#1

TMemo ersetzen

  Alt 22. Nov 2016, 16:09
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.lines
durch
Memo_Verzeichnis_Inhalt.Add()
zu ersetzen.

Versucht habe ich TMemo durch TStrings zu ersetzen. Bekomme aber oft "abstrakter Fehler" als Ergebnis.


mfg
JK
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: TMemo ersetzen

  Alt 22. Nov 2016, 16:30
Statt TStrings einfach mal TStringlist versuchen
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: TMemo ersetzen

  Alt 22. Nov 2016, 16:40
Lines vom TMemo sind eigentlich "nur" TStrings. Wenn Du alles, was auf Lines zugreift durch 'ne TStringList ersetzt, sollte das problemlos funktionieren.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: TMemo ersetzen

  Alt 22. Nov 2016, 16:43
TStrings ist der "abstrakte" Vorfahre aller seiner Nachfahren.
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: TMemo ersetzen

  Alt 22. Nov 2016, 18:06
Was eine Möglichkeit wäre:
Delphi-Quellcode:
Type
  myMemo : tMemo;
durch
Delphi-Quellcode:
Type
  myMemo:Tstrings;

begin
  myMemo:=Tstringlist.Create;
Zu ersetzen.
allerdings hast Du dann z.B. die CaretPos oder SelLength,SelStart, SelText nicht. Dann ist es u.U. besser mit einem unsichtbaren Memo zu arbeiten.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von JanWe
JanWe

Registriert seit: 23. Mär 2015
Ort: NRW
78 Beiträge
 
Delphi 7 Personal
 
#6

AW: TMemo ersetzen

  Alt 22. Nov 2016, 22:13
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:
memo1.lines.BEGINupdate;
// jetzt Strings Bearbeiten
memo1.lines[i] := memo1.lines[i] + 'blablabla'; //und nachher mit
memo1.lines.ENDupdate; // abschließen. - Fertig
einfzufassen?

das könnte evtl Deine Geschwindigkeitsprobleme beheben, da die Anzeige nicht andauernd bei jedem Zugriff aktualisiert werden muß.
Jan
Allen demnächst ein gutes 2023!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TMemo ersetzen

  Alt 24. Nov 2016, 05:55
Hallo,
wird denn TMemo "missbraucht" für String-Operationen?
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz