Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Figur und Button

  Alt 4. Mai 2011, 21:56
Hi,

du musst verhindern, dass der Focus zum Button kommt bzw. bleibt. Ich habe das mal irgendwo gebraucht und dann über ein unsichtbares Edit gelöst:

Delphi-Quellcode:
type
  TfrmMain = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormShow(Sender: TObject);
  private
    FEdit: TEdit;
    procedure LockFocus;
    procedure CreateFocusEdit;
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  CreateFocusEdit;
end;

procedure TfrmMain.Button1Click(Sender: TObject);
begin
  MessageDlg('Button 1', mtWarning, [mbOK], 0);
  LockFocus;
end;

procedure TfrmMain.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  MessageDlg('KeyUp', mtInformation, [mbOK], 0);
  Key := 0;
end;

procedure TfrmMain.LockFocus;
begin
  if FEdit.CanFocus then
    FEdit.SetFocus;
end;

procedure TfrmMain.CreateFocusEdit;
begin
  FEdit := TEdit.Create(Self);
  FEdit.Width := 0;
  FEdit.Height := 0;
  FEdit.Left := 0;
  FEdit.Top := 0;
  FEdit.Parent := Self;
end;

procedure TfrmMain.FormShow(Sender: TObject);
begin
  LockFocus;
end;
...
[EDIT]Alternative wäre TSpeedButton anstatt TButton...[/EDIT]

Frank
Frank Reim

Geändert von dataspider ( 4. Mai 2011 um 22:03 Uhr)
  Mit Zitat antworten Zitat