C++Builder 程序员博客
5 Sep
在定时器中,定时执行
TCppWebBrowser* wb
Variant v;
v+=url;
wb->Navigate2(v);
结果在CppWebControlDocumentComplete事件中可以获取页面的代码,但没有更新 (页面内容实际上已经更新)
为什么?
恭喜 加分
up
up
学习.
没有人知道?好伤心呀
up
该回复于2008-07-10 02:46:50被版主删除
报了个 "Invalid parameter "错误,为什么会报这个错误呢????
ding
该回复于2008-07-19 16:13:53被版主删除
该回复于2008-07-10 02:40:20被版主删除
该回复于2008-07-10 02:47:35被版主删除
3 Sep
主窗体下有一个子窗体,子窗体的FormStyle是fsMDIChild,子窗体下有一个Panel控件,在这个Panel上放一个PageControl控件,这个PageControl上有4个TabSheet,每个TabSheet上又有Panel.
现在的问题是,当主窗体最大化时,子窗体的Panel好象是最大化的,但PageControl没有最大化,如何才能使这个控件也最大化呢?请高手帮忙
合理设置PageControl的Anchors属性就可以了。
该回复于2008-07-10 02:50:10被版主删除
该回复于2008-07-19 16:09:43被版主删除
该回复于2008-07-10 02:37:04被版主删除
在对控件的属性操作的时候,出现了内存地址错误:Access violation address 40106167 in module 'vcl60.bpl ' Read of address 00000057
TRadioButton *rb_do;
rb_do-> Visible = true;
TRadioButton *rb_do = new TRadioButton(Application);
rb_do-> Name = "Ra "; //必须指定
rb_do-> Parent = this; //必须指定
rb_do-> Visible = true;
rb_do-> Left = 10;
rb_do-> Top = 10;
动态生成的要有name 和 parent
2 Sep
比如直接在Form上,切换出输入法,打什么字,这个字就会显示在Form上,当然英文字母可以用OnKeyDown什么的判断,可汉字怎么办?
这么深奥一个问题,不给分,实在说不过去,可惜小弟发这个贴的时候,已经没分了,打算,第二天再加分吧,没想到csdn的加分制度是最少就加100,我没有100分呀,加不了。
Form上面加了组件倒是可以,但是你这样什么都不加就要他显示,还真的是没有办法
自己在点击的地方绘制一个“会闪”的光标,然后outtext就醒了:p
下面代码已经测试通过:
if(uMsg == WM_IME_CHAR)
{
//汉字的两个字节缓冲
unsigned char *CharZh = new unsigned char[3];
CharZh[0] = (unsigned char)((Message.WParam >>
& 0xFF);
CharZh[1] = (unsigned char)(Message.WParam & 0xFF);
CharZh[2] = '\0';
//这行代码是C++Builder的,在VC应该相应的方法.
AnsiString Str = AnsiString((char*)CharZh);
// Memo1->Lines->Add("Input Text = " + Str);
delete[] CharZh;
}
27 Aug
现在也知道自定义控件有bpk文件,安装初始化一下就可以安装控件。
现在有些网上的控件都是使用安装包来完成的,很快很方便。所以很想知道如何完成。
还有问题: 网上的收费控件是如何实现代码的封装,以防止用户看到源码的。我们在bcb中如何实现呢!
27 Aug
我想在C++ Builder中使用VLC控件播放,但是控件导入后无法播放,只有一个图标在上面。
哪位大大能给解释一下怎么弄才能播放出来?
我的VLC播放器的版本是0.8.6c
这恐怕是VLC控件的兼容性问题。
TMediaPlayer?
播放的是什么文件格式?有操作系统有装解码器么?
26 Aug
如何使用ADOTable控件获取access表中的字段名称和类型
楼上的真牛啊!!!~
= =~用那么复杂吗?
一个数据源指定ACCESS的连接路径,,ODBC~
然后用一条SQL语句用ADOQUERY来执行不就可以获得了么。。。
连接以后也应该可以在代码中直接指定TABLE的表吧。。我没试过。。。
感觉ADOQUERY好用
26 Aug
如题 我想在窗口中将所有是button类型按钮 放到数组中,中间要有个这样的判断语句 我对控件不是很清楚他们是怎么判断 最好能举个列子 谢了
也可用
if(dynamic_cast<TButton*>Form1->Components[i]) { TButton *pBtn=(TButton*)(Form1->Components[i]); // ….. }
刚才我试了下 发现[jxw1987628]的代码给我了点想法,
我打算使用TWinControl这样操作
for(int I=0;I <this->ControlCount;I++){
TWinControl *Temp=dynamic_cast <TWinControl *>(this->Controls[I]);
if(Temp->ClassNameIs("TButton"))
ShowMessage("呵呵终于找到你了Button");
}
结果给我报了地址引用错误。我不明白了
你应该用TComponent
大概如下
if ( ComponentCount > 0 ) { for ( int i = 0 ;i< ComponentCount ;i++ ) { Temp = Components[i]; if (Temp->ClassNameIs("TForm2")) { ShowMeaasge( dynamic_cast<TForm2 *>(Temp)->Caption ) } } }
你的用法不对,先看看dynamic_cast的意义!,
用dynamic_cast是标准的用法,原因是:如果我声明了TMyButton:TButton,那么用ClassNameIs就会失败,但是用dc用dynamic_cast就不会。
既然都用dynamic_cast了,那就不需要ClassNameIs了,直接
for(int I=0;I <this->ControlCount;I++){ if(dynamic_cast <TButton*>(this->Controls[I])) ShowMessage("呵呵终于找到你了Button"); }
感谢大家的帮忙 dynamic_cast我知道怎么用了 难道我下次遇到个checkbox DBGrid 都要用dynamic_cast来转换.本着对技术或知识的追逐我还是想问下Components和TWinControl 有什么区别阿 为什么我用TWinControl 就不能像1楼和2楼那样操作呢
象按钮,下拉框这种Windows里自带的控件,VCL对它做了一个包装,这些都是从TWinControl继承的
另外还有更多的是VCL自己特有的组件,如TImage,TDataSource,TIdFTP等等。
而所有的VCL组件(可以从面板上拖拉的,当然也包括前面说的TWinControl)都是从TComponent继承的。
A->Controls是查找Parent是A的控件,A->Components是查找Owner是A的控件。
说得不周到之处后面补充哈
是不是TButton
Object->ClassNameIs("TButton");
是不是继承于TButton
Object->InheritsFrom(__classid(TButton));//相当于Delphi的Object Is TButton
to(Waiting4you);让我看到一丝曙光
刚从帮助中发现,也不知道我这样理解的可以不,TButton是从TButtonControl那继承,TButtonControl又是继承自TWidgetControl,后再继承于TControl ,这样一层一层继承TControl <-TComponent <-TPersistent <-TObject.
而我拖出来的一个Button难道是从TButton的一个对象吗?这样只要是基类对子类动态调用都可以从判断中得到是不是TButton的类型,另外让我发现 使用的ClassNameIs(const AnsiString string)方法是由TObject定义的,TObject? TObject?他是干什么的呢?还有他定义的一些方法?很怪!
我只能说自己开始刚接触bcb,不过这里的继承使用的让我眼花缭乱,我还是想知道这写基础类的作用,不知道那位能帮我说说。感觉顿顿的,需要有人来捅下,才能清醒。
先学好C++基础,了解虚方法
大鸟老鸟都进来帮帮菜鸟我吧
FileListBox1只是显示文件. 具体的操作还是要写代码.
用ADO可以连接到EXCEL文件. 在网上搜下一大把.
我的目的是知识想把EXCEL的数据导到DBGrid中去,有没有其他方式实现
FileListBox只能得到文件名路径列表。
你可以写个读取Excel文件到DBGrid的函数(ccrun好像有的(OLE),另外用ADO把Excel当作数据源也很方便的)
然后调用这个通用的
循环读就可以了!