Главная страница
    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.6 MB
Время: 0.041 c
1-74684
Che
2002-12-13 01:11
2002.12.23
Авторизация!!


1-74629
vilfred
2002-12-10 14:42
2002.12.23
глюки в объявлении переменных


14-74976
DanIQ
2002-11-30 07:30
2002.12.23
Scroll Lock


1-74655
u96
2002-12-12 22:23
2002.12.23
TOpenPictureDialog


8-74860
Wlad;(
2002-09-07 22:22
2002.12.23
Kто нибудь знает способ получения размера изо. в .rtl файле





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский