Autor Beitrag
mambo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76

Win XP
D6 Prof
BeitragVerfasst: Fr 21.11.03 12:54 
ich habe einen eigenen Log-File-Viewer geschrieben mit dem man Textdateien, die sich gerade ändern laufend anschauen kann. Nun möchte ich aber bei jedem neu laden der Datei ans Dateiende springen oder aber an die Cursorposition an der man sich befindet. Wie kann ich das machen ?

die Prozedur ist bisher so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var
  fs: TFileStream;
begin

  if FileExists(OpenDialog.FileName) Then
  begin

    // wenn man an die Cursorposition möchte, hier Cursorposition merken ???

    fs:=TFileStream.Create (OpenDialog.Filename, fmOpenRead or fmShareDenyNone);
    Memo.Lines.LoadFromStream(fs);

    // HIER MÖCHTE ICH ANS MEMO-ENDE SPRINGEN, damit man immer die aktuellsten Werte der Datei sieht

  // oder aber an die gemerkte Cursorposition springen, wenn die Checkbox "beim aktualisieren an Cursorposition springen" angehakt ist
  end;

danke

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.

_________________
Es ist besser, Genossenes zu bereuen, als dass man nichts genossen hat.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 21.11.03 13:28 
Sollte mit der Nachricht EM_LINESCROLL gehen.
Philer
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 79

Win XP Home
D7 Enterprise
BeitragVerfasst: Fr 21.11.03 13:30 
Anders aber blöder gehts auch :D :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var I:integer;
begin
I:=Memo1.Lines.Count;
Memo1.Lines.Add('');
Memo1.Lines.Delete(I);

_________________
- Delphi n00b -
-Philer teh thriller-
-=Janos=-
Hält's aus hier
Beiträge: 1

win95, win2000, winxp
d6pro, d7pro
BeitragVerfasst: Mo 01.12.03 11:04 
An die letzte Zeile eines Memo-Feldes springen geht zwar mit
ausblenden Delphi-Quelltext
1:
2:
Memo1.Lines.Add('');
Memo1.Lines.Delete(Memo1.Lines.Count - 1);

jedoch dauert es zulange.

Hat jemand eine bessere Idee. Wie sieht es aus mit EM_LINESCROLL? Oder würde es mit Memo.Selstart auch funktionieren?

Danke
Janos

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 04.12.03 12:47 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
// zur ersten Zeile:
  Memo1.Perform(EM_LineScroll, 0 , -Memo1.Lines.Count-1);
// zur letzen Zeile:
  Memo1.Perform(EM_LineScroll, 0 , Memo1.Lines.Count-1);

Ich hoffe das funktioniert!

Gruß
Tino