个你一个例子
var i: integer;
frame: TFrame2;
function CreateFrame(Index: integer; alias: string):TFrame2;
begin
Result := TFrame2.create(self);
Result.name := 'Fram'+inttostr(Index);
Result.Parent := self;
Result.Tag := index;
Result.txflag:=0;
Result.cxflag:=true;
Result.RePaintSingle(alias, index);
end;
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select pointno, aliasname from dtcld');
query1.Open;
i := 0;
while not query1.Eof do
begin
frame := CreateFrame(query1.fieldbyname('pointno').asinteger,query1.fieldbyname('aliasname').asstring);
case count of
4:
begin
frame.Width := MainForm.ClientWidth div 2;
frame.Height := (MainForm.ClientHeight - panel1.height*2) div 2;
frame.Top := (i div 2)*frame.Height;
frame.Left := (i mod 2)*frame.Width;
end;
6:
begin
frame.Width := MainForm.ClientWidth div 3;
frame.Height := (MainForm.ClientHeight - panel1.height*2) div 2;
frame.Top := (i div 3)*frame.Height;
frame.Left := (i mod 3)*frame.Width;
end;
9:
begin
frame.Width := MainForm.ClientWidth div 3;
frame.Height := (MainForm.ClientHeight - panel1.height*2) div 3;
frame.Top := (i div 3)*frame.Height;
frame.Left := (i mod 3)*frame.Width;
end;
end;
frame.Button1.Left := frame.Width - 60;
inc(i);
if i >= count then break;
query1.Next;
end;
tag := count;
end;
var i: integer;
frame: TFrame2;
function CreateFrame(Index: integer; alias: string):TFrame2;
begin
Result := TFrame2.create(self);
Result.name := 'Fram'+inttostr(Index);
Result.Parent := self;
Result.Tag := index;
Result.txflag:=0;
Result.cxflag:=true;
Result.RePaintSingle(alias, index);
end;
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select pointno, aliasname from dtcld');
query1.Open;
i := 0;
while not query1.Eof do
begin
frame := CreateFrame(query1.fieldbyname('pointno').asinteger,query1.fieldbyname('aliasname').asstring);
case count of
4:
begin
frame.Width := MainForm.ClientWidth div 2;
frame.Height := (MainForm.ClientHeight - panel1.height*2) div 2;
frame.Top := (i div 2)*frame.Height;
frame.Left := (i mod 2)*frame.Width;
end;
6:
begin
frame.Width := MainForm.ClientWidth div 3;
frame.Height := (MainForm.ClientHeight - panel1.height*2) div 2;
frame.Top := (i div 3)*frame.Height;
frame.Left := (i mod 3)*frame.Width;
end;
9:
begin
frame.Width := MainForm.ClientWidth div 3;
frame.Height := (MainForm.ClientHeight - panel1.height*2) div 3;
frame.Top := (i div 3)*frame.Height;
frame.Left := (i mod 3)*frame.Width;
end;
end;
frame.Button1.Left := frame.Width - 60;
inc(i);
if i >= count then break;
query1.Next;
end;
tag := count;
end;
解决方案 »
- 顺序打印
- 帮忙看看!
- ADOConnection+ADODataset连接EXCEL文件,执行ADODataset.Next出现"数值字段溢出"错误。
- 超级难题:怎么才能知道是不是正确执行了Asp呀?
- filter的问题
- 这种计算日期的方法怎么做?
- 急!!!当我追加一条记录的时候,怎样始数据库里的id字段加一?
- 谁有真正能用的无限制的FastReport2.4版,请mail给我(www.playicq.com上的都不能用)
- fastreport date 的格式顯示
- procedure HelloDll(Myfrom:Tfrom); external 'MyfirstDll.dll'; 怎么理解?
- 有没有excel97单元的详细例子?里面一个autofilter函数我不会用,谢谢
- delphi的dll库中语句执行返回程序出错!dll中加上不相关的语句就可以!是borland的一个大bug!!!?
Frame1:=TMyFrame.Create(Self);
Frame1.Parent:=self;
Frame1.Name:='a1';
Frame1.Tag:=1;
Frame1.Top:=10;
Frame1.Left:=10; Frame2:=TMyFrame.Create(Self);
Frame2.Parent:=self;
Frame2.Name:='a2';
Frame2.Tag:=1;
Frame2.Top:=10;
Frame2.Left:=10;
在你的启发下,我又做了一个例子,发现只要Create(nil)即可解决问题,可能是动态的
Frame 不能有同一个 Owner 的原因,只是不知为何?
在此多谢了,分数仍然奉上。
可否请问Lucky兄用Delphi用了多久,谢谢了。