|
15番会議室「FAQ編纂委員会」に寄せられた「よくある質問の答え」
[Q]
ComboBoxで、フォーカスを受け取った時に自動的にドロップダウン
したいんですが、どうすれば良いでしょう?
[A]
例のコンポーネントをインストールして使って下さい。
[例]
unit AUTOCMBO;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TAutoDropCmboBox = class(TComboBox)
private
{ Private 宣言 }
DownFlg : Boolean;
Procedure WMLBUTTONDOWN(Var Msg : TWMLBUTTONDOWN);
Message WM_LBUTTONDOWN;
protected
{ Protected 宣言 }
procedure DoEnter; Override;
procedure DoExit; Override;
procedure KeyDown(var Key: Word; Shift: TShiftState); Override;
public
{ Public 宣言 }
published
{ Published 宣言 }
end;
procedure Register;
implementation
Procedure TAutoDropCmboBox.WMLBUTTONDOWN(Var Msg : TWMLBUTTONDOWN);
Begin
DownFlg := True;
Inherited;
End;
procedure TAutoDropCmboBox.DoEnter;
Begin
Update;
If Not DownFLg THen
DroppedDown := True;
Inherited;
End;
procedure TAutoDropCmboBox.DoExit;
Begin
DownFlg := False;
Inherited;
End;
procedure TAutoDropCmboBox.KeyDown(var Key: Word; Shift: TShiftState);
Begin
Inherited;
If Key = VK_TAB Then
SendMessage(GetParentForm(Self).Handle, WM_NEXTDLGCTL, Ord(ssShift In Shift), 0);
ENd;
procedure Register;
begin
RegisterComponents('Samples', [TAutoDropCmboBox]);
end;
end.
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum FDELPHIに寄せられる質問の中から、よくある質問への回答を FDELPHIのメンバーがまとめたものです。 したがって、これらの回答はボーランド株式会社がサポートする公式のものではなく、掲示されている内容についての問い合わせは受けられない場合があります。
Copyright 1996-1998 Delphi Users' ForumFAQ編纂委員会
|