|
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
|