Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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.47 MB
Время: 0.007 c
6-74879
Lefan
2002-10-28 09:19
2002.12.23
проверка страницы перед закачкой...


1-74774
iPasha
2002-12-11 10:13
2002.12.23
Проблема с DateTimePicker


14-74975
spb
2002-12-03 15:05
2002.12.23
Просто так


3-74558
Dr. Well
2002-12-04 12:26
2002.12.23
QReport. Не срабатывает Preview.


7-75020
Gliph
2002-10-17 01:18
2002.12.23
Кнопки и иконки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский