| Delphi应用编程答疑解惑 |
|
|
| 金奕 赛迪网-中国计算机报 2001-11-03 |
问:如何实现控件面板的平滑滚动t
答:安装过许多控件的朋友都知道,在众多的控件中选择一个实在不是一件轻松的事,鼠标要不停点击,如果能平滑滚动该多好啊,其实我们也能实现这一想法。
建立一个文本文件,输入如下内容:
REGEDIT4
[hkey_current_usersoftwareorlandDelphi.0xtras]
"autopaletteselect"="1"
"autopalettescroll"="1"
保存该文本文件为tip.reg,然后双击此文件,启动Delphi,看看效果如何。
问:在Delphi中如何实现TWebbrowser页面打印?
答:我们可以利用以下代码在Delphi中实现TWebbrowser的页面打印。
procedure TForm1.Button1Click(Sender: TObject);
var
vaIn,
vaOut: OleVariant;
Begin
WebBrowser1.Navigate('www.google.com');
WebBrowser1.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
end;
问:如何实现Treeview自动展开并显示节点?
答:我们可以利用以下代码轻松实现Treeview自动展开并显示所有节点的功能。
var
lnNode: TTreeNode;
begin
lnNode := TreeView1.Items.GetFirstNode;
while not (lnNode = nil) do begin
lnNode.Expand(False);
lnNode := lnNode.GetNextSibling;
end;
end;
问:在Delphi中如何实现自动隐藏Windows的任务栏?
答:在Delphi中实现自动隐藏Windows的任务栏的方法是首先在uses中加入ShellAPI,然后在程序中添加如下代码:
function IsTaskbarAutoHideOn : boolean;
var
ABData : TAppBarData;
begin
ABData.cbSize := sizeof(ABData);
Result :=
(SHAppBarMessage(ABM_GETSTATE, ABData)
and ABS_AUTOHIDE) > 0;
end;
问:Delphi中如何监视光驱中是否有光盘?
答:我们可以利用以下代码轻松实现此功能。
procedure Tform1.WMDEVICECHANGE(var msgx :Tmessage);
const
DBT_DEVICEARRIVAL=;
DBT_DEVICEREMOVECOMPLETE=;
begin
inherited;
case msgx.WParam of
DBT_DEVICEARRIVAL:Caption :='有光盘';
DBT_DEVICEREMOVECOMPLETE:Caption :='没有光盘';
end;
end;
问:在Delphi中如何监测Winsock的运行情况?
答:我们可以利用以下代码监测Winsock是否运行。
uses Winsock;
function WinsockEnabled: boolean;
var wsaData: TWSAData;
begin
result := true;
case Winsock.WSAStartup(,wsaData) of
WSAEINVAL, WSASYSNOTREADY, WSAVERNOTSUPPORTED: result := false;
else
Winsock.WSACleanup;
end;
end
问:在Delphi中如何判断系统网络连接方式?
答:我们可以利用以下代码在Delphi中判断系统网络连接方式。
uses wininet;
Function ConnectionKind :boolean;
var
flags: dword;
begin
Result := InternetGetConnectedState(@flags, 0);
if Result then
begin
if (flags and INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM then
begin
showmessage('Modem');
end;
if (flags and INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN then
begin
showmessage('LAN');
end;
end;
end;
运行后,我们只要看到返回的消息就可知道系统网络的连接方式了。
|
|
|
|
|
 |
|
|
 |
|
|
|
|