お知らせ

電子会議

ライブラリ

FDelphi サイト全文検索

Delphi FAQ一覧

サンプル蔵



FDelphi FAQ
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編纂委員会