Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Fehler in DBRichEdit beim Ereignis OnSetText? (https://www.delphipraxis.net/210950-fehler-dbrichedit-beim-ereignis-onsettext.html)

Papaschlumpf73 4. Jul 2022 12:48

Fehler in DBRichEdit beim Ereignis OnSetText?
 
Bei den DB-Feldern TWideStringField und TWideMemoField nutze ich das Ereignis OnSetText um die Eingabe der Anwender zu überprüfen - z.B. den verwendeten Zeichensatz. Wenn ich den Text in einer DBRichEdit-Komponente ändere, wird bei OnSetText als Text nur (WIDEMEMO) übergeben. Ändere ich den Text für dasselbe WideMemo-Feld in einer DBMemo-Komponente, enthält Text bei OnSetText den vollständigen Text. So kann ich OnSetText i.V.m. DBRichEdit-Komponenten nicht benutzen und müsste das überall im Code separat machen und bei neuen DBRichEdit-Feldern auch wieder dran denken.

Macht das irgendeinen Sinn oder kann mir jemand das (Fehl)-Verhalten bestätigen?

Papaschlumpf73 4. Jul 2022 13:40

AW: Fehler in DBRichEdit beim Ereignis OnSetText?
 
Ich nehme alles zurück und behaupte das Gegenteil: Bei DBRichEdit scheint das OnSetText-Ereignis überhaupt nicht ausgelöst zu werden, wenn der Text geändert wurde. Auch blöd... Bei DBMemo wird es ausgelöst.

himitsu 4. Jul 2022 13:52

AW: Fehler in DBRichEdit beim Ereignis OnSetText?
 
Zitat:

Zitat von Papaschlumpf73 (Beitrag 1508305)
nutze ich das Ereignis OnSetText um die Eingabe der Anwender zu überprüfen

OnValidate :roll:





OnSetText wird nur bei Text/SetEditText aufgerufen.
Direkt SetText/SetWideText, AsString/SetAsString, SetData uvm. aufgerufen, triggert kein OnSetText.

OnSetText/OnGetText ist mehr für EditText/DisplayText da, um z.B. Ansicht von/zu einem internen Wert umzurechnen.


OnChange/OnValidate/... wären da wohl die passenderen Events



Natürlich kannst du auch von TWideMemoField ableiten und eine/mehrere der vielen anderen Events/Methoden überschreiben und dich somit auch da reinhängen, was da RichEdit nutzen tut.

Papaschlumpf73 4. Jul 2022 14:30

AW: Fehler in DBRichEdit beim Ereignis OnSetText?
 
Mich hatte vor allem gewundert, dass DBMemo das Ereignis wirft und DBRichEdit eben nicht.

Uwe Raabe 4. Jul 2022 14:42

AW: Fehler in DBRichEdit beim Ereignis OnSetText?
 
Zitat:

Zitat von Papaschlumpf73 (Beitrag 1508314)
Mich hatte vor allem gewundert, dass DBMemo das Ereignis wirft und DBRichEdit eben nicht.

Das ist ein offenbar bisher unerkannter Bug und eines QP-Eintrags würdig. Der Fehler liegt in der Zuweisung auf
Delphi-Quellcode:
AsString
anstatt
Delphi-Quellcode:
Text
in der Methode UpdateData von TDBRichEdit.

Papaschlumpf73 4. Jul 2022 14:44

AW: Fehler in DBRichEdit beim Ereignis OnSetText?
 
Wie kann ich das bei Emba melden? Bei den zig Seiten sehe ich nicht mehr durch.

Uwe Raabe 4. Jul 2022 14:54

AW: Fehler in DBRichEdit beim Ereignis OnSetText?
 
Zitat:

Zitat von Papaschlumpf73 (Beitrag 1508316)
Wie kann ich das bei Emba melden?

https://quality.embarcadero.com/

Papaschlumpf73 4. Jul 2022 15:31

AW: Fehler in DBRichEdit beim Ereignis OnSetText?
 
Danke! Und schon erledigt...

himitsu 4. Jul 2022 16:02

AW: Fehler in DBRichEdit beim Ereignis OnSetText?
 
Es kommt auch drauf an, ob man das RTF-Geraffel als "Text" ansieht.

Per se ist .AsString ja erstmal nicht falsch,
auch wenn im Falle dieser Komponente .Text wohl passender wäre.

mjustin 4. Jul 2022 16:11

AW: Fehler in DBRichEdit beim Ereignis OnSetText?
 
Zitat:

Zitat von himitsu (Beitrag 1508327)
Es kommt auch drauf an, ob man das RTF-Geraffel als "Text" ansieht.

Per se ist .AsString ja erstmal nicht falsch,
auch wenn in Fall dieser Komponente .Text wohl passender wäre.

RTF kann durchaus auch Binärdaten enthalten, das ist in der Spezifikation ( \bin keyword ) vorgesehen und auch in der Praxis mir schon begegnet.
Richtig wäre es daher, RTF immer als Binärdatentyp zu verarbeiten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr.
Seite 1 von 2  1 2      

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