AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Cursor / Caret in einem RichEdit / TMemo setzen bzw. bewegen

Cursor / Caret in einem RichEdit / TMemo setzen bzw. bewegen

Ein Thema von stephan007 · begonnen am 14. Jun 2007
Antwort Antwort
stephan007

Registriert seit: 2. Mär 2007
48 Beiträge
 
#1

Cursor / Caret in einem RichEdit / TMemo setzen bzw. bewegen

  Alt 14. Jun 2007, 15:48
Hallo!

Ich habe folgendes Problem:

Ich habe ein Fenster (ist ein TMemo), in welches Text geschrieben wird.
Nun soll der Cursor und das Fenster sich folgend verhalten:
der Cursor befindet sich an der "Eingabeaufforderung" bzw. hinter dem letzten dargestellten zeichen und wenn der Inhalt größer als das Fenster ist, dann wird der Inhalt nach oben geschoben, damit der Cursor zumindest immer am unteren Rand angezeigt wird.
Das ist also vergleichbar mit z.B. dem Windows Commandpromt oder bei jeder anderen Eingabemaske auch.

Ich habe zwar eine "alte" Lösung, die hat nur nun folgendes Problem: Mein Programm ist ein Executable, das beliebig viele Instanzen eines Tools aufmachen kann. In jedem dieser Tools kann bzw. soll das Fenster / Terminal aufrufbar sein. Das ganze läuft mit TCP/IP und daher unter Verwendung von INDI, welches jeder neuen Instanz des Tools klarerweise einen Thread verpasst, in welchem dieses läuft.

Nun schlägt sich meine bisherige Lösung aber mit diesem Threadhandling, soll heißen, wenn ich meine Cursorfunktionalität ausklammere, dann funktioniert das Programm, sonst kann es bei Beendigung des Programms zu einem Deadlock kommen.

Gibt es eine Möglichkeit einer derartigen Realisierung, die auch mit Threads zuverlässig funktioniert. Also die Bewegung und Positionierung des Cursors im Fenster. Geht das auch ohne Berechnung der Inhalte, Fenstergrößen, Canvas.Textwidth etc. Also ohne dass (zig) WindowsMessages gefeuert werden? Denn genau das verursacht den Deadlock beim Terminieren, dass permanent die aktuelle Cursorposition ermittelt werden muss, also ob sich die mittlerweile durch Eingabe oder so verändert hat. Dadurch kracht dann diese Berechnung und damit die WindowsMessages mit dem Thread zusammen.

Kurz gesagt: Es der Cursor soll sich so verhalten, wie in einem Commandpromt, immer bei der aktuellen Eingabeaufforderung und wenn auf eine Eingabe Daten angezeigt werden (vgl.Ping) immer an die richtige Position "mitwandern". Wie der Commandpromt eben, bei einem Listcommand oder einer einfachen Eingabe.

Hätte jemand von Euch da bitte eine Idee, wie ich das realisieren könnte, mit möglich sparsamer Anzahl an WindwosMessages? Oder vielleicht auch ohne (wenn das überhaupt geht).

Hab nämlich schon einige Zeit damit verbracht, den Fehler zu lokalisieren.

Stephan.
  Mit Zitat antworten Zitat
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 22:20 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