Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];




Вниз

Иконки в программе 


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.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.029 c
3-19049           yaJohn                2002-02-07 17:05  2002.03.07  
DBGrid


1-19219           Lokk                  2002-02-19 15:44  2002.03.07  
У меня вопрос


3-19103           Andrew K.S.           2002-02-08 17:01  2002.03.07  
ms sql 2000


3-19079           Leonid1               2002-02-07 15:58  2002.03.07  
Access u Delphi


6-19293           welvist               2001-12-18 17:47  2002.03.07  
Сканер МАК адресов компьютеров локальной TCP IP сети