AGB  ·  Datenschutz  ·  Impressum  







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

Selektion eines Buttons wieder los werden

Ein Thema von Medium · begonnen am 3. Aug 2010 · letzter Beitrag vom 4. Aug 2010
Antwort Antwort
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#1

Selektion eines Buttons wieder los werden

  Alt 3. Aug 2010, 18:09
Moinsen!

Mit Bezug auf diesen (gescheiterten) Thread, hat sich meine Problemstellung etwas geändert.

Grob umrissen: Ein TBitButton, und ein TWebbrowser im Designmodus. Sobald der Button ein mal den Fokus hatte, kommen im Webbrowser Enter-Tastendrücke nicht mehr an, die dort üblicherweise einen neuen Paragraph einfügen.

So ein Button scheint zwei sorten von Fokus zu kennen. Ein mal den "normalen" Fokus, den man am gestrichelten Rahmen erkennt, und einen weiteren, der bei mir unter Win7 ein blauer dicker Rand ist (sonst glaub ich ein schwarzer dickerer Rand). Das Problem scheint nun diese zweite Art von Fokus zu sein, da die Enter-Drücke auf den Button angewendet werden, sobald er diesen hat. Der TWebbrowser hat zwar den "normalen" Fokus, und auch das Caret, aber der 2. Fokus scheint Vorrang zu genießen, und der Webbrowser bekommt diesen nicht durch SetFocus().
Ich war bisher auch nicht in der Lage herauszufinden, in wessen WndProc das geschieht. (Die Containersituation ist im konkreten Fall etwas komplexer als einfach auf einem Form. Details im verlinkten Thread.)

Was ich jetzt also suche, ist ein Weg meinen Buttons diesen 2. Fokus wieder wegzunehmen, wie es gleich nach Programmstart ja auch ist. Die Default-Property ist es schon mal nicht, die ist immer False, auch mit dickem Rand. Wonach müsste ich hier suchen?

Dankschö im Voraus!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium ( 3. Aug 2010 um 22:17 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Des Buttons zweiter Fokus

  Alt 3. Aug 2010, 22:15
Ich habe nun heruasgefunden, dass dieser ominöse 2. Fokus "Selektion" heisst (Threadtitel daher angepasst), und etwas anderes ist als der tatsächliche "Fokus". Es können auch nicht alle Controls eine Selektion haben. Der Mist ist jetzt nur, dass ich bislang keinen Weg gefunden habe, die Selektion aus meinem Programm heraus zu beeinflussen! In diesem Thread hat oki ein Stück Code geposted, in dem TCustomContol.Selected ein Wert zugewiesen wird. Das TCustomControl meines D2010s kennt diese Property aber leider nicht, auch in keinem der Vorfahren. Ebenso habe ich keine Messages in diese Richtung finden können, kann aber nicht so recht glauben, dass es überhaupt keine Mittel gibt, diese dämliche Selektion wieder los zu werden!

Jeder noch so oberschmutzige Hack ist herzlichst willkommen, ich hab an diesem unnötigen Mist nun schon locker 2 Tage verbraten
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium ( 3. Aug 2010 um 22:17 Uhr)
  Mit Zitat antworten Zitat
Bernerbaer
(Gast)

n/a Beiträge
 
#3

AW: Selektion eines Buttons wieder los werden

  Alt 3. Aug 2010, 22:30
Wie du die Selektion wieder los wirst weiss ich nicht. Aber vielleicht hilft ja dieser Tip im Swissdelphicenter bezüglich der Entertaste swissdelphicenter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

AW: Selektion eines Buttons wieder los werden

  Alt 3. Aug 2010, 23:00
In Delphi sind die Eigenschaften .Cancel (ESC) und .Default (Enter) für solch ein Verhalten verantwortlich ... Näheres steht in der OH.

Den "normalen" Fokus bekommt man vom Button, indem man ihn woanders hinlegt (z.B. auf deinen Webbrowser).
Delphi-Quellcode:
{Form1.}ActiveControl := nil;
oder
{Form1.}ActiveControl := WebBrowser1;
oder
WebBrowser1.SetFocus;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 3. Aug 2010 um 23:03 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Selektion eines Buttons wieder los werden

  Alt 3. Aug 2010, 23:31
Default hat, wie gesagt, leider überhaupt keinen Einfluss darauf. Es wird weder beim Klick auf den Button auf true gesetzt, noch bringt explizites Setzen auf false im OnClick etwas. Der Button bleibt selektiert. Der Fokus ist auch nicht das Problem, der sitzt brav aufm Webbrowser, und erkennbar nicht auf dem Button (gestrichelter Rahmen verschwindet).

An den Application-Messagehandler hatte ich noch nicht gedacht, da müsste ja theoretisch ALLES erstmal landen. Mal schauen ob ich mit dem was fuckeln kann; das Problem wird dabei sein zu prüfen, ob der Webbrowser den Fokus hat - das Frame mit dem Browser wird nämlich dynamisch erzeugt...

Lieber wäre mir noch immer, den blöden Buttons die Selektion zu entreissen
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Selektion eines Buttons wieder los werden

  Alt 4. Aug 2010, 06:27
Default vestimmt auch nur, welcher Zuerst die Selektion hat.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#7

AW: Selektion eines Buttons wieder los werden

  Alt 4. Aug 2010, 08:01
Default vestimmt auch nur, welcher Zuerst die Selektion hat.
Nein, das ist das erste Control in der Erstellungsreihenfolge oder (wenn es gesetzt ist) ActiveControl.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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 15:40 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