Форум: "Система";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
Вниз
Кнопки и иконки Найти похожие ветки
← →
Gliph (2002-10-17 01:18) [0]Люди помогите с иконками и кнопками что то никак не получается
Как вытащить иконку из *.exe и нарисовать ее на кнопке
SpeedButton1.Glyph
Есть Listbox в нем имена exe файлов по клику Listbox"a меняться должен Glyph
кнопки на иконку из exe
Пожалуйста если можно код.
← →
NickolayLi (2002-10-17 01:22) [1]посмотри Resxplor в демосах он вытаскивает иконки из длл и еще чего то тама
← →
Gliph (2002-10-17 19:49) [2]>NickolayLi что то ничего не понял я там.
Иконку вроде бы получается вытащить, но как ее на глифе кнопки отобразить или в битмап конвертнуть?
Если можно пример. Спасибо.
← →
NickolayLi (2002-10-17 23:11) [3]давай с утра 8)
пока.
← →
Gliph (2002-10-18 00:57) [4]Давай.
← →
Glyph (2002-10-19 00:11) [5]Что, никто так не делал ил помочь не хотите?
← →
Alex4444444444 (2002-10-19 11:25) [6]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-20 00:36) [7]Иконки в EXE файлах, и просто их на кнопке не нарисовать: TIcon из Exe файла, а Glyph(свойство) - TBitmap на кнопке. Беда!!!!
← →
Glyph (2002-10-20 00:44) [8]?????????????
← →
Rouse_ (2002-10-20 01:47) [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;
Желаю успехов
← →
Rouse_ (2002-10-20 01:58) [10]Вообщето желательно чуть по другому
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;
Желаю успехов
← →
Nick N A (2002-10-20 08:33) [11]
// 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;
← →
MetalFan (2002-10-21 09:23) [12]> Rouse_ ©
хм... а такой вопрос:
как уменьшить ее размер до 16Х16 ?
помогите плз. на кнопку не влазит(
← →
Севостьянов Игорь (2002-10-21 11:02) [13]Масштабируй
← →
Севостьянов Игорь (2002-10-21 12:12) [14]Например вот так:
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;
← →
MetalFan (2002-10-21 16:45) [15]
> Севостьянов Игорь ©
thanks )
← →
Ricks (2002-10-21 17:35) [16]Кстати, если именно из exe, то почему все предлагают Extract AssociatedIcon а не ExtractIcon??? Там ведь можно сразу доставать и большую и маленькую. А потом GetIconInfo, получить HBITMAP и потом уже....
← →
Севостьянов Игорь (2002-10-21 19:15) [17]Ты прав, я не предлагал, например, ничего нового просто ответил, как смаштабировать из предложенного варианта.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
Память: 0.8 MB
Время: 1.698 c