16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"Dialog的なフォームを関数化する"
この発言に対し以下のコメントが寄せられています
#01363 NOVO さん RE:Dialog的なフォームを関数化する
こんにちは、凛です。
OpenDialogコンポーネントのように関数を呼ぶことでダイアログボックスフォー
ムが表示される例です。(もっときれいな方法があるかもしれません)
Lines というパラメータにカンマで区切られた文字列 例えば a,b,c,d を渡し
ます。関数を実行すると、ListBoxに
a
b
c
d
と表示するフォームが現れ、 例えば c をクリックすると、ChosenLineには選
択された c が格納され、関数の結果は mrOK になります。
Form1上にボタンをひとつおいて、OnClickを以下のようにします。
procedure TForm1.Button1Click(Sender: TObject);
var
ans:string;
begin
if popup('a,b,c,d',ans) = mrOK then Caption:=ans;
end;
Form2が定義されているUnit2は以下のようにします。
Form2にはListBoxをひとつ配置します。
ListBox1Click はListBox1のOnClickイベントのハンドラです。
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls;
type
TForm2 = class(TForm)
ListBox1: TListBox;
procedure ListBox1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
ResultString:string;
end;
function popup(Lines:String;var ChosenLine:string):TModalResult;
var
Form2: TForm2;
implementation
{$R *.DFM}
function popup(Lines:String;var ChosenLine:string):TModalResult;
var
F2:TForm2;
begin
F2:=TForm2.Create(Application);
F2.ListBox1.Items.Commatext:=Lines;
result:=F2.ShowModal;
ChosenLine:=F2.ResultString;
F2.Release;
end;
procedure TForm2.ListBox1Click(Sender: TObject);
begin
ResultString:=ListBox1.Items[ListBox1.ItemIndex];
ModalResult:=mrOK;
end;
end.
2001/07/21(Sat) 07:39am MXB01744 凛
- FDELPHI MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 01/07/21 -
Original document by 凛 氏 ID:(MXB01744)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|