Главная страница
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
14-19317
PEC
2002-01-21 15:39
2002.03.07
как воспользоваться командой !


3-19089
NOV
2002-02-09 11:05
2002.03.07
Select Date From ....


7-19356
Ant_bofh
2001-11-29 08:59
2002.03.07
Опять COM-порт и всё что связано :-)


7-19355
bios_i_ego
2001-12-01 13:06
2002.03.07
В Паскале было Port


1-19251
Елена
2002-02-18 07:45
2002.03.07
Зашифровать строку