AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zeile in einem Memo ersetzen

Ein Thema von loirad · begonnen am 19. Okt 2011 · letzter Beitrag vom 22. Okt 2011
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: Zeile in einem Memo ersetzen

  Alt 19. Okt 2011, 19:33
Tja, wie ersetzt man wohl eine Zeile in einer Stringliste?
Delphi-Quellcode:
Ausgabe.Lines.Delete(i);
Ausgabe.Lines.Add(Zeile);
entspricht (wenn die Zeile schon vorhanden ist)
Ausgabe.Lines[i] := Zeile; .
also
Delphi-Quellcode:
if i < Ausgabe.Lines.Count then
  Ausgabe.Lines.Add(Zeile)
else
  Ausgabe.Lines[i] := Zeile;
oder man macht das Add vor der inneren Schleife, dann muß man nicht sändig prüfen.


Aber da ein Memo nunmal nicht dafür gedacht ist, daß man sowas damit macht ......


BeginUpdate und eventuell noch DoubleBuffered aktivieren ... vielleicht wird es dann besser.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (19. Okt 2011 um 19:35 Uhr)
  Mit Zitat antworten Zitat
ASM

Registriert seit: 15. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Zeile in einem Memo ersetzen

  Alt 19. Okt 2011, 19:52
Kann man auch so machen:
Code:
// ersetzt in Memo1 die Zeile (aRow), auf welcher der Cursor aktuell steht (bzw. stand, bevor der Button gedrückt wurde)
procedure TForm1.Button1Click(Sender: TObject);
var
  aRow: integer;
begin
  with memo1 do
  begin
    aRow := SendMessage(Handle, EM_LINEFROMCHAR, SelStart, 0);
    SelStart := Perform(EM_LINEINDEX, aRow, 0);
    Perform(EM_SCROLLCARET, 0, 0);
    SelLength := length(lines[aRow]);
    if aRow=lines.Count then
      SelText := 'Diese Zeile wurde ersetzt'
    else
     SelText := 'Diese Zeile wurde ersetzt'#13;
  end;
end;
  Mit Zitat antworten Zitat
loirad

Registriert seit: 25. Nov 2009
135 Beiträge
 
Delphi 6 Professional
 
#3

AW: Zeile in einem Memo ersetzen

  Alt 22. Okt 2011, 14:50
Super-himitsu's Vorschlag funktioniert perfekt - danke!!!!!!!!!!!
Wer Fehler findet darf sie behalten!
  Mit Zitat antworten Zitat
ASM

Registriert seit: 15. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Zeile in einem Memo ersetzen

  Alt 22. Okt 2011, 18:01
Der von himitsu vorgeschlagene Weg setzt natürlich voraus, dass der Wert von i bereits bekannt und als solches im Programm fixiert ist - es sei denn, man fragt den Wert von i über ein Editfeld oder ähnliches ab.

Der alternative Vorschlag (von mir) dagegegen erlaubt ein völlig freies, dynamisches Vorgehen, da die auszutauschende Zeile erst zum aktuellen Zeitpunkt durch die nicht vorhersagbare, ad hoc erfolgte Plazierung des Cursors identifiziert wird. Notwendigerweise ist der dazu notwendige Code etwas komplexer.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:37 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