Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.07;
Скачать: CL | DM;

Вниз

Иконки в программе   Найти похожие ветки 

 
vitnt2000   (2002-02-21 14:54) [0]

Подскажите пожалуйста как в программу включить (засунуть в массив) несколько иконок (штук 100-200) чтобы программно менять значок?
Спасибо!


 
olookin   (2002-02-21 18:44) [1]

Вот пример кода, вытаскивающего иконки из экзешника и размещающего их в Images. Чтобы заменить иконку в своем приложении, нужно:
1. создать массив имен файлов с нужными иконками
2. в нужное время вызывать ExtractIcon
3. и поменять хэндл текущей иконки на вызываемую

var Form1: TForm1;
im: array [0..100] of TImage;
w,n: integer;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var r: array [0..1000] of char;
begin
if opendialog1.execute then begin
strpcopy(r,opendialog1.filename);
im[n]:=TImage.Create(Form1); im[n].Parent:=ScrollBox1;
im[n].width:=32; im[n].height:=32;
im[n].left:=10+32*w+w*10; im[n].top:=10;
im[n].Picture.icon.handle:=ExtractIcon(Hinstance,r,0);
w:=w+1; n:=n+1; end;
end;

procedure TForm1.DirectoryListBox1Change(Sender: TObject);
var r: array [0..1000] of char;
i: integer;
begin
DirectoryListBox1.Drive := DriveComboBox1.Drive;
FileListBox1.Drive := DriveComboBox1.Drive;
FileListBox1.Directory := DirectoryListBox1.Directory;
for i:=0 to FileListBox1.Items.Count-1 do begin
FileListBox1.ItemIndex:=i;
strpcopy(r,FileListBox1.Filename);
im[n]:=TImage.Create(Form1); im[n].Parent:=ScrollBox1;
im[n].width:=32; im[n].height:=32;
im[n].left:=10+32*w+w*10; im[n].top:=10;
im[n].Picture.icon.handle:=ExtractIcon(Hinstance,r,0);
w:=w+1; n:=n+1; end;
end;

end.



Страницы: 1 вся ветка

Текущий архив: 2002.03.07;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.013 c
1-19266
Stiky
2002-02-20 15:37
2002.03.07
Полноэкранное приложение


1-19261
Андрей Сенченко
2002-02-11 10:27
2002.03.07
Теория и практика работы с ресурсами.


14-19314
bullet_
2002-01-22 01:00
2002.03.07
Работа с Excel


4-19386
mili
2002-01-10 19:01
2002.03.07
функция API для вывода в DBGrid e поля MEMO


1-19257
phantom2040
2002-02-20 11:13
2002.03.07
Число дней в текущем месяце