怎样做到点击一个按钮,打开网上邻居? (68分)

  • 主题发起人 主题发起人 wanglong
  • 开始时间 开始时间
W

wanglong

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样做到点击一个按钮,就象是点击了桌面的网上邻居一样?
 
做一张图片image,上面放三个按钮图片依次左右排列!(单击前/变灰/单击后)
然后加一bitbtn按钮,单击属性Glyph,将图片image加入其中!
然后把bitbtn属性numGlyphs的值改为3就可以了!!
你自己试试!
祝你成功!如果不想这样,可以去找控件,这方面的内容很多!(我不多说了)
 
看来你没有明白我的意思,我下面的代码,是通过点击按钮来打开控制面板,怎么通过点击按钮来打开网上邻居呢?
procedure Tmain.CustomItem41Click(Sender: TObject);
var
Res:Cardinal;//WinExe的返回结果
begin
//打开控制面板
Res:=WinExec('rundll32.exe shell32.dll,Control_RunDLL',9);
if Res=0 then
MessageBox(Handle,'程序超出内存。','错误',MB_OK+MB_ICONERROR)
else if Res=ERROR_BAD_FORMAT then
MessageBox(Handle,'命令错误。','错误',MB_OK+MB_ICONERROR)
else if Res=ERROR_FILE_NOT_FOUND then
MessageBox(Handle,'指定文件没找到。', '错误',MB_OK+MB_ICONERROR)
else if Res=ERROR_PATH_NOT_FOUND then
MessageBox(Handle,'指定路径没找到。','错误',MB_OK+MB_ICONERROR);
end;
 
我只能做到这样了,试试看:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,shlobj,activex;

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

function NetworkBrowsing(parent_window: HWND; caption: String; browse_for: Integer): String;
var
lpbi: _browseInfo;
dn: String;
idlist: ITEMIDLIST;
ridlist: PITEMIDLIST;
ppMalloc: IMalloc;
begin
try
// Get pointer to network root
SHGetSpecialFolderLocation(parent_window, CSIDL_NETWORK, PITEMIDLIST(idlist));
// Initialise & display dialog box
lpbi.hwndOwner:=parent_window;
lpbi.pidlRoot:=PITEMIDLIST(idlist);
SetLength(dn, 255);
lpbi.pszDisplayName:=PChar(dn);
lpbi.lpszTitle:=PChar(caption);
lpbi.ulFlags:=browse_for;
lpbi.lpfn:=nil;
ridlist:=SHBrowseForFolder(lpbi);
// Store the resuls
{xxx
if browse_for <> BIF_BROWSEFORCOMPUTER then begin
// Return the complete network path
SetLength(Result, 255);
SHGetPathFromIDList(ridlist, PChar(Result));
end else
}
// Return only the name of the 'thing' selected
Result:=lpbi.pszDisplayName;
// Free memory
if ridlist=nil then
Result:=''
else begin
SHGetMalloc(ppMalloc);
ppMalloc.Free(ridlist);
end;
except
// Oops
Result:='';
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.caption := NetworkBrowsing(form1.handle, 'Ñ¡Ôñ¼ÆËã»ú:', BIF_BROWSEFORCOMPUTER);
label2.caption := NetworkBrowsing(form1.handle, 'Ñ¡Ôñ¼ÆËã»ú:', BIF_RETURNONLYFSDIRS);
end;

end.
 
多人接受答案了。
 
后退
顶部