Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2010, 16:02   #1
Dalagardi
Пользователь
 
Регистрация: 16.01.2010
Сообщений: 38
Вопрос Освобождение Панели (Delphi)

Из DirectoryLisBox выбираются картинки и помещаются на панель, как сделать так чтобы после изменения директории панель очищалась от картинок и если в новой директории есть картинки они помещались на панель.
Код:
procedure TForm1.DirectoryListBox1Change(Sender: TObject);
var TI,i,y:integer;
    LI:Integer;
    SP,Hei,heiy:Boolean;
begin
i:=0;
sp:=false;
hei:=false;
heiy:=false;
LI:=-1;
TI:=0;
y:=0;
getmem(p,sizeof(Timage)*1000);
setlength(DinP,1000);
if findfirst('*.jpg',faAnyFile,sear)= 0 then
begin
repeat
inc(LI);
dinp[i]:=Timage.Create(panel1);
dinp[i].Stretch:=true;
dinp[i].Parent:=panel1;
dinp[i].Picture.loadfromfile(directorylistbox1.Directory+'\'+sear.Name);
dinp[i].Height:=150;
dinp[i].Width:=150;
dinp[i].Left:=LI*170;

if sp=true then dinp[i].Top:=TI*170;

if (i mod 18=0) and (i<>0) then   hei:=true;
if (hei=true)  then begin inc(y); hei:=false; Heiy:=true; end;
if (heiy=true) and (i mod 6 = 0)  then   panel1.Height:=panel1.Height+170;

if (i mod 6 =0) and (i<>0) then
begin
dinp[i].Left:=0;
inc(TI);
dinp[i].Top:=TI*170;
LI:=0;
SP:=true;
end;
dinp[i].Tag:=i;
dinp[i].OnDblClick:=panelclickimg;
inc(i);
until findnext(sear)<>0;
FindClose(sear);

end;
end;
Dalagardi вне форума Ответить с цитированием
Старый 28.03.2010, 17:37   #2
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

В цикле dinp[i].free;, все Image будут удаленны. потом заново создайте объекты Image, и грузите туда из новой директории.
Не забываем чистить память.
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Своя панелька в Панели задач WinXP(на Delphi) DmT Помощь студентам 14 13.01.2011 17:18
Освобождение памяти PUH Помощь студентам 1 22.11.2009 17:14
Отображение смены языка (замена языковой панели), Delphi 7 AndersX Помощь студентам 2 29.07.2009 12:21
Освобождение памяти VadEr Общие вопросы Delphi 2 17.04.2009 22:23
Освобождение Памяти в Си volotsky Помощь студентам 2 16.12.2008 22:36