21. 11.
做一个多文档编辑器,在主窗口中添加ControlBar组件,ActionManager组件,和ActionMainMenuBar组件,还要再向其中添加一个MainMenu组件,不知道怎么把选单放到ControlBar组件中,还有ActionManager组件怎么和以上的组件相互联系啊,整了好久不知道怎么弄!
麻烦大哥大姐们帮帮忙吧!!!!小弟在此先谢过了!!!
21. 11.
在网上搜了好多都是用ado连的
搜到一个是用BDE的(http://topic.csdn.net/t/20020311/17/568838.html),
感觉还不如我自己直接在查询条件中加个排序条件
请问有没有,数据集已经打开,无需在二次执行sql语句的方式来解决这个问题,
有没有类似ADO的相对容易或者至少速度快点的排序方法
请看清楚再回答啊,谢谢!!!
动态创建索引啊.
21. 11.
寻求帮助,很急,关于delphi如何在本地访问anychart flash的问题,请知道的不吝赐教
我在网上下了几个anychart的swf文件和相对应需要访问的xml文件,在本地用delphi7写程序希望可以把它显示出来。在程序中用了TShockwaveFlash控件,但是一直都不行,我播放其他的swf文件很正常,包括fusioncharts都可以正常在我的程序里播放
请各位高手指点下
是有试用版的水印,但是一直没有数据,我的估计是swf内部对修改了与xml关联的接口,在delphi里用控件的setvariable方法一直找不到正确的参数
http://www.anychart.com/products/anychart/docs/users-guide/index.html?interactivity.html
看看这个,应该能帮到你。
20. 11.
说句心理话在论坛里学了不少的知识
也曾经和老于争过分 其实老于人也挺不错的
谢谢僵哥,谢谢hongqi162,谢谢lack,谢谢老于
也谢谢曾经帮助过我的人
再见了CSDN
为什么要走?有必要吗?
我2003年左右离开的,现在又回来了,呵呵
干嘛去了呀
不管干什么去!和离开不离开CSDN有关系吗?
为什么要离开呢!
就算离开编程这个行业,也可以留在这里聊聊天,帮帮人嘛!
有聚终有散,记得常回来看看。
一路好走,金融危机带来了经济危机
一下勾引出好多猩猩
送别楼主,顺便接分!
永远祝福帮助过我的人
呵呵,常回来看看,走一个就少一个了。。。
有空来玩
有空来看。呵呵
怎么就走了呢?
没事来灌灌水,散散分
祝福LZ!
流星老大最近可好,怎么QQ被盗了么?不见上QQ啊
csdn论坛里面的人就是这样,见怪不怪的,何必这么在乎别人说的。
谢谢版主
jf
哎~~~
天天给人顶贴是浪费时间,好好学习多赚点钱跟实际
踏过草地,留下足迹。
we are waiting for you in csdn.
热爱技术就成,星星不一定就是权威
弄到星星不容易,楼主走好(ps:人走了能不能把分倒给我,嘿嘿)
我要倒分到星星,好开坛押宝
为什么走?
我所尊重的万一老师还穿着一条小绿三角裤头呢,
你去他的博客看看,帮了不少新人
没啥说的了,祝lz多多发财吧
非常赞同楼主说法!
delphi10000
万一
等级:
可用分等级:贫农
总技术分:37
总技术分排名:143140
有来有回
呵呵
万一老师,我从他博客学了不少
浮躁的人都喜欢玩这招。
jf
任何时候都不要拿别人的错误来惩罚自己
既然走的发帖了,为什么不给大家一个理由呢,LZ竟然也玩悬念啊
常回家看看……
20. 11.
delphi2009版怎么什么都不同了啊:也不知道又是不是支持什么Unicode搞的原因
在原来版本中用BinToHex函数这样写:
var
i:Integer;
s:PChar;
d:array[0..20] of Char;
p:string;
begin
s:='sdfsda';
d:='';
BinToHex(s,@d,Length(s));
for I := 0 to 20 do
begin
p:=p+d[i];
end;
end;
完全正确啊,没有一点错误,但是在delphi2009中就不可以,错误到
BinToHex(s,@d,Length(s));
提示:
[DCC 错误] Unit1.pas(37): E2251 Ambiguous overloaded call to 'BinToHex'
Classes.pas(9272): Related method: procedure BinToHex(Pointer; PWideChar; Integer);
Classes.pas(9277): Related method: procedure BinToHex(Pointer; PAnsiChar; Integer);
郁闷啊,看不懂,请各位高手帮下忙,解释下怎么回事啊~!
不是的啊,不是这个原因,谢谢你的回答,我调过来也没有用,不是类型的问题,我估计还是Unicode的问题吧,那个高手回答下啊
BinToHex(s,PWideChar(@d[0]),Length(s));
谢谢了
20. 11.
看书上说文件分为文本文件,类型文件(纪录文件),无类型文件(二进制文件);
现在我有1个exe程序,但是我想把他的ini配置文件写到exe文件的尾部,
通过分割二进制文件,分割出配置文件:
看网上说函数filewrite,fileread,blockwrite,blockread,都可以对该类型的文件进行操作,我是这样定义的:
var
x,x1:Integer;
y,y2:string;
begin
x:=FileOpen('1.wma',fmOpenReadWrite);
if x>0 then
begin
x1:=FileSeek(x,0,2);
FileSeek(x,0,0);
y:=StringOfChar(#0,x1);
FileRead(x,y[1],x1);
FileClose(x);
x:=FileOpen('2.wma',fmOpenReadWrite);
if x>0 then
begin
y2:='|–|'+y[1];
FileWrite(x,y1,x1);
FileClose(x);
end;
end;
end;
但是我再用string类型数据取出这段二进制码,查找不到我定义的'|–|'字符,请各位大虾帮忙~!,书上说存取二进制数据是不分数据类型的啊!为什么不可以???
建议不这么做
效率太低了
你知道应该怎么作吗?老大
巨汗!!!
里面写的是二进制的,但用文件打开的是十六进制的,你写入的是ASCII码的,这个…….
你最好是打开一个文件,然后,把ASCII码转成十六进制.
我只想知道为什么我写入的字符|–|找不到,是不是应该先把他写成二进制格式再放入,还是???
你的意思是说用FileOpen打开文件,用FileRead读入的是16进制的数据,我应该先把|-|转换为16进制的,然后写入就没有问题了??是不是老大
做个记号
FileRead(x,y[1],x1);
y又不是数组,这样取值对吗?
其实我对文件操作也不是很了解,具体为什么要这样取出数据,我也说不上来,反正上面的代码要想完全取出整个文件的内容就必须这样写,否则编译器也会报错,具体,不知道,
———请各位老大回答正题啊,給个例子把,谢谢了
。。。。。。。。。。现在这么多人对计算机内部数据什么类型什么格式不了解??????都是程序员吗?还是学生?
唉。。。。。。。。。。。。。。。
计算机内部数据不分十进制,十六进制的,它只以二进制形式存起来,显示的时候才会有进制问题。
字符及字符串存进去取出来,有进制问题????????
唉,我自己测试出来了,什么进制转换,都不用,直接用filewrite写进去就是了,我用UltraEdit-32看到我的程序后面有我写的内容了~!……….结帖郁闷,本来问问题的,不来回答都说写不着边的问题,郁闷的要紧~!
不知所云。
个人的建议是,如果是按这种方式去操作,最好在文件的末尾,比如用四个字节做一个特殊的标记,再往前的位置存储配置文件的长度,然后再往前放文件的内容。
读取时,先从末尾读取标记,如果读取文件的末尾的标记正常,则,继续往前读长度,之后再根据长度往前读文件数据。
类似的东西,比较典型的用例,就是早期版本的可以自播放的Flash(exe程序自己播放程序末尾的Flash文件).
20. 11.
为什么有时候会出现这样的问题啊?
errors in source code
源代码中有错误
看看刚输入的代码和前面一点的代码有没有错误。
例如变量名字打错了,没加分好引号。
现在已经解决了,但是还是感觉delphi好奇怪,挺麻烦。没有c#那么的方便。哎!可能是我对它的了解不够深吧。以后要加强。
熟悉就好了,我刚开始的时候也是很多地方看不明白,出个错误就得找半天
前面的代码有错误,就会这样的。多习惯就好,各种开发工具的提示都不太一样。呵呵
20. 11.
同题,cxgrid已经开multiselect为真,但是在选择以后gt.DataController.GetSelectedCount返回总是=0;
代码如下:
for I:=0 to gt.DataController.GetSelectedCount - 1 do
begin
gt.DataController.GetSelectedRowIndex(I);
ShowMessage(VarToStr(gt.DataController.GetValue(J,0))); //选择中行的第列的值
end;
20. 11.
procedure TForm1.Button1Click(Sender: TObject);
begin
with mydata.Query1 do
begin
close;
with sql do
begin
clear;
add('select * from Student where 姓名=:name');
ParamByName('name').AsString:=trim(Edit1.Text);
end;
if(mydata.Query1.FindLast) then
begin
open;
end
else
begin
showmessage('该姓名不存在,请重新输入');
end;
end;
end;
end.
if(mydata.Query1.FindLast) then
begin
open;
end
这句有问题,在没有打开查询呢,怎么会findlast呢,也就是说你的查询语句永远没有执行。
楼上的正确,看看吧
传参后,没有把结果集Open,FindLast也就没有意义了
Open
open…………
来晚了~~
OPEN`~~
先OPEN再FindLast,顺便说一下,楼主把代码复杂化了,这个功能很简单的几句就可以搞定,别给自己找麻烦.
顶!
20. 11.
是这样的,我们的机器上有单片机,配置了IP地址,里面有一个serversocket,我用clientsocket发送一段二进制数据过去,它就会回传一些二进制的数据。。。例如我发送 00111 过去,服务器端就回复 11111
问题:
一:我该如何用clientsocket去发送这些二进制的数据给serversocket呢?是用clientsocket1.socket.sendstream()吗?
如果是用sendstream()的话,该怎么去表达这00111的二进制数据呢(别人说用 move)?又怎么去接收这二进制的数据回来呢?
二:我接到的二进制数据 00111,我该如何将它变为字符串,然后showmessage()出来,显示的还是 00111呢?(别人说还是用move)
[color=#FF0000]比较急,我找了几天的资料了,没一点头绪,因为我是做ERP数据库类型的软件的,第一次做这种通讯类的软件..完全不会,工程部那又天天催,我都快烦死了…在这里谢谢大家了..[/color]
楼上的朋友,我不是专门写代码的,主要是做ERP企业流程计设方面的,如果朋友们有空的话,希望能够帮帮我…谢谢!!!
clientsocket1.socket.sendbuffer就行了.
至于二进制,就看你怎么组织了.
现在一般的协议,都是用结构来组织的.
楼上的朋友能不能请举个例子说明?我现在是完全不搞不懂呀…
例如说,你能不能做一个 Clientsocket和serversokcet的demo,互相发送和接收二进制的数据,然后显示在一个memo内.?(哈哈,不要互发字符串喔,发字符串我还是会的).
再次谢谢哈!!!!!!!
00111 对应的是 7
var
str:string;
begin
str := #7;//然后发送这个字符串出去就行了
end.
那就把工作交给程序员吧.
或者参考下面贴6楼的回复
http://topic.csdn.net/u/20081114/11/091305bd-24cf-4c5c-9083-3993e4d98eae.html
比如你要发一段二进制数: AA 3F 4E 5F
var
arrBuf: array[0..3] of Byte;
begin
arrBuf[0] := $AA;
arrBuf[1] := $3F;
arrBuf[2] := $4E;
arrBuf[3] := $5F;
ClientSocket1.Socket.SendBuffer(arrBuf, SizeOf(arrBuf));
end;
再或者复杂点的,
比如,自定义协议:
协议头 命令号(1个byte) 命令参数1(2个byte) 数据区长度(4Byte) 数据区内容
AA 01 0103 6 'abcdef'
type
TCommData = record
CommHead : Byte;
CommID : Byte;
CommParam : Word;
DataLen : DWORD;
Data : array[0..65535] of Char;
end;
var
CD: TCommData;
strData: string;
begin
strData = 'abcdef';
CD.CommHead := $AA;
CD.CommID := $01;
CD.CommParam := &0103;
CD.DataLen := 6;
StrPCopy(CD.Data, strData);
ClientSocket1.Socket.SendBuffer(CD, SizeOf(TCommData));
end;
哈哈,谢谢楼上的朋友们…..
我在这里找相关贴子,老半天没有找到你发的那张贴,原来直接把标题写成了sendbuffer….
我明天去公司试试哈…..
===========
那就把工作交给程序员吧.
===
回复:我是个死要面子,又要强的人,我答应了人家技术部帮他们搞定…..唉呀..anyway,死要面子活受罪.
To 7楼,SendBuffer需要处理返回值.
问题一虽然还没测试,但我想应该没有问题了…
那第二个问题呢?
二:我接到的二进制数据 00111,我该如何将它变为字符串,然后showmessage()出来,显示的还是 00111呢?
顶…没人帮我解决了吗?
我测试过了….
客户端发送到serverclient后,就算serverclient的onclientread内没有任何代码,都会出错…
出错内容为: "一把红叉 '?" 这样子….是怎么回事呢?