procedure TfrmViewPic.viewPic();
var
i,iTop:Integer;
img:array of TImage;
begin if length(img)> 0 then //判断是否已经创建,如果有就删除
begin
for i:=0 to Length(img)-1 do
begin FreeAndNil(img[i]);
end;
end; SetLength(img,ADOQuery_HY.RecordCount);
for i :=0 to ADOQuery_HY.RecordCount-1 do
begin
iTop:=i;
img[i]:=TImage.Create(scrollbox1);
img[i].Parent:=scrollbox1;
img[i].Stretch:=true;
img[i].Width:=200;
img[i].Height:=200;
img[i].Top:=scrollbox1.Top+20+Trunc((iTop div 3)*220); //每行8个,每个间隔70
img[i].Left:=scrollbox1.left+20+Trunc((i mod 3)*220);
if FileExists(pchar(extractfilepath(application.ExeName)+picPath+'\'+trim(adoquery_HY.FieldByName('pic').asstring))) then
img[i].Picture.LoadFromFile(pchar(extractfilepath(application.ExeName)+picPath+'\'+trim(adoquery_HY.FieldByName('pic').asstring)));
img[i].OnClick:=Image1Click;
adoquery_HY.Next;
end;
end;为什么真正显示的时候并不是从scrollbox1.top和scrollbox1.left处开始显示而是从滚动条位置处开始显示呢?而且创建之前似乎并不能清除以前创建的image控件?
解决方案 »
- odac oraquery 读取nclob字段 怎么是乱码 ?
- TXMLDocument组件有没有LoadFromFile方法?
- 单位要我写检讨,应不应该写!
- 还有一个问题有个错误:"多步操作产生错误,请检查每一步的状态值 "
- application Servic 问题! 急 分不够还有!
- 紧急问题,快快快来解答啊!!
- 打印报表出问题
- 请问如何改变MainMenu菜单的大小?
- 窗口大小改变时,上面的按钮位置就变得很不协调,怎样让他们也成比例的变化呢?
- 如何捕获当前所有和本机相连的tcp/udp连接的信息(包括对方ip和port)?
- **超简单的问题,简直是送分,关于treeview,非常急!**
- 汇总查询问题
scrollbox1.VertScrollBar.Position:=0;
就可以了,让滚动条跑到最前面再画控件
现在就是清除以前控件问题 for i:= scrollbox1.ComponentCount-1 downto 0 do
begin
scrollbox1.components[i].free;
end;
scrollbox1.Refresh;
不知能不能算清除呢.
for i := ScrollBox1.ControlCount - 1 downto 0 do
if ScrollBox1.Controls[i] is TImage then
ScrollBox1.Controls[i].Free;
for i := ScrollBox1.ControlCount - 1 downto 0 do
if ScrollBox1.Controls[i] is TImage then
RemoveControl(ScrollBox1.Controls[i].)
for i := ScrollBox1.ControlCount - 1 downto 0 do
if ScrollBox1.Controls[i] is TImage then
RemoveControl(ScrollBox1.Controls[i])