AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TabSheet aktivieren auf dem ein Control ist

Ein Thema von mjustin · begonnen am 6. Jul 2021 · letzter Beitrag vom 7. Jul 2021
 
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#1

TabSheet aktivieren auf dem ein Control ist

  Alt 6. Jul 2021, 13:52
Wenn nach einer Validierung der eingegebenen Werte feststeht, dass ein Control einen ungültigen Wert enthält, soll dieses aktiviert werden (mit SetFocus). Das geht nicht, wenn das Control auf einem inaktiven TabSheet eines PageControls ist.

Mit diesem Code soll das TabSheet aktiviert werden, auch in dem Fall dass das PageControl selber auf einem TabSheet ist.
Gibt es einfachere Lösungen, oder sogar etwas in gängigen Bibliotheken wie z.B. Jedi?

Delphi-Quellcode:
procedure TryActivateTabSheetContaining(const AControl: TControl);
var
   PC: TPageControl;
 
   function FindPageControlRecursiveFor(const AControl: TControl): TPageControl;
   begin
      if AControl.Parent is TForm then
         Exit(nil)
      else if AControl.Parent is TTabSheet then
      begin
         Result := AControl.Parent.Parent as TPageControl;
         Result.ActivePage := AControl.Parent as TTabSheet;
         Exit;
      end
      else
         Exit(FindPageControlRecursiveFor(AControl.Parent));
   end;

begin
   PC := FindPageControlRecursiveFor(AControl);
   if PC = nil then
      Exit
   else
      TryActivateTabSheetContaining(PC);
end;

(Als Umgebung wird Delphi 10.2 verwendet)
Michael Justin
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 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