我为我的服务程序做了个交互的窗体,
可是,窗体上所有的用来输入的控件都不能输入东西,但是checkbox,button等用鼠标操作的控件却行。
这是为什么??
可是,窗体上所有的用来输入的控件都不能输入东西,但是checkbox,button等用鼠标操作的控件却行。
这是为什么??
解决方案 »
- 求几行代码 判断表中列ID是否已存在,不存在则进行‘新增’buttonclick事情
- ★★★★DELPHI 下CMD的操作问题,大家来看看
- 急!急!!急!!! 如下网页中的表单采用图象按钮,请问如何在WebBrowser中模拟点击进行自动提交?
- delphi5+win2000下自定义纸张的问题 。。。急等!!!(100分)
- 欧洲杯 半决赛 捷克VS希腊 200分!!!
- 创建多个窗体出错??
- 请问
- (高分求救)求教超市用的最便宜的微型打印机的信息,回答就有分(前提条件质量要好)
- 怎样将DLL程序作成EXE,我试了,用COMPILE和BUILD都不行(运行时HOST APPLICATION要用)
- 如何向OE5的工具栏和菜单项添加图标。
- 一个简单问题,在线
- 求TcheckTreeView控件!!
看看窗体在Show得时候有异常么?
你可以设置允许交互,但不推荐,作为服务是不需要直接交互的
Windows下这么多服务程序,那个允许交互了?http://lysoft.7u7.net
怪事?
unit main;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs;type
TRsvrTransfer = class(TService)
procedure ServiceContinue(Sender: TService; var Continued: Boolean);
procedure ServiceExecute(Sender: TService);
procedure ServicePause(Sender: TService; var Paused: Boolean);
procedure ServiceShutdown(Sender: TService);
procedure ServiceStart(Sender: TService; var Started: Boolean);
procedure ServiceStop(Sender: TService; var Stopped: Boolean);
private
{ Private declarations }
public
function GetServiceController: TServiceController; override;
{ Public declarations }
end;var
RsvrTransfer: TRsvrTransfer;implementationuses Unit1;{$R *.DFM}procedure ServiceController(CtrlCode: DWord); stdcall;
begin
RsvrTransfer.Controller(CtrlCode);
end;function TRsvrTransfer.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;procedure TRsvrTransfer.ServiceContinue(Sender: TService;
var Continued: Boolean);
begin
while not Terminated do
begin
Sleep(10);
ServiceThread.ProcessRequests(False);
end;
end;procedure TRsvrTransfer.ServiceExecute(Sender: TService);
begin
while not Terminated do
begin
Sleep(10);
ServiceThread.ProcessRequests(False);
end;
end;procedure TRsvrTransfer.ServicePause(Sender: TService;
var Paused: Boolean);
begin
Paused := True;
end;procedure TRsvrTransfer.ServiceShutdown(Sender: TService);
begin
gbCanClose := true;
MainForm.Free;
Status := csStopped;
ReportStatus();
end;procedure TRsvrTransfer.ServiceStart(Sender: TService;
var Started: Boolean);
begin
Started := True;
Svcmgr.Application.CreateForm(TMainForm, MainForm);
gbCanClose := False;
MainForm.Hide;
end;procedure TRsvrTransfer.ServiceStop(Sender: TService;
var Stopped: Boolean);
begin
Stopped := True;
gbCanClose := True;
MainForm.Free;
end;end.
窗体文件:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
CnClasses, CnTrayIcon, Menus, StdCtrls, ExtCtrls, CnEdit,
Mask, CnSpin, IdUDPBase, IdUDPClient, IdTrivialFTP, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient;type
TMainForm = class(TForm)
CnTrayIcon1: TCnTrayIcon;
pm1: TPopupMenu;
j1: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
pnl1: TPanel;
pnl2: TPanel;
pnl3: TPanel;
pnl4: TPanel;
btn1: TButton;
btn2: TButton;
btn3: TButton;
btn4: TButton;
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
chk1: TCheckBox;
lbl4: TLabel;
edt1: TEdit;
edt2: TEdit;
edt3: TEdit;
edt4: TEdit;
edt5: TEdit;
chk2: TCheckBox;
chk3: TCheckBox;
chk4: TCheckBox;
chk5: TCheckBox;
lbl5: TLabel;
lbl6: TLabel;
lbl7: TLabel;
EdtSavePath1: TCnEdit;
SpnEdtInteral: TCnSpinEdit;
lbl8: TLabel;
IdTCPClient1: TIdTCPClient;
IdTrivialFTP1: TIdTrivialFTP;
lbl9: TLabel;
lbl10: TLabel;
lbl11: TLabel;
lbl12: TLabel;
edtHost: TEdit;
edtPort: TEdit;
edtFtpUser: TEdit;
edtFtpPass: TEdit;
edtFtpDir: TEdit;
lbl13: TLabel;
lbl14: TLabel;
lbl15: TLabel;
lbl16: TLabel;
edtDbServer: TEdit;
edtDbUser: TEdit;
edtDbPass: TEdit;
lbl17: TLabel;
lbl18: TLabel;
edtEmail: TEdit;
edtEmailPass: TEdit;
procedure j1Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure btn3Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
MainForm: TMainForm;
gbCanClose: Boolean;implementationuses main;{$R *.dfm}procedure TMainForm.j1Click(Sender: TObject);
begin
self.CnTrayIcon1.ShowApplication;
end;procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
gbCanClose := gbCanClose;
if not gbCanClose then
begin
self.CnTrayIcon1.HideApplication;
end;
end;procedure TMainForm.FormCreate(Sender: TObject);
begin
//FormStyle := fsStayOnTop; {窗口最前}
//SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW); {不在任务栏显示}
gbCanClose := False;
end;procedure TMainForm.N2Click(Sender: TObject);
begin
WinExec('net stop RsvrTransfer',SW_HIDE);
end;procedure TMainForm.btn1Click(Sender: TObject);
begin
self.CnTrayIcon1.HideApplication;
end;procedure TMainForm.btn3Click(Sender: TObject);
begin
WinExec('net pause RsvrTransfer',SW_HIDE);
self.btn2.Enabled := true;
self.btn3.Enabled := false;
end;procedure TMainForm.btn2Click(Sender: TObject);
begin
WinExec('net continue RsvrTransfer',SW_HIDE);
self.btn2.Enabled := false;
self.btn3.Enabled := true;
end;end.