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 MaskEdit gibt Kontrolle nicht her (https://www.delphipraxis.net/98944-maskedit-gibt-kontrolle-nicht-her.html)

messie 4. Sep 2007 13:52


MaskEdit gibt Kontrolle nicht her
 
Moin,

ich habe mir ein eigenes MaskEdit gebastelt (aus dem TntMaskEdit und MaskEditL was hier mal rumschwirrte)
Nun wollte ich das interne ErrorHandling deaktivieren und habe deshalb
Delphi-Quellcode:
procedure ValidateError; virtual;
durch
Delphi-Quellcode:
procedure ValidateError; override;
ersetzt:
Delphi-Quellcode:
procedure TTntMaskeditL.ValidateError;
begin
  if fUseErrorHandler then //als property hinzugefügt
  begin
    inherited;
  end;
end;
Wenn ich fUseErrorHandler false setze, bekomme ich die blöde Meldung nicht mehr, die ich ja loswerden wollte. Das MaskEdit gibt aber auch die Kontrolle nicht mehr her, ich kann zu keinem anderen Steuerelement springen (auch keine Exception etc.).

Woran kann das liegen?

Grüße, Messie

mirage228 4. Sep 2007 13:53

Re: MaskEdit gibt Kontrolle nicht her
 
Hi,

Wird im Original-"ValidateError" vielleicht etwas ausgeführt, das den Fokus zurückgibt oder so? (EndUpdate etc.)

mfG
mirage228

messie 4. Sep 2007 14:19

Re: MaskEdit gibt Kontrolle nicht her
 
Nö, deshalb habe ich es auch nicht verstanden. Es wird ne Exception mit Fehlermeldung ausgelöst, die ich so entsorgen wollte.
Delphi-Quellcode:
procedure TTntMaskEdit.ValidateEdit;
var
  Str: WideString;
  Pos: Integer;
begin
  Str := EditText;
  if IsMasked and Modified then
  begin
    if not ValidateW(Str, Pos) then
    begin
      if not (csDesigning in ComponentState) then
      begin
        Include(FMaskState, msReEnter);
        SetFocus;
      end;
      SetCursor(Pos);
      ValidateError;
    end;
  end;

end;
Könnte vielleicht am SetFocus hängen. Die Exception im ValidateError scheint den Focus ja zu entfernen. Vielleicht gibt es da eine Alternative, mit der ich dasselbe erreiche.

Grüße, Messie


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