Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   EMB DCE 12 - TRichEdit löscht Lines Inhalt nicht (https://www.delphipraxis.net/215953-emb-dce-12-trichedit-loescht-lines-inhalt-nicht.html)

paule32.jk 1. Okt 2024 11:49

EMB DCE 12 - TRichEdit löscht Lines Inhalt nicht
 
Hallo,
meine kleine PrimeFinderAnwendung nutzt ein TRichEdit Control, um die gefundenen Primes anzuzeigen.
Da das ganze bei größeren Zahlen und Zeitverlauf langsamer wird, dachte ich mir die Lines im TRichEdit zu löschen
mittels:
RichEdit1.Lines.Clear;

Allerdings funktioniert das nicht.
Hier habe ich den Code, der zwar compiliert aber ein nicht richtiges Verhalten aufweist:
hier der Link zu den Quellen

Vieleicht stimmt die Zeile: 223 nicht, weil das .Count Property nicht funkt ?

Für sachdienliche Auskünfte danke ich schonmal...

himitsu 1. Okt 2024 12:30

AW: EMB DCE 12 - TRichEdit löscht Lines Inhalt nicht
 
Per se sollte es eigentlich funktionieren. :gruebel:

Ich hätte erst gesagt: Versuch es mal mit
Delphi-Quellcode:
RichEdit1.Clear;
,
aber es ist das, was letztendlich
Delphi-Quellcode:
RichEdit1.Lines.Clear;
auch macht.
:vernupft:

Zitat:

Zitat von TRichEdit.Lines.Clear
Delphi-Quellcode:
procedure TRichEditStrings.Clear;
begin
  RichEdit.Clear;
end;


vielleicht noch so? (alles löschen)
Delphi-Quellcode:
RichEdit1.SelectAll;
RichEdit1.ClearSelection;
Oder so, also ab zweiter Zeile löschen (alles außer der Ersten)
Delphi-Quellcode:
RichEdit1.SelStart := SendMessage(RichEdit1.Handle, EM_LINEINDEX, 1, 0):
RichEdit1.SelLength := MaxInt;
RichEdit1.ClearSelection;

himitsu 1. Okt 2024 12:47

AW: EMB DCE 12 - TRichEdit löscht Lines Inhalt nicht
 
ach ja
Zitat:

Delphi-Quellcode:
  case gap_zahl of
     0: begin StartY := Rect.Bottom - 10 *  1; end;
     1: begin StartY := Rect.Bottom - 10 *  2; end;
     ...

Delphi-Quellcode:
StartY := Rect.Bottom - 10 * (StartY + 1);
:roll:

paule32.jk 1. Okt 2024 12:47

AW: EMB DCE 12 - TRichEdit löscht Lines Inhalt nicht
 
geht irgendwie nicht so gut.

ich habe den Code etwas abgeändert, so dass im Timer Event der Timer gestoppt wird und eine MessageBox angezeigt werden sollt.
Ist aber nicht der Fall.
Die Timer werden nicht lahmgelegt und showmessage wird auch nicht angezeigt:

Delphi-Quellcode:
if RichEdit1.Lines.Count >= 30 then
begin
  Timer1.Enabled := false;
  Timer2.Enabled := false;
  showMessage('yyyy');
  s := RichEdit1.Lines.Strings[0]; // Erste Zeile speichern
  RichEdit1.SelectAll;
  RichEdit1.ClearSelection;
end;

Kas Ob. 1. Okt 2024 12:59

AW: EMB DCE 12 - TRichEdit löscht Lines Inhalt nicht
 
Zitat:

Zitat von paule32.jk (Beitrag 1541703)
Delphi-Quellcode:
if richedit1.lines.count >= 30 then

>= 30 !!

paule32.jk 1. Okt 2024 13:07

AW: EMB DCE 12 - TRichEdit löscht Lines Inhalt nicht
 
indeed @kas ob

The Line Number in RichEdit Control does not have the linear Numbers from 1,2,...,n
because the Line Counts depend on the matched Prime.

The following Code will work fine:
Delphi-Quellcode:
if RichEdit1.Lines.Count >= 50 then
begin
    Timer1.Enabled := false;
    Timer2.Enabled := false;

    s := RichEdit1.Lines.Strings[0]; // Erste Zeile speichern

    RichEdit1.Lines.Clear;
    RichEdit1.Lines.Add(s);

    Timer1.Enabled := True;
    Timer2.Enabled := True;
end;
The Lines is then corresponding with Prime 223.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 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-2025 by Thomas Breitkreuz