怎样才能作出像foxmail或者金山词霸那样最小化时变成系统托盘的效果呢???(50分)

  • 主题发起人 主题发起人 coconut123
  • 开始时间 开始时间
C

coconut123

Unregistered / Unconfirmed
GUEST, unregistred user!
用了shell_notifyicon函数,想在最小化时才用,窗体的最小化会触发什么事件呢?<br>找了半天没找到?或者还有其他办法呢?<br>多谢了
 
unit serverform;<br><br>interface<br><br>uses<br>&nbsp; Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br>&nbsp; Dialogs, StdCtrls, Buttons, Grids, shellapi, Menus;<br><br>const<br>&nbsp;WM_TRAYICON = WM_APP + 0;<br><br>type<br>&nbsp; Twzadmin = class(TForm)<br>&nbsp; &nbsp; Label1: TLabel;<br>&nbsp; &nbsp; BitBtn1: TBitBtn;<br>&nbsp; &nbsp; PopupMenu: TPopupMenu;<br>&nbsp; &nbsp; close1: TMenuItem;<br>&nbsp; &nbsp; ol1: TMenuItem;<br>&nbsp; &nbsp; N1: TMenuItem;<br>&nbsp; &nbsp; N2: TMenuItem;<br>&nbsp; &nbsp; N3: TMenuItem;<br>&nbsp; &nbsp; Label3: TLabel;<br>&nbsp; &nbsp; Label4: TLabel;<br>&nbsp; &nbsp; Label5: TLabel;<br>&nbsp; &nbsp; procedure BitBtn1Click(Sender: TObject);<br>&nbsp; &nbsp; procedure FormCreate(Sender: TObject);<br>&nbsp; &nbsp; procedure FormClose(Sender: TObject; var Action: TCloseAction);<br>&nbsp; &nbsp; procedure N3Click(Sender: TObject);<br>&nbsp; &nbsp; procedure ol1Click(Sender: TObject);<br>&nbsp; private<br>&nbsp; &nbsp; { Private declarations }<br>&nbsp; &nbsp; procedure syscommand(var message:twmsyscommand);message wm_syscommand;<br>&nbsp; &nbsp; procedure wmtrayicon(var message:Tmessage);message wm_trayicon;<br>&nbsp; &nbsp; procedure modifytrayicon(action:dword);<br>&nbsp; public<br>&nbsp; &nbsp; { Public declarations }<br>&nbsp; end;<br><br>var<br>&nbsp; wzadmin: Twzadmin;<br><br>implementation<br><br>uses serverdata;<br><br>{$R *.dfm}<br><br>procedure Twzadmin.BitBtn1Click(Sender: TObject);<br>begin<br>close;<br>end;<br><br>procedure Twzadmin.modifytrayicon(action: dword);<br>var<br>&nbsp;nidata:tnotifyicondata;<br>begin<br>&nbsp;nidata.cbSize:=sizeof(tnotifyicondata);<br>&nbsp;nidata.uID:=0;<br>&nbsp;nidata.uFlags:=NIF_MESSAGE or NIF_ICON or NIF_TIP;<br>&nbsp;nidata.Wnd := Handle;<br>&nbsp;nidata.uCallbackMessage:=wm_trayicon;<br>&nbsp;nidata.hIcon:=application.Icon.Handle;<br>&nbsp;strpcopy(nidata.szTip,application.Title);<br>&nbsp;shell_notifyicon(action,@nidata);<br>end;<br><br>procedure Twzadmin.wmtrayicon(var message: Tmessage);<br>var<br>&nbsp;mousepos:tpoint;<br>begin<br>&nbsp;if message.LParam=wm_Rbuttondown then<br>&nbsp; begin<br>&nbsp; &nbsp; setactivewindow(handle);<br>&nbsp; &nbsp; getcursorpos(mousepos);<br>&nbsp; &nbsp; popupmenu.Popup(mousepos.X,mousepos.Y);<br>&nbsp; end;<br>&nbsp; if message.LParam=wm_Lbuttondblclk then //雙擊<br>&nbsp; &nbsp;begin<br>&nbsp; &nbsp; n3.Click;<br>&nbsp; &nbsp;end;<br>end;<br><br>procedure Twzadmin.FormCreate(Sender: TObject);<br>begin<br>&nbsp;modifytrayicon(nim_add);<br>end;<br><br>procedure Twzadmin.FormClose(Sender: TObject; var Action: TCloseAction);<br>begin<br>&nbsp;modifytrayicon(nim_delete);<br>end;<br><br>procedure Twzadmin.N3Click(Sender: TObject);<br>begin<br>&nbsp;self.Show;<br>end;<br><br>procedure Twzadmin.syscommand(var message: twmsyscommand);<br>begin<br>&nbsp;if message.CmdType=sc_minimize then<br>&nbsp; &nbsp;self.Hide<br>&nbsp;else if message.CmdType=sc_maximize then<br>&nbsp;else inherited ; &nbsp; <br>end;<br><br>procedure Twzadmin.ol1Click(Sender: TObject);<br>begin<br>&nbsp;self.Close;<br>end;<br><br>end.
 
