主页
Top.Mail.Ru Yandeks.Metrika
论坛:“主要”;
当前存档:2003.05.01;
下载:[xml.tar.bz2];

向下

在动态创建的窗口中实现按钮单击事件 找到类似的分支


R   (2003-04-18 01:58) [0]

以下是Delphi源代码中的函数示例,如何实现它
没有关闭这个模态窗口的机制点击按钮和
在这个点击上运行,例如嘟嘟声?
函数InputQuery(const ACaption,APrompt:string;
var Value:string):Boolean;
VAR
形式:TForm;
提示:TLabel;
编辑:TEdit;
DialogUnits:TPoint;
ButtonTop,ButtonWidth,ButtonHeight:Integer;
开始
结果:=假;
形式:= TForm.Create(申请);
与表格做
尝试
Canvas.Font:= Font;
DialogUnits:= GetAveCharSize(Canvas);
BorderStyle:= bsDialog;
标题:= ACaption;
ClientWidth:= MulDiv(180,DialogUnits.X,4);
ClientHeight:= MulDiv(63,DialogUnits.Y,8);
职位:= poScreenCenter;
提示:= TLabel.Create(Form);
用提示做
开始
家长:=表格;
AutoSize:= True;
左:= MulDiv(8,DialogUnits.X,4);
上:= MulDiv(8,DialogUnits.Y,8);
标题:=良好;
结束;
编辑:= TEdit.Create(表格);
用编辑做
开始
家长:=表格;
左:= Prompt.Left;
上:= MulDiv(19,DialogUnits.Y,8);
宽度:= MulDiv(164,DialogUnits.X,4);
MaxLength:= 255;
文字:=价值;
全选;
结束;
ButtonTop:= MulDiv(41,DialogUnits.Y,8);
ButtonWidth:= MulDiv(50,DialogUnits.X,4);
ButtonHeight:= MulDiv(14,DialogUnits.Y,8);
用TButton.Create(Form)做
开始
家长:=表格;
标题:= SMsgDlgOK;
ModalResult:= mrOk;
默认值:=真;
SetBounds(MulDiv(38,DialogUnits.X,4),ButtonTop,ButtonWidth,
ButtonHeight);
结束;
用TButton.Create(Form)做
开始
家长:=表格;
标题:= SMsgDlgCancel;
ModalResult:= mrCancel;
取消:=真;
SetBounds(MulDiv(92,DialogUnits.X,4),ButtonTop,ButtonWidth,
ButtonHeight);
结束;
如果ShowModal = mrOk那么
开始
值:= Edit.Text;
结果:=真;
结束;
最后
Form.Free;
结束;
结束;



DJ_Sedoy   (2003-04-18 05:15) [1]

假设删除MedalResult:= true是合乎逻辑的?
如果我正确理解了这个问题



Palladin   (2003-04-18 07:16) [2]

最明显的是将sv-in onclick分配给所需的TButton



R   (2003-04-18 08:11) [3]

> Palladin©
以及如何分配它,因为表单是动态创建的,也是按钮。
我理解了lamer的问题,但仍然如何。举个例子。



Palladin   (2003-04-18 08:17) [4]

你有一个例子......
在主窗体文件中......

直观地创建一个按钮并为其分配一个OnClick处理程序,并查看添加到项目中的内容及其设计方式,然后考虑组件的事件是您可以分配的属性...



R   (2003-04-18 08:51) [5]

我仍然不明白如何动态地做到这一点。 举一个示例代码。



Skier   (2003-04-18 09:23) [6]

> R.
http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988625051&n=19



Palladin   (2003-04-18 09:27) [7]

去帮忙看看
属性OnClick:TNotifyEvent;
继续,见:
类型TNotifyEvent = procedure(Sender:TObject)ofobject;
我们认为,我们想的更多(以防万一)
猜测并以主要形式写作

过程OnMyButtonClick(Sender:TObject);
然后
我们描述它

过程TForm1.OnMyButtonClick(Sender:TObject);
开始
Application.ShowMessage(“我以前在哪里?!”,“尤里卡!);
结束;

在创建表单的代码中写入(要获取类TForm1,我们将您的创建过程放在带有主窗体的模块中)

用TButton.Create(Form)做
开始
家长:=表格;
标题:= SMsgDlgOK;
ModalResult:= mrOk;
默认值:=真;
SetBounds(MulDiv(38,DialogUnits.X,4),ButtonTop,ButtonWidth,
ButtonHeight);
OnClick:= TForm1.OnMyButtonClick;
结束;



R   (2003-04-18 09:38) [8]

谢谢你的帮助。



Страницы: 1 整个分支

论坛:“主要”;
当前存档:2003.05.01;
下载:[xml.tar.bz2];

楼上









内存:0.58 MB
时间:0.036 c
14-794
SsZorro
2003-04-15 19:01
2003.05.01
别林斯基


3-478
SergLight
2003-04-11 11:24
2003.05.01
分布式DB


14-768
ZeroDivide
2003-04-14 09:46
2003.05.01
是否值得学习盲目的十指方法?


3-380
Jaxtor
2003-04-14 15:59
2003.05.01
IBDataSet错误


3-472
AVR
2003-04-14 14:48
2003.05.01
Kylix中的本地数据库(Paradox,dbf)





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法文
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本性玩偶 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 泰米尔人 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский