![]() |
tmemo cursor an erste stelle
ja ich nerve schon wieder
wie zur :twisted: krieg ich den cursor in die erste zeile in einem memo ??? Prob: Memo1 kann 2 Zeilen anzeigen hat aber 3 lines ( 4 inklusive der blöden leeren letzten zeile) also steht der Cursor in der 4. leren zeile !!! er soll aber in die erste und die blöde 4. zeile kann auch weg !!! HILFE !!!!! :wall: :wiejetzt: |
Re: tmemo cursor an erste stelle
quick and dirty:
Delphi-Quellcode:
Grüße vom marabu
begin
memo.SelStart := 0; // anfang der ersten zeile memo.SelStart := Length(Memo.Lines[0]); // ende der ersten zeile end; |
Re: tmemo cursor an erste stelle
das klappt so nicht ...
ich meine mein cursor ist hier
Delphi-Quellcode:
soll aber hier sein:
Zeile 1
Zeile 2 Zeile 3 Zeile 4 <---
Delphi-Quellcode:
Zeile 1 <---
Zeile 2 Zeile 3 Zeile 4 |
Re: tmemo cursor an erste stelle
Marabus Code geht, doch kommt es drauf an, wie du das aufrufst. Machst du es z.B. über einen Button, musst du den Fokus natürlich wieder auf's Memo setzen:
Delphi-Quellcode:
begin
Memo1.SelStart := 0; Memo1.SelStart := Length(Memo1.Lines[0]); Memo1.SetFocus; end; |
Re: tmemo cursor an erste stelle
... oder HideSelection auf FALSE setzen (dann sollte das Setzen von SelStart funktionieren).
|
Re: tmemo cursor an erste stelle
Zitat:
|
Re: tmemo cursor an erste stelle
also ich hab n leeres form und da das gemacht aber da funzt das auch nich !!!!
ich hab delphi 7 |
Re: tmemo cursor an erste stelle
Zitat:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin Memo1.SelStart := 0; Memo1.SelStart := Length(Memo1.Lines[0]); Memo1.SetFocus; end; end. |
Re: tmemo cursor an erste stelle
Hi Leute,
der "Cursor" ist das caret und das sieht man ja erst wenn das Memo auch den Focus hat. Vielleicht ist nicht ganz klar gewesen, dass nur eine der beiden Zeilen von mir verwendet werden sollte:
Delphi-Quellcode:
marabu
procedure TDemoForm.JumpButtonClick(Sender: TObject);
begin with Memo do begin SelStart := Length(Lines[0]); SetFocus; end; end; |
Re: tmemo cursor an erste stelle
mach mal bitte ein screenie vorher und nachher ! :chat:
|
Re: tmemo cursor an erste stelle
Liste der Anhänge anzeigen (Anzahl: 1)
schaut mal bitte
|
Re: tmemo cursor an erste stelle
Es wird immer unverständlicher, was du willst.
Wenn du nur per Knopf eine neue Zeile am Anfang vom Memo einfügen willst, dann so:
Delphi-Quellcode:
marabu
Memo.Lines.Insert(0, 'NeueZeile');
|
Re: tmemo cursor an erste stelle
Ich glaube ich weis was hier gemeint war ich habe nämlich das gleiche Problem
Mein memo kann nur 3 Zeilen anzeigen Wenn ich jetzt mehrere Zeilen einfüge zeigt mein Memo die letzten 3 Zeilen an ich will aber das der Anwender die ersten 3 Sieht Den Cursor auf die 1. Position setzen mit
Delphi-Quellcode:
funktioniert zwar aber die Scrollbar ist immer noch unten und nicht oben.
...
Memo.SelStart=0; Memo.SetFocus; Gibt es da noch ne andere Funktion? |
Re: tmemo cursor an erste stelle
Ich habs gefunden wen's interessiert
Dieser Code setzt die Scrollbar nach oben
Delphi-Quellcode:
Ciao
SendMessage(Memo1.Handle, WM_VSCROLL, SB_TOP, 0);
|
Re: tmemo cursor an erste stelle
Man(n) könnte ja auch:
Delphi-Quellcode:
MemoX.Perform(EM_LineScroll, 0, -MemoX.Lines.Count - 1);
|
Re: tmemo cursor an erste stelle
Hallo,
Zitat:
Zitat:
Delphi-Quellcode:
willst Du eventuelle Leerzeichen erhalten, dann nimm diesen Code:
Memo1.Text := Trim(Memo1.Text);
Delphi-Quellcode:
Es werden die letzten beiden Steuerzeichen, die diesen "blöden" Zeilenumbruch erzeugen gelöscht.
Memo1.Text := Copy(Memo1.Text,1,Length(Memo1.Text)-2);
Diese erste Zeile die Du löschen möchtest, ist in der Eigenschaft Lines deines Memo eingetragen. Diesen Eintrag kannst Du im Objekt-Inspektor löschen, indem Du hinter der Eigenschaft Lines den Stringlisten-Editor aufrufst und den Eintrag entfernst. Wenn beide Zeilen, die Erste und Letzte gelöscht sind, brauchst Du auch nichts mehr zum Scrollen. :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz