AGB  ·  Datenschutz  ·  Impressum  







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

cursor in der mitte des textes

Ein Thema von gauggi · begonnen am 21. Apr 2006 · letzter Beitrag vom 21. Apr 2006
Antwort Antwort
gauggi

Registriert seit: 18. Apr 2006
177 Beiträge
 
#1

cursor in der mitte des textes

  Alt 21. Apr 2006, 15:34
Hallo!

Ich möchte, dass wenn Ich einen Text in ein memofeld einfüge, der Cursor in der Mitte des Textes ist. Beispiel: Ich füge HTML Tags mit meinem Programm ein und dann sollte sich der Cursor hier befinden: [Cursor] Leider sieht das bei mir so aus: [Cursor]

Wie kann ich das lösen??

Danke für jede Hilfe
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: cursor in der mitte des textes

  Alt 21. Apr 2006, 15:40
Hi,
schau dir einfach mal die Funktion insert an. Mit der kannst du einen String an einer bestimmten Position in einen anderen einfügen.
Mittels length bekommst du die Länge eines Strings (damit du die Mitte berechnen kannst) und ja, an die Linie die du aus deinem Memo möchtest kommst du sicherlich schon ran (hattest ja schließlich hinten anhängen können).

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: cursor in der mitte des textes

  Alt 21. Apr 2006, 15:50
Hallo, herzlich willkommen!

Ich würde das mit

Memo1.SelStart := Memo1.SelStart - x; lösen. In eine (schlechte) Prozedur gefasst, könnte das so aussehen (der Cursor wird von hiter dem tag, zwischen die Tags gesetzt). Habe das nur schnell hingeschlampert, sorry, kannst du ja selbst optimieren und verfeinern:

Delphi-Quellcode:
procedure set_memo_cur(Memo: TMemo);
var
  i: Integer;
  Temp: string;
begin
  Temp := Memo.Lines[Memo.CaretPos.Y];

  if Length(Temp) > 0 then
  begin
    for i := Memo.SelStart downto 2 do
    begin
      if (Temp[i] = '<') and (Temp[i - 1] = '>') then
      begin
        Memo.SelStart := Memo.SelStart - i;
        Memo.SetFocus;
        break;
      end;
    end;
  end;
end;
Aufruf:

set_memo_cur(Memo1); Sieht der Memo-Text allerdings so aus, geht das nicht

Zitat:

Geht es um einen HTML-Editor, würde ich dir allerdings zum SynEdit raten, da kannst du direkt auf CaretX und CaretY zugreifen und hast gleichzeitig die ganzen Highlighter, damit der Code leserlich wird.
  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 01:34 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