引言: 问题的提出
在一个客户/服务器模式的网络环境中,数据库(Informix)服务器建立在SCO Unix 5.05上,同时,有若干台运行Windows 95/98的工作站。
摘要:在使用delphi开发应用程序时常常要使用到tlistview列表视控件,但是仅仅使用tlistview的原有属性、方法和事件是不够的,常常需要在程序开发过程中对列表视的功能进行扩展,比如对列表视添加任意列组合排序、listitem拖动、customdraw自绘制、加入背景图等功能,由此可见delphi自带的tlistview列表视控件功能有限,并不让人感到满意。为了让列表视具有更多的功能,我们只......
摘要: 如今realplayer的流式媒体文件以其强大的视频压缩比正逐步悄然兴起。realplayer plus播放器也理所当然地成为大家播放realplayer格式文件的首选软件。不过realplayer plus也不是十全十美的,比如启动时间慢,占用空间大,留有历史记录等等。其实我们可以利用delphi打造一个完全符合自己要求的realplayer播放器。下面我将向大家介绍如何利用delphi来帮......
用Delphi在客户端执行Unix主机命令上一页 ...
const f_wont=252;
const f_goahead=3; 【程序编程相关:
再发:发现一个 Delphi6 VCL 】 【推荐阅读:
检测你的程序是否运行在虚拟机(VMwar】
const f_echo=1; 【扩展信息:
TChart使用经验小结
】
编程实现
为了能将解决问题的方法说得更清楚,本文对实现功能进行了简化,即客户程序登录主机之后,由unix主机执行一个来自客户端的命令:mkdir /tmp/fang.命令执行完后,可以在服务器上查看执行结果.当然,在实际编程环境下不会仅仅是这样一条简单的命令,但基本原理是相同的.程序的测试界面如图1所示:
图1 测试界面
在form1中有一个非可视组件tclientsocket,它位于组件面板的internet页上.delphi利用这个组件对tcp/ip进行了封装.
程序的部分代码如下:
procedure tform1.button1click(sender: tobject);
begin
if clientsocket1.active then clientsocket1.active := false;
if inputquery(‘连接至:, ‘地址:, server) then
if length(server) > 0 then
with clientsocket1 do
begin
address := server;
active := true;
end;
end;
procedure tform1.readfromhost(sender:tobject;
socket: tcustomwinsocket);
begin
loginsend:=false;
passsend:=false;
count:=socket.receivebuf(inbuffer,high
(inbuffer));
m_count:=0;
while (m_count begin
ch:=inbuffer[m_count];
if (ch=char(f_iac)) then
begin
m_count:=m_count+1;
cmd:=inbuffer[m_count];
if((cmd=char(f_do))or(cmd=char ...
下一页 摘要: 优秀的数据库应用应当充分考虑数据库访问的速度问题。通常可以通过优化数据库、优化 查询语句、分页查询等途径收到明显的效果。即使是这样,也不可避免地会在查询时闪现一个带有 sql符号的沙漏,即鼠标变成了查询等待。最可怜的是用户,他(她)在此时只能无奈地等待。遇到急性子的,干脆在此时尝试 windows中的其它应用程序,结果致使你的数据库应用显示一大片白色的窗口。真是无奈!
本文将以简单的例子告诉......