Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Den Text von RichEdit1 nach links bewegen lassen?


bruce185 - Do 23.03.06 02:58
Titel: Den Text von RichEdit1 nach links bewegen lassen?
hi,
also ich bin grad dabei ein 10 Fingersystem zu schreiben, ich bin schon fast fertig, alles funktioniert bis auf RichEdit da gibts ein kleines Problem.
Und zwar wenn der SetFocus von RichEdit zu weit nach rechts ist, dann soll der Text bissel nach links verschoben werden, weil sonst sieht man ja nichts mer was man dann noch schreiben soll, hier mal ein Screnn das ich erstellt habt:

http://blitz-forum.de/TippTraining.png

der SetFocus befindet sich ja jetzt bei i, wenn ich weiter tippe, dann verschwindet der SetFocus nach Rechts, und das möchte ich verhindern, deshalb soll der Text dann bissel nach links wandern, so dass man immer den Text sieht wo man ein tippen soll,
ich bin euch sehr dankbar wenn man mir helfen kann, vielen dank schonmal 8)

Gruss Andreas


UGrohne - Do 23.03.06 09:37

Hallo,
und nochmal offiziel:
Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image klicken und den Titel ändern. Dank Dir!

Zu Deinem Problem: Eigentlich sollte das das EDIT doch selbst machen. Ansonsten: Es heißt nicht SetFocus, sondern Cursor. Ich hab mich beim Durchlesen mehrere Male gefragt, was Du überhaupt meinst *g*.

Viele Grüße,

Uwe


bruce185 - Sa 25.03.06 01:47

also, ich habe mal das aufgezeichnet wie ich das meine, hier könnt ihr mal kucken:

http://blitz-forum.de/video.html
oder
http://blitz-forum.de/Tipptraining.avi

also immer wenn ich ein Buchstabe drücke, verschiebt sich der SerFocus um ein Buchstabe weiter, und wenn der SetFocus ziemlich weit rechts ist, dann soll der Text ein bissel nach links verschoben werden, damit man ja weiterschreiben kann, ist es mit dem Normalen RichEdit möglich?, ich danke euch schonmal für die hilfe 8)

gruss andreas


Gausi - Sa 25.03.06 10:04

hmmm...Schwierig, mit der Standardkomponente, würde ich sagen. Auf Anhieb fallen mir zwei Möglichkeiten ein:

1. Schau mal bei Torry so, ob es da ne Laufschrift-Komponente gibt, die unterschiedliche Farben kann, und wo man die Position und das Laufen jederzeit ändern kann.

2. Mal das ganze selbst. Nimm statt Richedit ne Paintbox und male auf dem Canvas mit TextOutXY. (Oder halte ein Bitmap im Speicher mit der Originalschrift, übermale dieses Bitmap Stück für Stück und kopiere es per Bitblt auf die Paintbox, wobei du ab ner gewissen Stelle die Koordinaten änderst.)


Blackheart666 - Sa 25.03.06 10:19

Vieleicht hilft das ein wenig - WordWrap auf False.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure Rand(tcm: TCustomRichEdit; links, oben, rechts, unten: byte);
var rt: TRect;
begin
  rt := rect(links, oben, tcm.clientwidth - rechts, tcm.clientheight - unten);
  sendmessage(tcm.handle, em_setrect, 0, integer(@rt));
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Rand(Richedit1, 001000);
end;


bruce185 - Sa 25.03.06 13:07

ich danke euch, aber mit Rand(RichEdit1, 0, 0, 100, 0);
geht das nicht :cry:

und wie soll das mit PaintBox gehen?
habe leider noch nie mit PaintBox gearbeitet, kann man auch normale Textdateien öffnen und es in PaintBox anzeigen lassen? ich danke euch schonmal :?

andreas