お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





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

"イベントドリブンでないインターフェース例"



こんにちは、凛です。
イベントドリブンでないインターフェースを実現する1例です。
個々のインターフェース画面の設計はフレームとしてを作成しておきます。
メインフォームには任意の数のパネルを配置して(もちろんひとつでもかまわな
い) 順番に用意されたフレームを好きなパネル上にCreateOnすればOK。
インターフェース設計時には、TFrame2を参考にすればどんなフレームでもOK。




{まずはシンプルなフレームの例}
type
  TFrame2 = class(TFrame)
    Label1: TLabel;
    Edit1: TEdit;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
    result:Boolean;
    constructor CreateOn(AOwner:TComponent;
                         AParent:TWinControl;
                         Caption:string);
  end;

implementation

{$R *.DFM}


constructor TFrame2.CreateOn(AOwner: TComponent; AParent: TWinControl;
  Caption: string);
begin
  inherited Create(AOwner);
  parent:=AParent;
  Label1.Caption:=Caption;
end;

procedure TFrame2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  begin
    result:=True;
    key:=#0;
  end;
end;
end.

{上記フレームを手軽に呼び出すための関数}

function InputFrame
(AOwner:TComponent;AParent:TWinControl;Caption:string):string;
var
  InputFrame:TFrame2;
begin
  InputFrame:=TFrame2.CreateOn(AOwner,AParent,Caption);
  try
    InputFrame.Edit1.SetFocus;
    while not InputFrame.Result do Application.Processmessages;
    result:=InputFrame.Edit1.Text;
  finally
    InputFrame.free;
  end;
end;

{メインフォーム上での使用例
最初にボタンを押した後はUIとしてはシーケンシャル}

procedure TForm1.Button1Click(Sender: TObject);
var
  Ans:string;
begin
  Show;
  Ans:=InputFrame(Self,Panel1,'エンターキーを押して下さい');
  while Ans='Edit1' do
   Ans:=InputFrame(Self,Panel1,'先に文字も入力して下さいよ');
  InputFrame(Self,Panel2,'次はこっち');
end;


                              2001/07/20(Fri) 10:07am  MXB01744 凛
 


- FDELPHI  MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 01/07/20 -

Original document by 凛              氏 ID:(MXB01744)


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

Copyright 1996-2002 Delphi Users' Forum