AGB  ·  Datenschutz  ·  Impressum  







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

RichEdit Zeilen löschen

Ein Thema von Pseudemys Nelsoni · begonnen am 18. Mai 2003 · letzter Beitrag vom 18. Mai 2003
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

RichEdit Zeilen löschen

  Alt 18. Mai 2003, 12:07
hoi,

da der tittel zu lang ist und nicht passt hab ich ihn verkürzt

also meine frage...

sagen wir mal ich habe ein RichEdit .. nun möchte ich, das wenn 200 Zeilen eingefügt sind....die oberste (die erste) Zeile gelöscht wird, und immerso weiter, weiss wer wie das geht?

danke

gruss silent
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#2
  Alt 18. Mai 2003, 12:14
Das geht so:

RichEdit1.Lines.Delete(0); Für 0 halt einfach die Zeilenzahl nullbasiert angeben.

Man liest sich, Stanlay 8)
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3
  Alt 18. Mai 2003, 12:28
thx

ich hab das so vor(im onchange des richedits):

wenn zeilen > 200 dann lösch zeile 0

wie prüf ich obs es 200 oder mehr zeilen sind?
Mario
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#4
  Alt 18. Mai 2003, 12:39
Hallo,

mit Lines.Count.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#5
  Alt 18. Mai 2003, 12:59
Delphi-Quellcode:
IF RichEdit1.items.count > 200
 THEN
  RichEdit1.Lines.Delete(0);

Man liest sich, Stanlay 8)
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 18. Mai 2003, 13:02
Moin Silent,

statt Delete ginge es auch so:

Delphi-Quellcode:
  if RichEdit1.Lines.Count <= 200 then exit;
  RichEdit1.Lines.BeginUpdate;
  try
    RichEdit1.SelStart := SendMessage(RichEdit1.Handle,EM_LINEINDEX,0,0);
    RichEdit1.SelLength := SendMessage(RichEdit1.Handle,EM_LINEINDEX,199,0) + length(RichEdit1.Lines[199])+2;
    RichEdit1.ClearSelection;
  finally
    RichEdit1.Lines.EndUpdate;
  end;
EM_LINEINDEX gibt die Position des ersten Zeichens der angegebenen Zeile (Parameter nach der Message, nullbasiert) zurück, deshalb wird auch für SelLength auch noch die Länge der Zeile zzgl. 2 für den Zeilenvorschub genommen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#7
  Alt 18. Mai 2003, 13:14
@Christian. Warum einfach, wenns auch kompliziert geht
Aber ich find das ganz interessant. Wüsstest du da vielleicht auch was, wo man mit einem ähnlichen Befehl das letzte Zeichen einer Zeile rausfindet, in der gerade der Cursor is?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 18. Mai 2003, 13:21
Moin Stanlay,

ja:

SendMessage(RichEdit1.Handle,EM_LINEINDEX,-1,0) + length(RichEdit1.Lines[RichEdit1.CaretPos.y]); statt der -1 kannst Du auch CaretPos.y benutzen, da bei dieser Message -1 "die Zeile in der sich das Caret befindet" meint.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#9
  Alt 18. Mai 2003, 13:30
Danke! *danktgottfürsosupermoderatoren*

Man liest sich, Stanlay 8)
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#10
  Alt 18. Mai 2003, 14:12
danke leute
Mario
  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 05:32 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