![]() |
Problem mit Bindings und Memos
Hallo,
Ich habe die Properties eines Objekts an einige Controls des Formulars gebunden. Wenn nun in das Objekt selbst Daten geladen werden durchlaufe ich per RTTI die Properties des Objects und rufe
Delphi-Quellcode:
TBindings.Notify(Self, <PropertyName>);
auf um die gebundenen Controls zu benachrichtigen. Das funktioniert soweit auch gut, bremst allerdings ein wenig aus. Habe also rausgefunden dass es um einiges schneller ist wenn ich nur am Ende 1x
Delphi-Quellcode:
TBindings.Notify(Self);
aufrufe. Problem bei der Sache ist nur dass ich dann meistens (nicht jedes mal -.-) beim Setzen des Memo-Texts über die Bindings diese Exception kriege: Zitat:
Delphi-Quellcode:
Ich hab keine Ahnung warum das auftritt. WM_SETTEXT gibt aus irgendeinem Grund 0 zurück aber der String der dem Memo zugewiesen soll ist um die 350 Zeichen lang, von daher macht die Meldung keinen Sinn. Gibt es noch andere Gründe warum das fehlschlagen kann?
// Vcl.StdCtrls
procedure TMemoStrings.SetTextStr(const Value: string); var NewText: string; begin NewText := AdjustLineBreaks(Value); if (Length(NewText) <> Memo.GetTextLen) or (NewText <> Memo.Text) then begin if SendTextMessage(Memo.Handle, WM_SETTEXT, 0, NewText) = 0 then raise EInvalidOperation.Create(SInvalidMemoSize); // <--- Memo.Perform(CM_TEXTCHANGED, 0, 0); end; end; Ich bin etwas ratlos.. :| |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 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