去playicq下个trayicon不就行了,代码都不用写[:D]
 
用RX Lib控件,还能随事件改变托盘图标。<br>下载地址:www.51delphi.com
 
raize也行 www.playicq.com或www.51delphi.com
 
想要源代码,自己看看。<br>希望是在最小化时,在切换任务栏里没有这个程序按钮。大致知道该怎么写,可是却不知道该在哪个事件里加这段代码,窗口最小化(包括当该应用程序active时,再次点击切换任务栏上的程序图标使其最小化)时会触发什么事件呢?<br>to 011101<br>你的程序我编译了一下,可是无法击右键,最小化时也没办法在切换任务栏中消失
 
你說的無法單擊右鍵是什麼意思?mouse坏了? :)<br>最小化時可以在任務欄中消失的.不過在撬盤區的圖標在程序關閉后不會自動消失.
 
我给你我之前的一个光驱控制的源代码吧
 
unit Unit1;<br><br>interface<br><br>uses<br>&nbsp; &nbsp; &nbsp;Windows, Messages, SysUtils, Variants, Classes, Controls, Forms, mmsystem, StdCtrls, ActnList, ExtCtrls, Buttons,<br>&nbsp; &nbsp; &nbsp;Graphics, ComCtrls, dialogs, shellapi, Menus;<br><br>type<br>&nbsp; &nbsp; &nbsp;TForm1 = class(TForm)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ActionList1: TActionList;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; diskopen: TAction;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; diskclose: TAction;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; flash: TAction;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Panel1: TPanel;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; StatusBar1: TStatusBar;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SpeedButton1: TSpeedButton;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SpeedButton2: TSpeedButton;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SpeedButton3: TSpeedButton;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Image1: TImage;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SpeedButton4: TSpeedButton;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SpeedButton5: TSpeedButton;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Label1: TLabel;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SpeedButton6: TSpeedButton;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PopupMenu1: TPopupMenu;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; N1: TMenuItem;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; N2: TMenuItem;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; N3: TMenuItem;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; N4: TMenuItem;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure diskopenExecute(Sender: TObject);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure diskcloseExecute(Sender: TObject);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure flashExecute(Sender: TObject);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure SpeedButton5Click(Sender: TObject);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure SpeedButton4Click(Sender: TObject);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Shift: TShiftState; X, Y: Integer);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure IconOnClick(var message: TMessage); message WM_USER + 1;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure SpeedButton6Click(Sender: TObject);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure FormCreate(Sender: TObject);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure N1Click(Sender: TObject);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure N2Click(Sender: TObject);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure N3Click(Sender: TObject);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure N4Click(Sender: TObject);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; procedure PopupMenu1Change(Sender: TObject; Source: TMenuItem;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Rebuild: Boolean);<br><br>&nbsp; &nbsp; &nbsp;private<br>&nbsp; &nbsp; { Private declarations }<br>&nbsp; &nbsp; &nbsp;public<br>&nbsp; &nbsp; { Public declarations }<br>&nbsp; &nbsp; &nbsp;end;<br><br>var<br>&nbsp; &nbsp; &nbsp;Form1: TForm1;<br>&nbsp; &nbsp; &nbsp;moveflag: boolean;<br>&nbsp; &nbsp; &nbsp;movex, movey, pressx, pressy: integer;<br><br>implementation<br><br>{$R *.dfm}<br><br>procedure TForm1.diskopenExecute(Sender: TObject);<br>begin<br>&nbsp; &nbsp; &nbsp;self.StatusBar1.Panels.Items[0].Text := '光驱';<br><br>&nbsp; &nbsp; &nbsp;if (DiskFree(7) = -1) then self.StatusBar1.Panels.Items[1].Text := '已经打开'<br>&nbsp; &nbsp; &nbsp;else<br>&nbsp; &nbsp; &nbsp;begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mciSendString('Set cdaudio door open wait', nil, 0, handle);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; StatusBar1.Panels.Items[1].Text := ' 打开';<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.Refresh;<br>&nbsp; &nbsp; &nbsp;end<br>end;<br><br>procedure TForm1.diskcloseExecute(Sender: TObject);<br>begin<br>&nbsp; &nbsp; &nbsp;self.StatusBar1.Panels.Items[0].Text := '光驱';<br>&nbsp; &nbsp; &nbsp;if not (DiskFree(7) = -1) then StatusBar1.Panels.Items[1].Text := '已经闭合'<br>&nbsp; &nbsp; &nbsp;else<br>&nbsp; &nbsp; &nbsp;begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mciSendString('Set cdaudio door closed wait', nil, 0, handle);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; StatusBar1.Panels.Items[1].Text := '闭合';<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.Refresh;<br>&nbsp; &nbsp; &nbsp;end<br>end;<br><br>procedure TForm1.flashExecute(Sender: TObject);<br>var<br>&nbsp; &nbsp; &nbsp;S, sstr: string;<br>&nbsp; &nbsp; &nbsp;AmtFree: single;<br>&nbsp; &nbsp; &nbsp;Total: single;<br>&nbsp; &nbsp; &nbsp;l: single;<br>begin<br>&nbsp; &nbsp; &nbsp;if DiskFree(8) = -1 then StatusBar1.Panels.Items[1].Text := '闪盘已经取走'<br>&nbsp; &nbsp; &nbsp;else<br>&nbsp; &nbsp; &nbsp;begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AmtFree := DiskFree(8);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Total := DiskSize(8);<br>&nbsp; &nbsp; //showmessage(inttostr(Total));<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; l := (AmtFree / Total) * 100;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sstr := floattostr(l);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sstr := copy(sstr, 1, length(sstr) - 11);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; S := '有' + sstr + '%的可用空间: &nbsp;' + floattostr(AmtFree / 1024) + 'KB 可用';<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.StatusBar1.Panels.Items[0].Text := '闪盘';<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.StatusBar1.Panels.Items[1].text := s;<br>&nbsp; &nbsp; &nbsp;end<br>end;<br><br>procedure TForm1.SpeedButton5Click(Sender: TObject);<br>begin<br>&nbsp; &nbsp; &nbsp;close;<br>end;<br><br>procedure TForm1.SpeedButton4Click(Sender: TObject);<br>begin<br>&nbsp; &nbsp; &nbsp;application.Minimize;<br>&nbsp; //SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);<br>&nbsp; &nbsp; &nbsp;ShowWindow(application.Handle, SW_HIDE);<br>end;<br><br>procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;<br>&nbsp; &nbsp; &nbsp;Shift: TShiftState; X, Y: Integer);<br>begin<br>&nbsp; &nbsp; &nbsp;movex := x;<br>&nbsp; &nbsp; &nbsp;movey := y;<br><br><br>end;<br><br>procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,<br>&nbsp; &nbsp; &nbsp;Y: Integer);<br>begin<br>&nbsp; &nbsp; &nbsp;if (shift = [ssleft]) then<br>&nbsp; &nbsp; &nbsp;begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.left := self.left + (x - movex);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.top := self.top + (y - movey);<br>&nbsp; &nbsp; &nbsp;end<br>end;<br><br>procedure TForm1.SpeedButton6Click(Sender: TObject);<br>begin<br>&nbsp; &nbsp; &nbsp;ShellAbout(Handle, '光驱精灵1.0#是一坨狗屎', '光驱精灵', Application.Icon.Handle);<br>end;<br><br>procedure TForm1.FormCreate(Sender: TObject);<br>var<br>&nbsp; &nbsp; &nbsp;IconData: TNotifyIconData;<br>&nbsp; &nbsp; &nbsp;cdromicon: ticon;<br>begin<br>&nbsp; &nbsp; &nbsp;SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);<br>&nbsp; &nbsp; &nbsp;CdRomIcon := TIcon.Create;<br>&nbsp; &nbsp; &nbsp;CdRomIcon.Handle := application.Icon.Handle; //LoadFromFile('zig.ico');<br>&nbsp; &nbsp; &nbsp;IconData.cbSize := SizeOf(IconData);<br>&nbsp; &nbsp; &nbsp;IconData.Wnd := Handle;<br>&nbsp; &nbsp; &nbsp;IconData.uID := 1;<br>&nbsp; &nbsp; &nbsp;IconData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;<br>&nbsp; &nbsp; &nbsp;IconData.uCallBackMessage := WM_USER + 1;<br>&nbsp; &nbsp; &nbsp;IconData.hIcon := CdRomIcon.Handle;<br>&nbsp; &nbsp; &nbsp;IconData.szTip := '光驱精灵1.0 刘昆制作';<br>&nbsp; &nbsp; &nbsp;Shell_NotifyIcon(NIM_ADD, @IconData);<br>&nbsp; &nbsp; &nbsp;self.Hide;<br>end;<br><br>procedure tform1.IconOnClick(var message: Tmessage);<br>var<br>&nbsp; &nbsp; &nbsp;p: TPoint;<br>begin<br>&nbsp; &nbsp; &nbsp;if (message.lParam = WM_LBUTTONDOWN) then<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);<br>&nbsp; &nbsp; &nbsp;if (message.lParam = WM_RBUTTONDOWN) then<br>&nbsp; &nbsp; &nbsp;begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GetCursorPos(p);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; popupmenu1.Popup(p.x, p.y);<br>&nbsp; &nbsp; &nbsp;end;<br>&nbsp; &nbsp; &nbsp;if (message.lParam = WM_LBUTTONDBLCLK) then<br>&nbsp; &nbsp; &nbsp;begin<br>&nbsp; &nbsp; //SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ShowWindow(application.Handle, 1);<br>&nbsp; &nbsp; &nbsp;end<br>end;<br><br>procedure TForm1.N1Click(Sender: TObject);<br>begin<br>&nbsp; &nbsp; &nbsp;self.diskopenExecute(self);<br>end;<br><br>procedure TForm1.N2Click(Sender: TObject);<br>begin<br>&nbsp; &nbsp; &nbsp;self.diskcloseExecute(self);<br>end;<br><br>procedure TForm1.N3Click(Sender: TObject);<br>begin<br>&nbsp; &nbsp; &nbsp;self.flashExecute(self);<br>end;<br><br>procedure TForm1.N4Click(Sender: TObject);<br>begin<br>&nbsp; &nbsp; &nbsp;self.Close;<br>end;<br><br>procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);<br>var<br>&nbsp; &nbsp; &nbsp;IconData: TNotifyIconData;<br>&nbsp; &nbsp; &nbsp;cdromicon: ticon;<br>begin<br>&nbsp; &nbsp; &nbsp;CdRomIcon := TIcon.Create;<br>&nbsp; &nbsp; &nbsp;CdRomIcon.Handle := application.Icon.Handle;<br>&nbsp; &nbsp; &nbsp;IconData.cbSize := SizeOf(IconData);<br>&nbsp; &nbsp; &nbsp;IconData.Wnd := Handle;<br>&nbsp; &nbsp; &nbsp;IconData.uID := 1;<br>&nbsp; &nbsp; &nbsp;IconData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;<br>&nbsp; &nbsp; &nbsp;IconData.uCallBackMessage := WM_USER + 1;<br>&nbsp; &nbsp; &nbsp;IconData.hIcon := CdRomIcon.Handle;<br>&nbsp; &nbsp; &nbsp;IconData.szTip := '光驱精灵1.0 刘昆制作';<br>&nbsp; &nbsp; &nbsp;Shell_NotifyIcon(NIM_delete, @IconData);<br>end;<br><br>procedure TForm1.PopupMenu1Change(Sender: TObject; Source: TMenuItem;<br>&nbsp; &nbsp; &nbsp;Rebuild: Boolean);<br>begin<br>&nbsp; &nbsp; &nbsp;self.PopupMenu1.AutoPopup := false;<br>end;<br><br>end.<br><br>
 
