Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Fokus auf angeblich deaktivierten Tab (https://www.delphipraxis.net/74960-fokus-auf-angeblich-deaktivierten-tab.html)

Alexander Roth 11. Aug 2006 21:02


Fokus auf angeblich deaktivierten Tab
 
Hi,

ich hatte bei meinem Programm einige Zeit den Einen Tab eines PageControl ausgeblendet (TabVisible:=False; und ich hatte vielleicht auch die Eingenschaft Visible:=False gesetzt).
Nun bin ich soweit den Tab einzublenden (und habe beide Optionen auf True gesetzt), doch jetzt spielt mir das Programm einen bösen Streich. :evil:

Es kommt die Fehlermdeung wenn ich mit dem neuen Tab als Standard starte:
Zitat:

---------------------------
Ein deaktiviertes oder unsichtbares Fenster kann nicht den Fokus erhalten.
---------------------------
Wie kann man das beheben?

Danke im Voraus

Gruß Alexander

SirThornberry 11. Aug 2006 21:04

Re: Fokus auf angeblich deaktivierten Tab
 
setze den focus einfach im OnShow des Tabs. Ansonsten bekommst du die Fehlermeldung immer wenn das Control noch nicht wirklich sichtbar ist.

Alexander Roth 12. Aug 2006 06:56

Re: Fokus auf angeblich deaktivierten Tab
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also, keines der beiden Code Versionen klappt: :(
Delphi-Quellcode:
procedure TForm1.TabSheet2Show(Sender: TObject);
begin
  self.TabSheet2.SetFocus;
  self.PageControl1.ActivePage.SetFocus;
end;

Zitat:

Zitat von SirThornberry
Ansonsten bekommst du die Fehlermeldung immer wenn das Control noch nicht wirklich sichtbar ist.

Eigentlich kommt die Fehlermeldung genau wenn ich genau diesen Tab in den Vordergrund hole (z.B. beim Starten), aber nicht mehr wenn ich die Fehlermdeung weggeklickt habe, auf den anderen Tab und wieder zurück gehe.

Was jetzt?




PS: Ich habe den kompletten Source mal hinten ran gehängt, da es eh Open Source ist (siehe www.roth.22o.de) . Vielleicht hilft das.

marabu 12. Aug 2006 11:41

Re: Fokus auf angeblich deaktivierten Tab
 
Hallo Alexander,

im Ereignis OnCreate() deiner Form machst du die zweite Seite deines PageControl zur aktiven Seite. Im anschließenden Ereignis OnActivate() versuchst du dem Button BElevation auf der ersten Seite den Fokus zu geben, deshalb die Exception.

Noch ein kleiner Tipp: verzichte auf die Verwendung der globalen Variablen Form1 innerhalb der Methoden von TForm1 - es ist überflüssig und fehlerträchtig.

Ein letzter Tipp: wenn du Code zur Verfügung stellst, dann stelle sicher, dass die verwendeten Komponenten allgemein verfügbar sind oder gib einen URL zum Download an. Du erhöhst so deine Chancen auf Antworten.

Grüße vom marabu

Alexander Roth 12. Aug 2006 11:52

Re: Fokus auf angeblich deaktivierten Tab
 
:wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall:

Nein, das ist nicht der Fehler: Es ist das ich beim Activieren einen Button (auf derm ersten Tab) als Focus setzte. Das löst die Exception aus.

Danke für eure Hilfe! Tschüss



PS:

Zitat:

Zitat von marabu
Ein letzter Tipp: wenn du Code zur Verfügung stellst, dann stelle sicher, dass die verwendeten Komponenten allgemein verfügbar sind oder gib einen URL zum Download an. Du erhöhst so deine Chancen auf Antworten.

Die Komponenten hatte ich ganz vergessen.
Ja mit form1 ist klar. Dummer kleiner Fehler. Replace(form1,self) :zwinker:


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