我在做图片浏览程序时候遇到两个难点,请各位高手帮帮忙!!
具体叙述如下:
我做了一个根据在EDIT1.TEXT指定的值来确定控件的数目。代码如下:
unit dtym;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
Edit1: TEdit;
procedure Button1Click(Sender: TObject); private
{ Private declarations }
procedure destroy;
public
j:integer;
aLabel:array of Timage;
apanel:array of TPanel;
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
varcount,i:integer;begin
destroy;
if Edit1.text='' then begin
showmessage('请选择个数!!');
exit;
end
else
count := strtoint(Edit1.text);
setlength(alabel,count);
setlength(apanel,count);
for i:=0 to count-1 do
begin
apanel[i]:=TPanel.Create(self);
apanel[i].Parent:=Panel1;
apanel[i].Height:=600;
apanel[i].Width:=250;
// aPanel[i].align:=alleft;
aPanel[i].caption:='';
apanel[i].left:=i*250;
//apanel[i].Top:=i*500;
//aLabel[i].Caption:='Label'+IntToStr(i);
//aLabel[i].top:=i*200;
aLabel[i]:=TImage.Create(self);
alabel[i].Parent:=TWincontrol(apanel[i]);
alabel[i].Height:=400;
alabel[i].Width:=250;
aLabel[i].align := alleft;
aLabel[i].Picture.LoadFromFile('\'+inttostr(i+1)+'.jpg');
end;
j:=i;
end;procedure TForm1.destroy;
var
count,i1,i2:integer;
begin
i2:=j;
i1:=0;
for i1:=0 to i2-1 do
begin
aLabel[i1].Free;
apanel[i1].Free;
end;end;end.问题是:
1.如果我确定在FORM上每行显示5个控件,多于5个控件的时候,就在第二行显示,>10个的时候在第三行显示,如此类推……,控件的大小通过宽:FORM的宽度/控件个数,高:FORM的高/行数,现在我想知道的是:如何确定控件数目>5后自动换行?
2.在TImage中显示的图片大小不一,如何让图片的大小与TImage的大小相吻合?
具体叙述如下:
我做了一个根据在EDIT1.TEXT指定的值来确定控件的数目。代码如下:
unit dtym;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
Edit1: TEdit;
procedure Button1Click(Sender: TObject); private
{ Private declarations }
procedure destroy;
public
j:integer;
aLabel:array of Timage;
apanel:array of TPanel;
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
varcount,i:integer;begin
destroy;
if Edit1.text='' then begin
showmessage('请选择个数!!');
exit;
end
else
count := strtoint(Edit1.text);
setlength(alabel,count);
setlength(apanel,count);
for i:=0 to count-1 do
begin
apanel[i]:=TPanel.Create(self);
apanel[i].Parent:=Panel1;
apanel[i].Height:=600;
apanel[i].Width:=250;
// aPanel[i].align:=alleft;
aPanel[i].caption:='';
apanel[i].left:=i*250;
//apanel[i].Top:=i*500;
//aLabel[i].Caption:='Label'+IntToStr(i);
//aLabel[i].top:=i*200;
aLabel[i]:=TImage.Create(self);
alabel[i].Parent:=TWincontrol(apanel[i]);
alabel[i].Height:=400;
alabel[i].Width:=250;
aLabel[i].align := alleft;
aLabel[i].Picture.LoadFromFile('\'+inttostr(i+1)+'.jpg');
end;
j:=i;
end;procedure TForm1.destroy;
var
count,i1,i2:integer;
begin
i2:=j;
i1:=0;
for i1:=0 to i2-1 do
begin
aLabel[i1].Free;
apanel[i1].Free;
end;end;end.问题是:
1.如果我确定在FORM上每行显示5个控件,多于5个控件的时候,就在第二行显示,>10个的时候在第三行显示,如此类推……,控件的大小通过宽:FORM的宽度/控件个数,高:FORM的高/行数,现在我想知道的是:如何确定控件数目>5后自动换行?
2.在TImage中显示的图片大小不一,如何让图片的大小与TImage的大小相吻合?
解决方案 »
- delphi 數據類型
- TMS AdvStringGrid 开发指南(参考资料)
- 有人说不支持中文,那么如何让Delphi7.0支持中文呢?
- 大家帮助我真的很急.................
- 有没DELPHI FORM DESIGNER方面的资料?
- 如何设置DBListBox1.items的当前记录呢
- 谁能深入浅出的讲讲“变体类型”?看书都看晕了!!!
- 有关递归调用的问题
- record是否为空
- 请教高手:如何使窗口的最大化按纽无效(只限用消息处理) 85分(只有这么多)
- 我用type定义了一类似结构体的东西,用完后要不要释放掉
- IHtmlFramesCollection2为何得不到iframe得内容呢
var aPanel:array of TPanel;procedure TForm1.Button1Click(Sender: TObject);
const N=12;
var i,x,y:integer;
begin
SetLength(aPanel,N);
x:=0;
y:=0;
for i:=0 to N-1 do
begin
aPanel[i]:=TPanel.Create(self);
aPanel[i].Parent:=Form1;
aPanel[i].Height:=50;
aPanel[i].Width:=50;
aPanel[i].Left:=x;
aPanel[i].Top:=y;
if (i+1) mod 5 = 0 then
begin
y:=y+100;
x:=0;
end
else x:=x+100;
aPanel[i].Show;
end;
end;2 TImage的AutoSize设成True