Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];

Вниз

Как мне изменить иконку программы, из своей?   Найти похожие ветки 

 
Bodia   (2002-01-30 19:11) [0]

У меня проблема, мне нужно из своей программы менять иконку дрогой программы, как ето можно сделать в Делфи?

зарание благодарен!


 
Dimaond Cat   (2002-01-31 00:44) [1]

К примеру этот код поменяет иконку на стандартном калькуляторе
sendmessage(findwindow(nil,"Калькулятор"),wm_seticon ,ICON_Big,image1.Picture.Icon.Handle);
естественно для начала надо загрузить в image1 иконку.


 
Dimaond Cat   (2002-01-31 00:49) [2]

а вобще лучше полноценный пример
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, ExtCtrls,ShellApi;

type
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
UpDown1: TUpDown;
Edit1: TEdit;
OpenDialog1: TOpenDialog;
Label1: TLabel;
SaveDialog1: TSaveDialog;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
procedure OpenDialog1CanClose(Sender: TObject; var CanClose: Boolean);
procedure Image1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
end;

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
if opendialog1.FileName<>"" then
image1.Picture.Icon.Handle:= ExtractIcon(hinstance,Pchar(opendialog1.filename),strtoint(Edit1.text)-1);
end;

procedure TForm1.OpenDialog1CanClose(Sender: TObject;
var CanClose: Boolean);
begin
Label1.Caption:="Колличество иконок ("+inttostr(ExtractIcon(hinstance,Pchar(opendialog1.filename),Cardinal(-1)))+")";
Updown1.Max:= ExtractIcon(hinstance,Pchar(opendialog1.filename),Cardinal(-1));
updown1.Position:=1;
updown1.OnClick(Self,btNext);
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
if savedialog1.Execute then
image1.Picture.Icon.SaveToFile(Savedialog1.filename);
end;
//Можно так
procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Icon.ReleaseHandle;
Form1.Icon.Handle:=image1.Picture.Icon.Handle;
application.Icon.Handle:= image1.Picture.Icon.Handle;
end;
//А можно и так, этот способ удобнее тем что можно менять
//иконку не только у своего окна
procedure TForm1.Button3Click(Sender: TObject);
begin
sendmessage(handle, wm_seticon,ICON_BIG,image1.Picture.Icon.Handle);
sendmessage(application.handle, wm_seticon,ICON_BIG,image1.Picture.Icon.Handle);
sendmessage(findwindow(nil,"Калькулятор"),wm_seticon ,ICON_Big,image1.Picture.Icon.Handle);
end;

end.


 
ilg   (2002-01-31 10:47) [3]

Насколько я понимаю, этот пример меняет иконку запущенного приложения. А как поменять иконку в EXEшнике программы?


 
Dimaond Cat   (2002-01-31 19:00) [4]

2 ilg боюсь , что для этого придется дезассемблировать программу и подменить ее ресурсы, в принципе это возможно но практически довольно геморойно


 
Kirill   (2002-01-31 19:14) [5]

2ilg:
Когда-то я тоже задавался этим вопросом. Но ответа так и не получил. В инете есть компонента ExeIcon, но она только для Delphi 3 и без исходников (в ввиде dcu-файл).


 
Иван Шихалев   (2002-01-31 20:29) [6]

Берем доку по формату COFF, берем доку по формату RES... Если очень надо, то можно разобраться, а вот если не очень...


 
Tosov   (2002-01-31 20:32) [7]

В папке Дельфи\Demos\ResXplorer есть пример просмотра ресурсов.. попробуй там найти чего-нибудь полезного.


 
Bodia   (2002-02-02 11:13) [8]

Ну может есть, кокойто компонент?


 
Kirill   (2002-02-02 13:21) [9]

Есть, но только под Delphi 3.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
14-319
MBo
2002-02-12 14:20
2002.04.01
что за значки в ответах вместо копирайта?


1-144
dolphin
2002-03-22 02:25
2002.04.01
Как определить есть ли файл на сервере.


1-120
dr_neo
2002-03-21 17:45
2002.04.01
Взлом программ! ! !


1-136
Stexen
2002-03-21 23:02
2002.04.01
Размер Заголовка


1-198
Andrey007
2002-03-18 17:05
2002.04.01
Как написать разноцветную надпись?





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