急!!!如何根据窗口是否SHOW来启停控件的特定工作 我要做一个控件,想有如下的功能,当放置控件的窗口被CLOSE后,控件能停止特定的工作(比如关闭控件内的TTIMER),反之当窗口SHOW之后能恢复这些工作,我试了一下TWINCONTROL的showing属性发现没作用,有谁知道这控件如何做。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在ONSHOW和ONCLOSE事件中写相应的代码 你这种想法是行不通的,当Form执行Close后,它会自动释放所有放置在上面的组件,当你重新恢复后所有的组件又会重新构建,不可能恢复原来的值。所以解决的办法是在Form释放之前把你需要的值保存下来,有很多方法可以解决。比如:记录在文本文件中、注册表中、数据库中,当窗体重新Create时,把这些记录取出来赋值。 重载TreeView的CreateParams:typeTCheckBoxTreeView = class(TTreeView)protectedprocedure CreateParams(var Params: TCreateParams); override;end;procedure TCheckBoxTreeView.CreateParams(var Params: TCreateParams);begininherited;Params.Style:=Params.Style or TVS_CHECKBOXES;{ TVS_CHECKBOXES declared in CommCtrl }end;如果要Check这个CheckBox,可以用下面的代码:function IsNodeChecked(Node :TTreeNode) :Boolean;constTVIS_CHECKED = $2000;varTvItem :TTVItem;beginTvItem.Mask := TVIF_STATE;TvItem.hItem := Node.ItemId;TreeView_GetItem(Node.TreeView.Handle, TvItem);Result := (TvItem.State and TVIS_CHECKED) = TVIS_CHECKED;end;procedure SetNodeChecked(Node :TTreeNode; Checked :Boolean);constTVIS_CHECKED = $2000;varTvItem :TTVItem;beginFillChar(TvItem, SizeOf(TvItem), 0);with TvItem do beginhItem := Node.ItemId;Mask := TVIF_STATE;StateMask := TVIS_STATEIMAGEMASK;if Checked thenTvItem.State :=TVIS_CHECKEDelseTvItem.State :=TVIS_CHECKED shr 1;TreeView_SetItem(Node.TreeView.Handle, TvItem);end;end;可以做成事件和封装成一个类:private OldState :Boolean;procedure Change(Node: TTreeNode); override;begininherited Change(Node);OldState := IsNodeChecked(Node);end;procedure Click; override;varNewState :Boolean;begininherited Click;NewState := IsNodeChecked(Self.Selected);if NewState = OldState then Exit;if (NewState) and Assigned(OnNodeChecked) then OnNodeChecked()else if (not NewState) and Assigned(OnNodeUnChecked) thenOnNodeUnChecked()// OnNodeChecked & OnNodeUnchecked will be events that you declareend; -----我有源码,可以发给你。 只要被CLOSE的不是主窗口,其上的控件继续工作呀 Application.CreateForm(TForm1, Form1);这样也可以。在ONSHOW和ONCLOSE事件中写相应的代码,也可以的 救急,无法删除数据库文件? ***请问这是什么意思*** 如何将有格式的文字与表格一起存到数据库中?? 小问题:如何获取文件的创建时间、修改时间、作者等选项?在线等 怎样用sql列出一个表的所有字段? 如何根据字体来确定label的长度?(100分) 急,急、急——窗口融合问题 怎样使LISTBOX的滚动条具有FLAT风格? 初学Delphi因看些什么书???? URLDownloadToFile下载网络文件 经常卡死不动 如何设置超时 继续下载下一个文件 Delphi如何将回车写入XML文件? 一个看起来很简单的问题:字符串和浮点数的转换
这样也可以。
在ONSHOW和ONCLOSE事件中写相应的代码,也可以的