Delphi 是否有一种方法可以从动态对象(如和ID)发送数据?
因此,我必须创建一个类似Instagram或9Gag的软件,如果按下Upvote按钮,我希望使用Post_ID和User_ID添加到数据库中的Upvote表中。由于动态创建的面板是按钮的父级,因此我希望使用该数据,但OnClick事件只能接受1个参数。有人能帮忙吗 为了纠正我自己的错误,我使用了图像而不是按钮,通常我会使用按钮的标题来存储数据,但我不能使用TImageDelphi 是否有一种方法可以从动态对象(如和ID)发送数据?,delphi,pascal,Delphi,Pascal,因此,我必须创建一个类似Instagram或9Gag的软件,如果按下Upvote按钮,我希望使用Post_ID和User_ID添加到数据库中的Upvote表中。由于动态创建的面板是按钮的父级,因此我希望使用该数据,但OnClick事件只能接受1个参数。有人能帮忙吗 为了纠正我自己的错误,我使用了图像而不是按钮,通常我会使用按钮的标题来存储数据,但我不能使用TImage 过程dynimgupoteclick(发送方:TObject); 开始 showmessage('Clicked'); 结束;
过程dynimgupoteclick(发送方:TObject);
开始
showmessage('Clicked');
结束;
dynImgUpvote.OnClick:=dynImgUpvote单击;
我想编写它,以便在单击按钮时,我可以发送Post_ID和User_ID以与SQL一起使用,以添加到数据库中。但是,我不能使用多个参数。我有以下建议:
标记
属性是一种不好的形式,一般不建议使用类型TMyImage=class(TImage)
严格保密
FStrParam:字符串;
fintpram:整数;
公众的
属性StrParam:字符串读取FStrParam写入FStrParam;
属性IntParam:字符串读取FIntParam写入FIntParam;
结束;
然后动态创建图像,并设置所有必要的属性:
procedure TForm1.Button1Click(Sender: TObject);
var
Img: TMyImage;
begin
Img := TMyImage.Create(Self);
{Set other properties: size, positipn etc.}
Img.StrParam := 'Some string';
Img.IntParam := 123;
Img.OnClick := dynImgUpvoteClick;
end;
并处理类型OnClick处理程序中的任何属性:
procedure dynImgUpvoteClick(Sender: TObject);
begin
showmessage('Clicked ' + (Sender as TMyImage).StrParam +
IntToStr((Sender as TMyImage).IntParam));
end;
大多数Delphi控件都有一个标记属性,您可以在其中存储一个nativeint值。如果您的所有组件都已命名,是否可以改用该名称?((发送方名称为TImage).Name)@Brian,这只允许我有一个参数,因为只有整数值被接受,并且没有方法组合到值,然后当试图再次提取它以区分post_ID和user_ID时,Luddite的方法可能是用字符串属性定义一个对象。不过,字符串也有地址。我更喜欢前者,以防以后需要添加任何额外属性。单击图像时,Post_ID和User_ID来自何处?图像如何知道应该使用什么Post_ID和User_ID?如果你真的很清楚你想做什么,那么有很多方法可以完成你想做的事情。您不能修改
t通知
事件的签名(这就是OnClick
事件),但有一些方法可以在该事件中获取信息。如果不知道你具体想完成什么,很难建议如何去做。