Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Komisches RichEdit/Memo OnChange-Verhalten... (https://www.delphipraxis.net/94686-komisches-richedit-memo-onchange-verhalten.html)

Assertor 25. Jun 2007 15:14


Komisches RichEdit/Memo OnChange-Verhalten...
 
Hallo DPler,

mal wieder ein Problem. Ich nutze ein TRichEdit (eigentlich TTntRichEdit). Ich lade Daten in und aus dem RichEdit per NameRichEdit.Text.

Wenn ich nun das RichEdit auf ein TabSheet packe und der Benutzer zum ersten Mal auf das Tabsheet wechselt, wird das OnChange des RichEdit getriggert.

Unabhängig von den Eigenschaften "wordwrap" (ist false, sonst wäre es ja fast klar warum), "PlainText" etc. Auch das Laden der einzelnen Lines brachte keine Änderung. Ich las nun bei Qt vom merkwürdigen RichEdit/Memo-OnChange verhalten.

Weiß hier einer Abhilfe oder kennt das Problem?

Gruß winkel79

marabu 25. Jun 2007 16:41

Re: Komisches RichEdit/Memo OnChange-Verhalten...
 
Hallo,

isoliere das Problem: Nimm ein leeres Projekt, ziehe ein PageControl darauf und verpasse diesem zwei Seiten. Auf die erste Seite packe ein RichEdit, auf die zweite ein Memo. An das Ereignis OnChange() der beiden Komponenten hängst du diesen Code:

Delphi-Quellcode:
procedure TDemoForm.Change(Sender: TObject);
begin
  with Sender as TComponent do
    ShowMessage(Name);
end;
Tritt der Fehler auf, dann stelle das Demo-Projekt zur Verfügung. Wenn der Fehler verschwunden ist, dann liegt es an deinem eigenen Code.

Grüße vom marabu

Assertor 26. Jun 2007 11:39

Re: Komisches RichEdit/Memo OnChange-Verhalten...
 
Hi marabu!

Zitat:

Zitat von marabu
isoliere das Problem: Nimm ein leeres Projekt [...]. Tritt der Fehler auf, dann stelle das Demo-Projekt zur Verfügung. Wenn der Fehler verschwunden ist, dann liegt es an deinem eigenen Code.

Manchmal kommt man nicht auf die einfachsten Lösungen. Ich konnte auf diese Art den Fehler vollständig isolieren.

Es liegt weder an meinem Code, noch an den RichEdits. Es liegt an Delphi. Mist...

Ich beobachte schon zum zweiten Mal erhebliche Probleme, mit Nested Forms (Forms, die als Parent ein Panel auf dem MainForm zugewiesen haben).

Ich mache jetzt hierzu einen neuen Thread auf.

Gruß und Danke für die Hilfe
winkel79

messie 26. Jun 2007 13:41

Re: Komisches RichEdit/Memo OnChange-Verhalten...
 
Vielleicht liegt es doch an dem Control. Ich habe das mal nachvollzogen: Das TntRichEdit löst das OnChange dann aus, wenn Wordwrap auf false steht.
Vermutlich liegt es daran
Delphi-Quellcode:
procedure TTntCustomRichEdit.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
if WordWrap then
  Params.Style := Params.Style and not WS_HSCROLL; // more compatible with RichEdit 1.0
end;
Eigentlich kommt mir das unabhängig von Deinen weiteren Beobachtungen und dem anderen Thread auch logisch vor, denn bei WordWrap = false muß ja auch das Element möglicherweise neu gezeichnet werden (Scrollbalken etc.)

Grüße, Messie

Assertor 26. Jun 2007 13:57

Re: Komisches RichEdit/Memo OnChange-Verhalten...
 
Hi messie,

ich habe mir auch gerade die TntRichEdits und die VCL RichEdit.pas angesehen.

Das Problem besteht aber auch bei einem normalen TRichEdit mit/ohne WordWrap und einem TntRichEdit mit/ohne WordWrap...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 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