![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кнопки и иконки [D4, WinXP]
Gliph © (2002-10-17 01:18:00)Люди помогите с иконками и кнопками что то никак не получается
Как вытащить иконку из *.exe и нарисовать ее на кнопке
SpeedButton1.Glyph
Есть Listbox в нем имена exe файлов по клику Listbox"a меняться должен Glyph
кнопки на иконку из exe
Пожалуйста если можно код.
Севостьянов Игорь (2002-10-21 19:15:00) [1]Ты прав, я не предлагал, например, ничего нового просто ответил, как смаштабировать из предложенного варианта.
Ricks (2002-10-21 17:35:00) [2]Кстати, если именно из exe, то почему все предлагают Extract AssociatedIconа не ExtractIcon??? Там ведь можно сразу доставать и большую и маленькую. А потом GetIconInfo, получить HBITMAP и потом уже....
MetalFan (2002-10-21 16:45:00) [3]
> Севостьянов Игорь ©
thanks )
Севостьянов Игорь (2002-10-21 12:12:00) [4]Например вот так:
procedure TForm1.Button1Click(Sender: TObject);
var
IconHandle: hIcon;
IconIndex: Word;
Path: String;
Icon: TBitmap;
begin
Icon := TBitmap.Create;
try
Icon.Width := 16;//32;
Icon.Height := 16;//32;
Path := Application.ExeName;
IconIndex := 0;
IconHandle := ExtractAssociatedIcon(HInstance, PChar(Path), IconIndex);
DrawIconEx(Icon.Canvas.Handle, 0, 0, IconHandle, 16, 16, 0, 0, DI_NORMAL);
SpeedButton1.Glyph := Icon;
finally
Icon.Free;
end;
end;
Севостьянов Игорь (2002-10-21 11:02:00) [5]Масштабируй
MetalFan (2002-10-21 09:23:00) [6]> Rouse_ ©
хм... а такой вопрос:
как уменьшить ее размер до 16Х16 ?
помогите плз. на кнопку не влазит(
Nick N A (2002-10-20 08:33:00) [7]
// ListBox1.Style := lbOwnerDrawFixed
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
Var
Icon : hIcon;
IconIndex : word;
s:String;
begin
IconIndex:=0;
with control as TListBox do Begin
Canvas.FillRect(rect);
s:=Items.Strings[index];
Canvas.TextOut(Rect.Left,rect.Top,s);
s:=s+#0;
Icon := ExtractAssociatedIcon
(HInstance,Pchar(@s[1]),IconIndex);
DrawIconEx(Canvas.Handle, 0,Rect.Top, Icon,ItemHeight,ItemHeight,
0,Brush.handle,8 );
end;
end;
Rouse_ (2002-10-20 01:58:00) [8]Вообщето желательно чуть по другому
procedure TForm1.Button2Click(Sender: TObject);
var
Icon : hIcon;
IconIndex : word;
Ico:TBitmap;
path:String;
pat: array of byte;
begin
try
Ico:=TBitmap.Create;
path := "c:\project1.exe";
IconIndex:=0;
SetLength(pat,Length(Path));
Move(Path[1],Pat[0],Length(Path));
Icon := ExtractAssociatedIcon(HInstance,PChar(path),IconIndex);
ico.Width := 32;
ico.Height := 32;
DrawIcon(ico.Canvas.Handle, 0, 0, Icon);
SpeedButton1.Glyph := Ico;
finally
Ico.Free;
FreeMemory(@pat);
end;
end;
Желаю успехов
Rouse_ (2002-10-20 01:47:00) [9]На вот написал на скорую руку
procedure TForm1.Button2Click(Sender: TObject);
var
Icon : hIcon;
IconIndex : word;
Ico:TBitmap;
path:String;
pat: array of byte;
begin
Ico:=TBitmap.Create;
path := "c:\project1.exe";
IconIndex:=0;
SetLength(pat,Length(Path));
Move(Path[1],Pat[0],Length(Path));
Icon := ExtractAssociatedIcon(HInstance,PChar(path),IconIndex);
ico.Width := 32;
ico.Height := 32;
DrawIcon(ico.Canvas.Handle, 0, 0, Icon);
SpeedButton1.Glyph := Ico;
Ico.Free;
end;
Желаю успехов
Glyph (2002-10-20 00:44:00) [10]?????????????
Glyph (2002-10-20 00:36:00) [11]Иконки в EXE файлах, и просто их на кнопке не нарисовать: TIcon из Exe файла, а Glyph(свойство) - TBitmap на кнопке. Беда!!!!
Alex4444444444 (2002-10-19 11:25:00) [12]Na skol"ko ya ponyal, u Vas icony v TImageList. Togda nuzhno prosto sozdat" nevidimyj TBitmap i risovat" na ego Canvas"e.
Glyph (2002-10-19 00:11:00) [13]Что, никто так не делал ил помочь не хотите?
Gliph (2002-10-18 00:57:00) [14]Давай.
NickolayLi (2002-10-17 23:11:00) [15]давай с утра 8)
пока.
Gliph (2002-10-17 19:49:00) [16]>NickolayLi что то ничего не понял я там.
Иконку вроде бы получается вытащить, но как ее на глифе кнопки отобразить или в битмап конвертнуть?
Если можно пример. Спасибо.
NickolayLi (2002-10-17 01:22:00) [17]посмотри Resxplor в демосах он вытаскивает иконки из длл и еще чего то тама