Einzelnen Beitrag anzeigen

Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#5

AW: Unterschiedliches verhalten von TEdit, wenn auf Panel platziert

  Alt 9. Jul 2024, 17:35
Fehler tritt nur unter Delphi12 auf.

Habe mir jetzt beholfen, indem ich noch ein application.processmessages zugefügt habe.

Irgendwie wird beim Setzen von StyleElements etwas in die MessageQueue gesetzt, was SelStart und SelLenght nachträglich ändert, nachdem OnChange von dem Edit abgearbeitet wurde.

Delphi-Quellcode:
procedure TForm1.SetEditColor(const aEdit: TEdit; const aIsError: Boolean);
var
  lSelStart: Integer;
  lSelLenght: Integer;
begin
  lSelStart := aEdit.SelStart;
  lSelLenght := aEdit.SelLength;

  if aIsError then
    begin
      aEdit.StyleElements := aEdit.StyleElements - [seClient];
      aEdit.Color := clred
    end
  else
    begin
      aEdit.StyleElements := aEdit.StyleElements + [seClient];
      aEdit.Color := clWindow;
    end;

  application.ProcessMessages;

  aEdit.SelStart := lSelStart;
  aEdit.SelLength := lSelLenght;
end;
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat