把窗体添加到组件面板上遇到的问题 |
尚未結案
|
zzmbeyond01
中階會員 發表:98 回覆:167 積分:53 註冊:2003-09-07 發送簡訊給我 |
各位先进: 我打算把一个更改长度单位和图形输出各式、大小的对话框放到组件面板上。 源码如下:
unit OptionForm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TOptionsForm = class(TForm) Panel1: TPanel; PrintGroupBox: TGroupBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; FormatCombo: TComboBox; RulerUnitCombo: TComboBox; HeightText: TEdit; WidthText: TEdit; CancelBtn: TButton; OKBtn: TButton; GroupBox2: TGroupBox; Label6: TLabel; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; //封装窗体 TCustOptionsForm =class(TComponent) private OptionsForm:TOptionsForm; FRuleUnitString : string; FExportHeight : double; //储存要打印窗体的输出宽和高 FExportWidth :double; FExportFormatString : string; //输出格式名称 public function Execute:Boolean; //加载对话框 published property RuleUnitString :String read FRuleUnitString write FRuleUnitString; property ExportHeight : double read FExportHeight write FExportHeight; property ExportWidth :double read FExportWidth write FExportWidth; property ExportFormatString: string read FExportFormatString write FExportFormatString ; end; implementation {$R *.dfm} function TCustOptionsForm.Execute: Boolean; begin //创建窗体实例 OptionsForm:=TOptionsForm.Create(application); try result:=false; if OptionsForm.ShowModal= mrOK then //********************************** begin //为什么这里执行不到呢? FRuleUnitString:= OptionsForm.RulerUnitCombo.Text; FExportHeight:= strtofloat( OptionsForm.HeightText.Text); FExportWidth:= strtofloat(OptionsForm.WidthText.Text); FExportFormatString:=OptionsForm.FormatCombo.Text; end; result:=true //********************************** finally OptionsForm.Free; end; end; procedure TOptionsForm.FormCreate(Sender: TObject); var i:integer; begin //往RulerUnitCombo box中添加地图的测量单位 unit for i:=0 to 1 do begin Case i of 0: RulerUnitCombo.Items.Add('Mile'); 1: RulerUnitCombo.Items.Add('KiloMeter'); end; //CASE RulerUnitCombo.ItemIndex := 0; end; //END FOR //往formatcombo box中添加地图的格式 for i:=0 to 1 do begin Case i of 0: FormatCombo.Items.Add('Windows Metafile (*.wmf)'); 1: FormatCombo.Items.Add('Windows Bitmap (*.bmp)'); end; //CASE FormatCombo.itemindex:=0; end; //END FOR end; end.请各位大侠指点 谢谢! |
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
由於你的OptionsForm在確定或取消後沒設定其傳回值故而
OptionsForm.ShowModal永遠不等於mrOK 所以才執行不到
兩種方式設定 1.在屬件檢視器中設定 OKBtn.ModalResult := mrOK; CancelBtn.ModalResult := mrCancel; 2.直接在OKBtn及CancelBtn的OnClick事件中設定 ModalResult := mrOk;及 ModalResult := mrCancel; 之後即可用以判斷式檢測了 if OptionsForm.ShowModal= mrOK then .......祝 好運 發表人 - chance36 於 2004/02/02 21:45:35 |
zzmbeyond01
中階會員 發表:98 回覆:167 積分:53 註冊:2003-09-07 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
|
zzmbeyond01
中階會員 發表:98 回覆:167 積分:53 註冊:2003-09-07 發送簡訊給我 |
Chance36:
你好! 在组件面板中添加了MySETFORM页
1.
我在源程序中增加过程
procedure register;
begin
registercomponents('MySETFORM',[TCustOptionsForm]);
end;
编译之后,安装TCustOptionsForm.dpk包后,在组件面板上找不到mysetform页。
而且我点击Options 选项,查看TCustOptionsForm.dpk包的components属性,其列表框为空,请问这是为什么? < >< >
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
引言: Chance36: 你好! 在组件面板中添加了MySETFORM页 1. 我在源程序中增加过程 procedure register; begin registercomponents('MySETFORM',[TCustOptionsForm]); end; 编译之后,安装TCustOptionsForm.dpk包后,在组件面板上找不到mysetform页。 而且我点击Options 选项,查看TCustOptionsForm.dpk包的components属性,其列表框为空,请问这是为什么? < >< >1.請注意編譯是否誤(有誤當然無法安裝) 2.安裝有何訊息(提示:先前安裝到MyForm 現在改安裝到MySETFORM ,那麼之前的DPK是否有先移除) |
zzmbeyond01
中階會員 發表:98 回覆:167 積分:53 註冊:2003-09-07 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
|
zzmbeyond01
中階會員 發表:98 回覆:167 積分:53 註冊:2003-09-07 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
引言: 非常感谢您的帮助,谢谢!! 我想再问一下,是不是在组件面板上选择右键的属性add->新组件页名称-> MySETFORM后,在组件面板上看不到MySETFORM属性页。 而且在右键的TAB键中的属性页列表中也无法显示吗?以上的操作是針對(已安裝元件)的重新排列組合, 所以在此新增的組件頁,需要拉至少一個元件(已安裝)進來,才會在組件面板上看見 Package的Install 是會依程式碼中的 registercomponents('MySetForm',[TCustOptionsForm]); 自動新增MySetForm組件頁(若已存在則不新增了),然後把TCustOptionsForm元件放進去 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |