得到其他窗口中 ListBox 内的内容 可以用SendMessage进行处理呀。消息LB_GETCOUNT取得总数目。LB_GETITEMDATALB_GETITEMHEIGHT等List Box Messages啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个我会,但不能在Win2000中实现。若你真有意给这么高分,我这星期六给你源代码。[email protected] unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, yupack, vrclass, vrlcd, Tabs, DBCGrids, DBCtrls;type TMainForm = class(TForm) Timer1: TTimer; Bevel1: TBevel; Label1: TLabel; Shape2: TShape; Shape1: TShape; Shape3: TShape; YusoftWallpaper1: TYusoftWallpaper; Bevel2: TBevel; Label2: TLabel; VrNum1: TVrNum; Label3: TLabel; TabSet1: TTabSet; Notebook1: TNotebook; Memo1: TMemo; DBCtrlGrid1: TDBCtrlGrid; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; DBNavigator1: TDBNavigator; DBNavigator2: TDBNavigator; DBNavigator3: TDBNavigator; DBNavigator4: TDBNavigator; DBNavigator5: TDBNavigator; BitBtn4: TBitBtn; BitBtn5: TBitBtn; YusoftWallpaper2: TYusoftWallpaper; YusoftWallpaper3: TYusoftWallpaper; Bevel3: TBevel; Bevel4: TBevel; Image1: TImage; SaveDialog1: TSaveDialog; procedure Timer1Timer(Sender: TObject); procedure TabSet1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var MainForm: TMainForm; WHandle,ListBoxHandle:Hwnd; YHDM:String; GZSJ:Integer; GZLX:String;implementation{$R *.DFM}procedure TMainForm.Timer1Timer(Sender: TObject);Var Stemp,LastLine,SecondLine:PChar; LineCount,I,N, X,Y:Integer; DM:String;begin Shape1.Brush.Color:=clRed; Shape2.Brush.Color:=clRed; Shape3.Brush.Color:=clRed; WHandle:=FindWindow(PChar('V6W'),Nil); If WHandle<=0 Then Begin WinExec('V6W.EXE',0); Exit; End; ShowWindow(WHandle,SW_HIDE); Shape1.Brush.Color:=clGreen; ListBoxHandle:=FindWindowEx(WHandle,0,Nil,Nil)+4; LineCount:=SendMessage(ListBoxHandle,LB_GETCOUNT,0,0); If LineCount<=0 Then Begin SendMessage(WHandle,WM_Close,0,0); Exit; End; Shape2.Brush.Color:=clGreen; GetMem(Stemp,80); GetMem(LastLine,80); GetMem(SecondLine,80); If LineCount>0 Then SendMessage(ListBoxHandle,LB_GETTEXT,0,Longint(LastLine)); If LineCount>1 Then SendMessage(ListBoxHandle,LB_GETTEXT,0,Longint(SecondLine)); N:=0; For I:=0 To Memo1.Lines.Count-2 Do If ((Memo1.Lines[I]=LastLine) AND (Memo1.Lines[I]=SecondLine)) Then Begin N:=I; Break; End; For I:=ABS(N-Memo1.Lines.Count) To LineCount-1 Do Begin SendMessage(ListBoxHandle,LB_GETTEXT,I,Longint(Stemp)); If Length(Stemp)>0 Then Begin Memo1.Lines.Add(Stemp); If Pos('DM:=[',Stemp)>0 Then Begin //1 不同于YHDM 则保存原故障信息 记录用户代码 X:=Pos('DM:=[',Stemp); Y:=Pos(']',Stemp); DM:=Copy(Stemp,X+5,Y-X-5); If DM<>YHDM Then Begin //保存投诉信息 YHDM:=DM; GZSJ:=0; End; End; If Pos('GZ:=[',Stemp)>0 Then Begin //2 记录故障代码 X:=Pos('GZ:=[',Stemp); Y:=Pos(']',Stemp); GZLX:=Copy(Stemp,X+5,Y-X-5); End; End; End; FreeMem(SecondLine,80); FreeMem(LastLine,80); FreeMem(Stemp,80); VrNum1.Value:=Memo1.Lines.Count; If YHDM<>'' Then Begin Inc(GZSJ); If GZSJ>30 Then Begin //保存故障投诉信息 YHDM:=''; GZSJ:=0; End; End;end;procedure TMainForm.TabSet1Click(Sender: TObject);begin Notebook1.PageIndex:=TabSet1.TabIndex;end;procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);begin If WHandle<>0 Then SendMessage(WHandle,WM_Close,0,0);end;procedure TMainForm.BitBtn1Click(Sender: TObject);begin Memo1.Clear;end;procedure TMainForm.BitBtn2Click(Sender: TObject);begin IF SaveDialog1.Execute Then Memo1.Lines.SaveToFile(SaveDialog1.FileName);end;Initialization WHandle:=0; ListBoxHandle:=0; YHDM:=''; GZSJ:=0; GZLX:='';end. 谁用过 EPSON TM-U220 带网络接口的打印机? 如何在delphi同一界面下显示不同表的内容 在stringgrid中如何修改数据库数据并提交 delphi开发的数据库程序问题(急,请赐教) 我要导入的文本段的开始标志如下,其中07403十分重要,它是与其它文本段的开始标志相区别的唯一特征: 人性化程序设计(2)-何为灌金! 请教菜鸟问题! 用Delphi写简单小程序 哪有 Delphi 5.X ADO_MTS_COM+高级程序设计篇 的光盘源码下啊 table的filter属性怎样实现多个过滤条件(用代码实现) DelPhi中DLL可调用其他DLL吗? TDatabase求教
若你真有意给这么高分,我这星期六给你源代码。
[email protected]
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, yupack, vrclass, vrlcd, Tabs, DBCGrids,
DBCtrls;type
TMainForm = class(TForm)
Timer1: TTimer;
Bevel1: TBevel;
Label1: TLabel;
Shape2: TShape;
Shape1: TShape;
Shape3: TShape;
YusoftWallpaper1: TYusoftWallpaper;
Bevel2: TBevel;
Label2: TLabel;
VrNum1: TVrNum;
Label3: TLabel;
TabSet1: TTabSet;
Notebook1: TNotebook;
Memo1: TMemo;
DBCtrlGrid1: TDBCtrlGrid;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
DBNavigator1: TDBNavigator;
DBNavigator2: TDBNavigator;
DBNavigator3: TDBNavigator;
DBNavigator4: TDBNavigator;
DBNavigator5: TDBNavigator;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
YusoftWallpaper2: TYusoftWallpaper;
YusoftWallpaper3: TYusoftWallpaper;
Bevel3: TBevel;
Bevel4: TBevel;
Image1: TImage;
SaveDialog1: TSaveDialog;
procedure Timer1Timer(Sender: TObject);
procedure TabSet1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var MainForm: TMainForm;
WHandle,ListBoxHandle:Hwnd;
YHDM:String;
GZSJ:Integer;
GZLX:String;implementation{$R *.DFM}
procedure TMainForm.Timer1Timer(Sender: TObject);
Var Stemp,LastLine,SecondLine:PChar;
LineCount,I,N, X,Y:Integer;
DM:String;
begin
Shape1.Brush.Color:=clRed;
Shape2.Brush.Color:=clRed;
Shape3.Brush.Color:=clRed; WHandle:=FindWindow(PChar('V6W'),Nil);
If WHandle<=0 Then
Begin
WinExec('V6W.EXE',0);
Exit;
End;
ShowWindow(WHandle,SW_HIDE);
Shape1.Brush.Color:=clGreen; ListBoxHandle:=FindWindowEx(WHandle,0,Nil,Nil)+4;
LineCount:=SendMessage(ListBoxHandle,LB_GETCOUNT,0,0);
If LineCount<=0 Then
Begin
SendMessage(WHandle,WM_Close,0,0);
Exit;
End; Shape2.Brush.Color:=clGreen;
GetMem(Stemp,80);
GetMem(LastLine,80);
GetMem(SecondLine,80); If LineCount>0 Then
SendMessage(ListBoxHandle,LB_GETTEXT,0,Longint(LastLine));
If LineCount>1 Then
SendMessage(ListBoxHandle,LB_GETTEXT,0,Longint(SecondLine)); N:=0;
For I:=0 To Memo1.Lines.Count-2 Do
If ((Memo1.Lines[I]=LastLine) AND (Memo1.Lines[I]=SecondLine)) Then
Begin
N:=I;
Break;
End; For I:=ABS(N-Memo1.Lines.Count) To LineCount-1 Do
Begin
SendMessage(ListBoxHandle,LB_GETTEXT,I,Longint(Stemp));
If Length(Stemp)>0 Then
Begin
Memo1.Lines.Add(Stemp); If Pos('DM:=[',Stemp)>0 Then
Begin
//1 不同于YHDM 则保存原故障信息 记录用户代码
X:=Pos('DM:=[',Stemp);
Y:=Pos(']',Stemp); DM:=Copy(Stemp,X+5,Y-X-5); If DM<>YHDM Then
Begin
//保存投诉信息 YHDM:=DM;
GZSJ:=0;
End;
End; If Pos('GZ:=[',Stemp)>0 Then
Begin
//2 记录故障代码
X:=Pos('GZ:=[',Stemp);
Y:=Pos(']',Stemp); GZLX:=Copy(Stemp,X+5,Y-X-5);
End;
End;
End; FreeMem(SecondLine,80);
FreeMem(LastLine,80);
FreeMem(Stemp,80); VrNum1.Value:=Memo1.Lines.Count;
If YHDM<>'' Then
Begin
Inc(GZSJ);
If GZSJ>30 Then
Begin
//保存故障投诉信息 YHDM:='';
GZSJ:=0;
End;
End;
end;procedure TMainForm.TabSet1Click(Sender: TObject);
begin
Notebook1.PageIndex:=TabSet1.TabIndex;
end;procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
If WHandle<>0 Then
SendMessage(WHandle,WM_Close,0,0);
end;procedure TMainForm.BitBtn1Click(Sender: TObject);
begin
Memo1.Clear;
end;procedure TMainForm.BitBtn2Click(Sender: TObject);
begin
IF SaveDialog1.Execute Then
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
end;Initialization
WHandle:=0;
ListBoxHandle:=0;
YHDM:='';
GZSJ:=0;
GZLX:='';
end.