当前位置:主页>销售管理软件> 列表

动态创建窗体 找服装店记账软件

销售管理软件版1楼: 创建动态窗体,根据程序中不同的选项加载不同的label、edit、button等,窗体中的控件不确定加载,窗体的大小也不确定。也就是说窗体中的控件是根据从数据库中不同的表里查找出来的不同结果显示在上面的

2楼: 各位大侠帮忙啊,要死人了 如速达3000软件价格

3楼: unit U_FormMian;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,ExtCtrls,StdCtrls, ImgList;

type
TForm_Main = class(TForm)
ImageList1: TImageList;
procedure FormCreate(Sender: TObject);
procedure btClick(Sender: TObject);
procedure baClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form_Main: TForm_Main;
pa:TPanel;
pb:TPanel;
// pc:TPanel;
bt:Tbutton;
ba:Tbutton;
memo:TMemo;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm_Main.FormCreate(Sender: TObject);

begin
pa:=TPanel.Create(self);
//pa.Caption:=''mubiaota'';
pa.Left:=0;
pa.Top:=50;
pa.Width:=150;
pa.Height:=250;
pa.Align:=alLeft;
pa.Parent:=Self;

pb:=TPanel.Create(self);
pb.Left:=150;
pb.Width:=538;
pb.Align:=alTop;
pb.Parent:=self;

bt:=TButton.Create(self);
bt.Caption :=''读取文件'';
bt.Left:=23;
bt.Top:=20;
// bt.Width := 100;
//bt.Height := 50;
bt.Align := alNone;
bt.Parent :=pa;
bt.OnClick:= btClick;
// Memo1.Lines.Clear;

ba :=TButton.Create(self);
ba.Left:=23;
ba.Top:= 60;
ba.OnClick:= baClick;
ba.Caption:= ''退出'';
ba.Parent:=pa;

memo:=TMemo.Create(self);
memo.Align:=alTop;
memo.Parent:=pb;
//pb.Visible:=false;

//ComboBox1.Text:=''请选择'';


end;

procedure TForm_Main.btClick(Sender: TObject);
var
op:TOpenDialog;
str:string;
str1:TStringList;
i:integer;

//pb:TPanel;
begin
memo.Clear;

str1:=TStringList.Create;
op:=TOpenDialog.Create(self);


//op :=TOpenDialog.Create(self);
if op.Execute then
begin
str1.LoadFromFile(op.FileName);
for i:= 0 to str1.Count-1 do
begin

memo.Lines.Add(str1.Strings[i]);

end;
end;

end;

procedure TForm_Main.baClick(Sender: TObject);
var
pForm:TForm2;
begin
pForm:=TForm2.Create(self);
//pForm.Parent:=TForm2;
pForm.Show;

end;

end.

里面的空间都是动态创建的 你自己看看

4楼: 楼上的兄弟真是有心。

5楼: 好,顶一下.

6楼: To: dxiaoliang 哪个控件 是动态创建的阿??你的程序里面已经用代码创建了控件,而且具体创建什么已经写明了。我的意思是写一个函数或者过程,根据传过来的变量,创建相应的控件,而且窗体的大小也随着创建的控件多少相应改变。

销售管理软件版7楼: 最好还是写为一个ini文件,包括位置等什么的,用到就调用他。
如果有规律就更好了。


你举个例子出来,窗体控件怎么对应数据库。对数据库操作一般也是用那几种方法。
你用字段的个数记录下来,然后就用循环建立,建立的位置你要算好,想必控件的位置距离是相等的了,实现方法和dxiaoliang的一样,不过位置上改成变量。

8楼: 请别人做工程呀,这活也太大了吧

9楼: 公共過程:
Procedure openform(formclass: Tformclass; Var fm; Aowner: Tcomponent);
Var
I: integer;
Child: TForm;
Begin
Child := Nil;
For I := 0 To Screen.FormCount - 1 Do
If Screen.Forms[I].Classtype = formclass Then
Begin
Child := Screen.Forms[I];
If Child.WindowState = wsMinimized Then
ShowWindow(Child.handle, SW_SHOWNORMAL)
Else
ShowWindow(Child.handle, SW_SHOWNA);
If (Not Child.Visible) Then Child.Visible := True;
Child.BringToFront;
Child.SetFocus;
TForm(fm) := Child;
Child := TForm(formclass.NewInstance);
Exit;
End;
If Child = Nil Then
Begin
TForm(fm) := Child;
Child := formclass.Create(Application);


End;
End;

調用方法:
openform(TForm2, Form2, self);

技術交流QQ:136293586

10楼: To: madic 举例:
表A中字段 :A1 A2 A3 A4 字段
表B中字段 :B1 B2 B3 B4 。。。。字段
如果A2字段的值与表B中B1字段相等时判断表B中从字段B2 开始到表结构最后的字段的值,如果等于规定的值,就记录下来这个字段的名称(比如,B2 B3),就在将要创建的动态窗体上显示label和Edit,label的caption为所记录字段的别名(汉字),Edit用来输入值。在创建窗体时窗体上的控件及其个数根据上面的过程得来的,窗体的大小也因此改变
这样能明白吗?

11楼: 顶一下

12楼: 再顶 如服装店记账软件

13楼: 窗口本来就可以自动伸缩的。
动态建立你会吧。
动态建立的时候,把窗口设定为AUTOSIZE=FALSE;建立完成后,
设定AUTOSIZE为TRUE,建立的时候,建议。使用PANAL排版。
把每个控件的位置方好,大小放好。最后进行伸缩处理。

销售管理软件版14楼: 我的工程在做ING。。。
和楼主想法一样,有兴趣的去www.netepoch.com上下载AllEasy1.0
互相交流QQ495963512