AGB  ·  Datenschutz  ·  Impressum  







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

Im Memo Text an Cursor Position einfügen

Ein Thema von DataCool · begonnen am 14. Jul 2004 · letzter Beitrag vom 30. Mai 2011
Antwort Antwort
Seite 2 von 2     12   
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#11

Re: Im Memo Text an Cursor Position einfügen

  Alt 15. Jul 2004, 22:58
Tja, anscheinend hast Du es nicht ausprobiert...
(Das Memo merkt sich die Selection, auch wenn es den Fokus verliert.)

Gruß, teebee
  Mit Zitat antworten Zitat
Rackergen2

Registriert seit: 13. Jul 2004
99 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Im Memo Text an Cursor Position einfügen

  Alt 16. Jul 2004, 03:19
[OT] Dann spinnt die OH...[/OT]
  Mit Zitat antworten Zitat
manstore

Registriert seit: 24. Mär 2003
3 Beiträge
 
#13

AW: Re: Im Memo Text an Cursor Position einfügen

  Alt 29. Mai 2011, 21:56
Delphi-Quellcode:
const
  InsertText = 'test'; //Der String zum Einfügen
var
  MemoText: string; //Eine variable für Memo1.Text
  Select: Integer; //Position des Selektionsbegins
begin
  MemoText:=Memo1.Text;
  Select:=Memo1.SelStart; //Selektionsbeginn zwischenspeichern

  if Memo1.SelLength>0 then
  begin
    Delete(MemoText, Select+1, Memo1.SelLength); //Selektiertes löschen
  end;

  Insert(InsertText, MemoText, Select+1); //neuen Text einfügen
  Memo1.Text:=MemoText; //Text zurück zu Memo1

  Memo1.SelStart:=Select; //Selektionsbeginn wiederherstellen
  Memo1.SelLength:=length(InsertText); //neuen Text markieren (nicht sichtbar, da Memo nicht Fokussiert ist)
end;
Ich hoffe, das hilft... Bei mir hat es geklappt...

Die Markierung soll hinter das letze Zeichen? Kein Problem!
Delphi-Quellcode:
const
  InsertText = 'test'; //Der String zum Einfügen
var
  MemoText: string; //Eine variable für Memo1.Text
  Select: Integer; //Position des Selektionsbegins
begin
  MemoText:=Memo1.Text;
  Select:=Memo1.SelStart; //Selektionsbeginn zwischenspeichern

  if Memo1.SelLength>0 then
  begin
    Delete(MemoText, Select+1, Memo1.SelLength); //Selektiertes löschen
  end;

  Insert(InsertText, MemoText, Select); //neuen Text einfügen
  Memo1.Text:=MemoText; //Text zurück zu Memo1

  Memo1.SelStart:=Select+length(InsertText); //Selektionsbeginn hinter neuem Text wiederherstellen
  Memo1.SelLength:=0; //Selektion auf 0 beschränken
end;
Hallo Rackergen2, es muss heissen:

"Insert(InsertText, MemoText, Select +1); //neuen Text einfügen"
ansonsten setzt er den Text immer an die vorletzte Stelle.

Gruß

Geändert von manstore (29. Mai 2011 um 21:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Re: Im Memo Text an Cursor Position einfügen

  Alt 30. Mai 2011, 08:48
SelText wurde schonmal genannt ... dieses Ersetzt die Selction durch den angegebenen Text, bzw. liest diese aus.
Delphi-Quellcode:
const
  InsertText = 'test'; //Der String zum Einfügen
var
  MemoText: string; //Eine variable für Memo1.Text
  Select: Integer; //Position des Selektionsbegins
begin
  MemoText:=Memo1.Text;
  Select:=Memo1.SelStart; //Selektionsbeginn zwischenspeichern

  if Memo1.SelLength>0 then
  begin
    Delete(MemoText, Select+1, Memo1.SelLength); //Selektiertes löschen
  end;

  Insert(InsertText, MemoText, Select+1); //neuen Text einfügen
  Memo1.Text:=MemoText; //Text zurück zu Memo1

  Memo1.SelStart:=Select; //Selektionsbeginn wiederherstellen
  Memo1.SelLength:=length(InsertText); //neuen Text markieren (nicht sichtbar, da Memo nicht Fokussiert ist)
end;
ergibt also
Delphi-Quellcode:
begin
  Memo1.SelText := InsertText;
  Memo1.SelStart := Memo1.SelStart + Memo1.SelLength;
  //Memo1.SelLength := 0; // wird schon durch SelStart auf 0 gesetzt
end;
und um den Cursor hinter den eingefügten Text zu setzen
Delphi-Quellcode:
begin
  Memo1.SelText := InsertText;
  Memo1.SelStart := Memo1.SelStart + Memo1.SelLength;
  //Memo1.SelLength := 0; // wird schon durch SelStart auf 0 gesetzt
end;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 00:05 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