关于query和label的问题

leedeqing 2000-07-19 04:23:00
请各位仁兄指导:
query1作为主,query2作为从,query1的数据引入dbgrid,query2的数据引入dbmemo,
结果发现dbgrid中的指针移动时dbmemo中的数据未同时变动,请问如何解决?

希望鼠标从label移走时 label的字颜色发生改变,请问如何解决?

非常感谢!!!
...全文
204 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ali_love 2000-08-30
  • 打赏
  • 举报
回复
第一个问题:
解决的方法:从另一个数据集获得参数。
你可以用TQuery控件,Query1为主,Query2为从,Query1与Query2有一致的字段,其中Query2的属性DataSource指向Query1,并且Query2的SQL属性中提供参数,该参数的值就是Query1的对应字段的值。如果在运行期间没有给参数赋值,它就在query1中查找对应的字段,然后用这个字段的值作为参数的值。
如:Query1.Sql:='SELECT CustNo,Company,Add1 FROM Custtable
Query2.Sql:='SELECT CustNo,OrderNo,SaleDate From Ordertable Where
CustNo = :custno' (:cusno是个参数)
jwchc 2000-07-19
  • 打赏
  • 举报
回复
第一个问题:
你应该用TABLE控件,QUERY控件只有查询功能而没有数据感知功能,如一定要用QUERY
则可在QUERY1的AfterScroll事件中通知QUERY2作相当的记录移动.
因为中DBGRID中的指针移动时会引发QUERY1的AfterScroll事件,然后在这个事件中
根据新指针的记录内容通知QUEYR2作相应的记录移动却可实现你的要求.

第二个问题:
我简单实现一下,供你参考:
我在FORM上放一个LABEL1
定义FORM的ONMouseMove事件如下:

procedure TFrmMain.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
With Label1 do
begin
if (X>Left) and (X<Left+Width) and (y>Top) and (y<top+Height) then
Color:=clRed
else
color:=clBlack;
end;
end;


5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