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 1 von 2  1 2      
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#1

Im Memo Text an Cursor Position einfügen

  Alt 14. Jul 2004, 13:33
Hi Leute,

eigentlich sollte es ja ganz einfach sein in einem TMemo, ein Text an der aktuellen Cursor Position einzufügen.
Allerdings habe ich keine Methode insert oder ähnliches gefunden.
Jetzt habe ich mir gedacht :
Code:
Var sCode : String;
    sTmp : String;
begin
    sCode := 'blabla';
    if mem_Msg.SelLength = 0 then begin
      sTmp := mem_Msg.lines.Text;
      Insert(sCode,sTmp,mem_Msg.SelStart);
      mem_Msg.Lines.Text := sTmp;
      // Focus auf Eingabe-Feld
      mem_Msg.SetFocus;
      // markierung löschen und Cursor hinter das letzte Zeichen
      mem_Msg.SelStart := mem_Msg.SelStart + Length(sCode);
      // 
    end
    else begin

    end;
Leider funktioniert das ganze nicht sehr gut, weil mem_Msg.lines.Text ja auch noch Steuerzeichen für Zeilenumbüche und ähnliches enthält.

Schön wäre es auch wenn jemand auch eine passende Lösung hat, wenn den SelLength des Memos > 0 ist, dann soll natürlich der markierte Text ersetzt werden.

Danke,
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
teebee

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

Re: Im Memo Text an Cursor Position einfügen

  Alt 14. Jul 2004, 14:20
Spontan fiele mir noch ein, über die Zwischenablage zu gehen und den Text in das Memo zu pasten.

[edit]Im PSDK habe ich noch EM_REPLACESEL gefunden, damit geht es auch ohne Zwischenablage[/edit]
[edit2] Das entspricht übrigens der Methode SetSelTextBuf von TMemo[/edit2]

Gruß, teebee
  Mit Zitat antworten Zitat
Rackergen2

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

Re: Im Memo Text an Cursor Position einfügen

  Alt 14. Jul 2004, 14:23
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;
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Im Memo Text an Cursor Position einfügen

  Alt 14. Jul 2004, 14:53
hi,

genau das wars danke, das was Du jetzt gerade noch eingefügt hattest, habe ich auch gerade selbst rausgefunden

Nochmal danke
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Rackergen2

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

Re: Im Memo Text an Cursor Position einfügen

  Alt 14. Jul 2004, 14:54
Zitat von DataCool:
das was Du jetzt gerade noch eingefügt hattest, habe ich auch gerade selbst rausgefunden
Naja, wollte es wenigstens vollständig haben
  Mit Zitat antworten Zitat
teebee

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

Re: Im Memo Text an Cursor Position einfügen

  Alt 15. Jul 2004, 09:38
Warum so kompliziert? Mit SetSelTextBuf oder desm Setzen von SelText geht das viel einfacher...

Gruß, teebee
  Mit Zitat antworten Zitat
Rackergen2

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

Re: Im Memo Text an Cursor Position einfügen

  Alt 15. Jul 2004, 13:33
Zitat von teebee:
Warum so kompliziert? Mit SetSelTextBuf oder desm Setzen von SelText geht das viel einfacher...

Gruß, teebee
Laber nicht, schreib uns hier ein Beispiel!
  Mit Zitat antworten Zitat
teebee

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

Re: Im Memo Text an Cursor Position einfügen

  Alt 15. Jul 2004, 17:40
Naja, der Eigenschaft SelText einen Wert zuzuweisen, sollte doch nicht so schwierig sein...
Memo1.SelText := 'Das hier wird eingefügt!'; BTW:
Zitat von OH:
Die Eigenschaft SelText gibt den markierten Textbereich des Eingabefeldes an.

property SelText: string;

Beschreibung

Durch Lesen von SelText läßt sich der Wert des markierten Textes ermitteln. Setzen Sie SelText, wenn der markierte Text durch einen neuen String ersetzt werden soll. Wenn keine Markierung vorhanden ist, das Eingabefeld aber den Fokus besitzt, setzen Sie SelText, um einen neuen String an der Cursorposition in den Text einzufügen.
Gruß, teebee
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Im Memo Text an Cursor Position einfügen

  Alt 15. Jul 2004, 18:05
Hi,

danke da kann man wieder nur sagen :

RTFM (Für alle die es nicht wissen: Read the fucking manuel)

Wer lesen kann ist klar im Vorteil
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Rackergen2

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

Re: Im Memo Text an Cursor Position einfügen

  Alt 15. Jul 2004, 21:47
Zitat von teebee:
[...]
Zitat von OH:
[...] das Eingabefeld aber den Fokus besitzt [...]
[...]
Ja, WENN! Wenn ich aber auf einen Button klicke, hat das Eingabefeld den Fokus nicht...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:29 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