to 011101 我弄错一个地方了,可以右击<br>还想问的是,通过在任务栏相应的程序上点击右键的最小化是程序最小化时,还想实现同样的功能,怎么办呢?
 
private<br><br>&nbsp; FpNotify : PNotifyIconDataA; &nbsp; &nbsp; &nbsp;//定义托盘图标结构<br>&nbsp; &nbsp;// procedure TaskIcoMsgDo(var Msg : TMessage); Message c_nTaskIcoMsg;<br>&nbsp; &nbsp;//Const &nbsp;c_nTaskIcoMsg = WM_USER + 78; &nbsp;//托盘图标返回消息<br>&nbsp; &nbsp;procedure TaskIcoMsgDo(var Msg : TMessage); Message WM_USER + 78;<br><br>procedure TFormMain.FormCreate(Sender: TObject);<br>begin<br><br> New(FpNotify);<br> with FpNotify^ do<br> begin<br> Wnd := Handle;<br> uID := 0;<br> uFlags := NIF_ICON + NIF_MESSAGE + NIF_TIP;<br> hIcon := Application.Icon.Handle;<br> //uCallbackMessage := c_nTaskIcoMsg;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uCallbackMessage :=WM_USER + 78;<br> szTip := 'Book';<br> end;<br> Shell_NotifyIcon(NIM_ADD, FpNotify);<br>End;<br><br>procedure TFormMain.FormDestroy(Sender: TObject);<br>begin<br> //删除任务栏图标<br> Shell_NotifyIcon(NIM_DELETE, FpNotify);<br>end;<br><br>//弹出菜单操作<br>procedure TForm1.TaskIcoMsgDo(var Msg: TMessage);<br>var<br>&nbsp; g_MousePoint:TPoint;<br>begin<br> if not IsWindowEnabled(Handle) then<br> Exit;<br><br>// if Msg.LParam = WM_LBUTTONDOWN then &nbsp; &nbsp;//单击图标,显示(隐藏)窗口<br> if Msg.LParam = WM_LBUTTONDBLCLK then &nbsp;//双击图标,显示(隐藏)窗口<br> Form1.Visible := not Form1.Visible;<br><br> if Msg.LParam = WM_RBUTTONUP then<br> begin &nbsp;//右键单击,显示菜单<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GetCursorPos(g_MousePoint);<br> Form1.BringToFront;<br> MenuMain.Popup(g_MousePoint.x, g_MousePoint.y);<br><br> end;<br>end;<br>
 
看到楼上讲的那么详细,我想兄弟应该全明白了吧
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
795
import
I
后退
顶部