Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Button den Focus entfernen/geben

  Alt 9. Aug 2006, 12:17
Zitat von RavenIV:
Falls Du meinst, dass er beim Öffnen des Fensters sofort den Focus haben soll oder nicht:
das stellst Du beim Button mit der Property "Default" ein. Bei DeinButton.Default:=True; hat er den Fokus.
Nein, das stimmt so nicht. Cancel und Default sind Eigenschaften die von dem Message Handler des Buttons sagen, dass er sich entsprechend verhalten soll. Diese Eigenschaften haben nichts, rein gar nix mit dem Fokus zu tun. Wenn du eine Form mit 2 Buttons hast und einer ist Default := True und du klickst den anderen, dann hat der andere den Fokus, trotzdem löst der Default Button bei ENTER aus - ohne Fokus...

Fokus erkennt man am Fokusrect, welches eine Strichellinie um die Caption des Buttons ist.

xZise: Beim Öffnen der Form immer das gleiche Control ausgewählt haben erreicht man mit der Eigenschaft ActiveControl (wie von RavenIV schon genannt). Diese kannst du im Objektinspektor einstellen. Wenn du einem Objekt den Fokus geben willst, dann rufe von der Form die Methode FocusControl() auf und übergebe das Control oder alternativ, wie schon genannt von TeronG, die Methode SetFocus des Elementes aufrufen. Wegnehmen des Fokus ist schwierig, da ein Element immer den Fokus hat. Daher ist wegnehmen des Fokus möglich, in dem du ein anderes Element bestimmst auf der aktiven Form, welches den Fokus statt dessen bekommt. In der Form gibt es ansonsten noch die Möglichkeit, es mit der Methode DefocusControl() zu probieren. Ich weiss aber nicht, wie er das denn löst. Probier es einfach aus.
  Mit Zitat antworten Zitat