お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"コンボボックスの拡張"



みなさん、こんにちは。十兵衛です。




【タイトル】コンボボックスのスタイルがcsDropDownListの時の初期表示を操作
します。DefIndexプロパティを追加しました。このプロパティにItemsで登録さ
れているアイテムのうち初期表示させたいIndexを設定する事で実行時に表示さ
せる事が可能です。設計時には...そこまで考えていませんデス(^^;)

-----------------------------------------------------------------------

unit ComboEX;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 
Dialogs,
  StdCtrls;

type
  TComboEX = class(TComboBox)
  private
    { Private 宣言 }
    FDefIndex: Integer;
    procedure SetDefIndex(Value:Integer);
  protected
    { Protected 宣言 }
  public
    { Public 宣言 }
    constructor Create(AOwner:TComponent);override;
    procedure Loaded;override;
  published
    { Published 宣言 }
    property DefIndex:Integer read FDefIndex write SetDefIndex;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('MyLib', [TComboEX]);
end;

{ TComboEX }

constructor TComboEX.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FDefIndex := -1;
end;

procedure TComboEX.Loaded;
begin
  if Style = csDropDownList then ItemIndex := FDefIndex;
end;

procedure TComboEX.SetDefIndex(Value: Integer);
begin
  if Value <> FDefIndex then begin
     if (Value > (Items.Count-1)) then begin
         raise EListError.Create('リストの範囲を超えています');
     end else FDefIndex := Value;
  end;
end;

end.

------------------------------------------------------------------------

ではでは(^^)

                                     99/06/30(水) 13:31 十兵衛(BZT01311)

Original document by 十兵衛          氏 ID:(BZT01311)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum