Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#5

Re: TABSTOP-Problem bei Panels

  Alt 25. Feb 2006, 12:17
Hai silentAMD,

bist Du sicher das es mit Panels gemacht wurde? Das ich recht ungewöhnlich. Buttons wären doch viel besser.
Aber egal. Das "Problem" ist das ein Panel kein OnKeypress oder ähnliches kennt und das OnClick nur beim klicken mit der Maus reagiert.

Du musst also im OnKeyDown der Mainform auf die Tastendrücke reagieren (KeyPreview := True).
Das ganze könnte zum Beispiel so aussehen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  KeyPreview := True;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_RETURN) or (Key = VK_SPACE) then
  begin
    if (ActiveControl is TPanel) then
    begin
      (ActiveControl as TPanel).OnClick (ActiveControl);
    end;
  end;
end;

procedure TForm1.AllePannelEnter(Sender: TObject);
begin
  (Sender as TPanel).BorderStyle := bsSingle;
end;

procedure TForm1.AllePannelExit(Sender: TObject);
begin
  (Sender as TPanel).BorderStyle := bsNone;
end;

procedure TForm1.AllePannelClick(Sender: TObject);
begin
  (Sender as TPanel).SetFocus; // Focus bei Mausklick
  ShowMessage ((Sender as TPanel).Name);
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat