Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

самонахождение файлов *.bmp [D7, WinME]


clampo ©   (2004-07-03 12:12:00) 

Подскажите, пожалуйста решить проблему:
У меня в плеере скинка - это бмп-файл под опред. названием
и при загрузке плеер его находит и загружает. А как сделать так
чтобы при вызывании опред. меню в нём отображался список
бмп файлов находящихся в папке ../Skins. А при клике на выбранный файл (из этого меню) он загружался в обложку плеера


Cardinal   (2004-07-03 15:04:00) [1]

>Рамиль ©   (03.07.04 12:41) [2]
Думаю, автору вопроса это очень поможет :->

function ScanDir(SkinMenu: tmenuitem; SetSkin: TNotifyEvent; StartDir: string;
        Mask: string = '*.*'; FindNested: boolean = false): integer;
var
 SearchRec: TSearchRec;
 newitem: tmenuitem;
begin
result:=0;
if StartDir[Length(StartDir)] <> '\' then StartDir := StartDir + '\';
if FindFirst(StartDir+Mask, faAnyFile, SearchRec) = 0 then
 begin
 repeat
  Application.ProcessMessages;
  if (SearchRec.Attr and faDirectory) <> faDirectory then
    begin
    newitem := tmenuitem.create(nil);
    newitem.Caption := StartDir + extractfilename(SearchRec.Name);
    newitem.Hint := StartDir + extractfilename(SearchRec.Name);
    newitem.OnClick := setskin;
    skinmenu.Add(newitem);
    inc(result);
    end
  else
    if FindNested then
     if (SearchRec.Name <> '..') and (SearchRec.Name <> '.') then
      begin
      newitem := tmenuitem.create(nil);
      newitem.Caption := StartDir + SearchRec.Name + '\';
      newitem.Hint := StartDir + SearchRec.Name + '\';
      newitem.OnClick := setskin;
      skinmenu.Add(newitem);
      ScanDir(SkinMenu,setskin,StartDir + SearchRec.Name + '\',Mask);
      end;
 until FindNext(SearchRec) <> 0;
 FindClose(SearchRec);
 end;
end;

procedure TForm1.setscinclick(Sender: TObject);
begin
{Устанавливаем скин с именем tmenuitem(sender).hint}
end;


Чтобы заполнить у меню, к примеру n4, субменю пунктами с bmp-скинами из папки "c:\skins", надо выполнить

scandir(n4,setscinclick,'c:\skins','*.bmp',false);


Рамиль   (2004-07-03 12:41:00) [2]

Не дочитал:)
Тогда не так, находишь все файлы и динамически добавляешь пунты меню.


Рамиль   (2004-07-03 12:40:00) [3]

opSkin: TOpenDialog;
....
if  opSkin.Execute then
begin
 Skin := opSkin.FileName;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо