Thema: Delphi TButton ohne Fokus

Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#3

Re: TButton ohne Fokus

  Alt 20. Mai 2009, 11:43
Zitat von uwewo:
Ausführen soll er den Button1 ja schon, denke ich.
Ja, soll er. 8)

Zitat von uwewo:
warum nicht TabStop = False im OI und

if button1.Focused then button2.SetFocus;
Das würde dann kompliziert werden, weil es nicht nur um ein Control (Button2) geht.

Stell dir als Beispiel eine Form mit vielen Edits vor, und ein Klick auf den Button soll den Inhalt des fokussierten Edits ins Clipboard kopieren. Etwa so:
Delphi-Quellcode:
procedure TForm1.MyClick(Sender: TObject);
begin
  if ActiveControl is TEdit then
  begin
    TEdit(ActiveControl).CopyToClipboard;
    Label1.Caption := Clipboard.AsText;
  end
  else
    Label1.Caption := '<nix>';
end;
Dann verweist ActiveControl bei einem TButton in MyClick schon auf den Button und nicht mehr auf das interessierende Edit. Exakt der gleiche OnClick-Handler funktioniert bei einem TSpeedButton.

Das Problem ist jetzt, dass der betroffene Button nicht allein steht, sondern in einer Maschinerie erzeugt wird, die auch fokussierbare Buttons ausspucken muss. Ich würde gern vermeiden, diese Maschinerie so umzubauen, dass sie mal TButtons und mal TSpeedButtons erzeugt. Drum hätte ich gern einen Schalter an der Button-Instanz.
Uli Gerhardt
  Mit Zitat antworten Zitat