分可以再加!
解决方案 »
- 哪些组件可以使用画布canvas绘制控件(我知道form可以)?
- 如何读XML文件?
- delphi Project->Options->Linker 的mapfile问题
- 有关两个数据表合并分组求各人得Money总和得SQL语句如何写?详情见下。
- 我要做一个服务器,看能否承载一定的线程,请问大家哪里有示例
- 帮公司贴个招聘信息
- delphi中的保存问题
- 关于sendkeys用法的几个问题?
- 请帮我把这个控件转成D5下能够安装的。
- 我的同事用pb做出来了,我用delphi没有实现,难道是delphi不如pb吗,请delphi大侠帮忙!
- 一个比较复杂的问题
- 如何将封装在DLL中的MDI子窗口的主菜单与MDI父窗口融合?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;const
ClassMap: array[0..7] of TClass = (TButton, TGroupBox, TEdit, TRadioButton,
TLabel, TMemo, TCheckBox, TComboBox);type
TMainForm = class(TForm)
lbClassName: TListBox;
mmProps: TMemo;
procedure FormCreate(Sender: TObject);
procedure lbClassNameClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure FillWithProp(AClass: TClass);
end;var
MainForm: TMainForm;implementationuses TypInfo;{$R *.dfm}procedure TMainForm.FillWithProp(AClass: TClass);
var
pl: PPropList;
i: Integer;
j: Integer;
PropCount: Integer;
td: PTypeData;
begin
mmProps.Lines.Clear;
pl := nil;
PropCount := GetPropList(PTypeInfo(AClass.ClassInfo), pl);
if pl <> nil then
begin
SortPropList(pl, PropCount);
mmProps.Lines.Add(AClass.ClassName + '的属性如下:');
for i := 0 to PropCount - 1 do
mmProps.Lines.Add(' ' + pl[i].Name);
SendMessage(mmProps.Handle, EM_LINESCROLL, 0, -mmProps.Lines.Count);
FreeMem(pl);
end;
end;procedure TMainForm.FormCreate(Sender: TObject);
var
i: Integer;
begin
for i := Low(ClassMap) to High(ClassMap) do
lbClassName.Items.Add(ClassMap[i].ClassName);
end;procedure TMainForm.lbClassNameClick(Sender: TObject);
begin
if lbClassName.ItemIndex >= 0 then
FillWithProp(ClassMap[lbClassName.ItemIndex]);
end;end.
myy做一个如同
PE Exploere
eXeScope
有时候解决问题很简单,但却往往先把自己捆起来然后再考虑解决办法。就象曾经有人问:不用if语句如何实现“实数变量的值是否大于零”条件判断?(尽管可以实现,但已经走了很远的弯路。)
准确地说,用对象引用如Form1.Controls[I]或Form1.Components[I]以及其它相关属性可以很简单地解决楼主的问题,为什么非要加一个限制呢?
俺提一个特别无聊的高难度问题:不直接也不间接使用任何Win32 API,只使用Object Pascal标准例程,如何得到当前操作系统的版本信息?
之所以我将此问题提出来是因为我认为是有办法解决的(创建以后很容易,不创建也应该同样可以)知是我不明白关于他的Create方法是怎么回事.
多谢各位回复,同时也希望大家都来研究研究.
(1)假如允许直接从类中获取类的成员或域,那么体现面向对象技术的如下限定词该如何起作用?(private、protected、public、published)
(2)观察TComponent中的属性ComponentCount来源,就可以知道FComponentCount的变化是由其孩子组件的Create和Destroy引起的;观察TWinControl中的ControlCount来源,就可以知道与之相关的FWinControls或FControls的变化是由其孩子控件Create和Destroy引起的。
楼主真是死心眼,非认定“创建以后很容易,不创建也应该同样可以”不可。
真累。说的婉转一些:请楼主仔细研究一下Delphi是如何读取的(skypeople(飞飞) 说的)。
说的直接一些:请楼主认真复习一下面向对象技术,特别是类和对象的基本概念。
你好,显然你的那个建议是没有任何用处的,我们给用户的只是 exe 程序,而不是带有源代码的 pas 和 dfm。 楼主,你这样做肯定有你的原因,但是我们想知道是什么促使你要这样做?
我可以说一下这个问题是怎样产生的:
首先我在一个MIS的台帐窗口(许多这样的窗口)中放置了许多DBEDIT,而在另外一个统计窗口中我又要将这些DBEDIT动态添加过来(从某一个窗口中,运行时确定).不创建的原因是窗口太多(20多个),耗资源太大.
这样太麻烦了,而且不实际
你可以以自己优化程序的,我有些工程有20多个Form,都是使用时再动态创建的
看看可以吗?