AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Fokus auf angeblich deaktivierten Tab
Thema durchsuchen
Ansicht
Themen-Optionen

Fokus auf angeblich deaktivierten Tab

Ein Thema von Alexander Roth · begonnen am 11. Aug 2006 · letzter Beitrag vom 12. Aug 2006
Antwort Antwort
Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#1

Fokus auf angeblich deaktivierten Tab

  Alt 11. Aug 2006, 22:02
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.

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
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Fokus auf angeblich deaktivierten Tab

  Alt 11. Aug 2006, 22:04
setze den focus einfach im OnShow des Tabs. Ansonsten bekommst du die Fehlermeldung immer wenn das Control noch nicht wirklich sichtbar ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Fokus auf angeblich deaktivierten Tab

  Alt 12. Aug 2006, 07:56
Also, keines der beiden Code Versionen klappt:
Delphi-Quellcode:
procedure TForm1.TabSheet2Show(Sender: TObject);
begin
  self.TabSheet2.SetFocus;
  self.PageControl1.ActivePage.SetFocus;
end;

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.
Angehängte Dateien
Dateityp: zip 12.08.2006_08_uhr_01_193.zip (33,8 KB, 2x aufgerufen)
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Fokus auf angeblich deaktivierten Tab

  Alt 12. Aug 2006, 12:41
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
  Mit Zitat antworten Zitat
Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Fokus auf angeblich deaktivierten Tab

  Alt 12. Aug 2006, 12:52


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 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)
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:44 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