Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.01;
Скачать: CL | DM;

Вниз

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

 
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 вся ветка

Текущий архив: 2002.04.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
3-64
Cyberbob
2002-03-09 20:48
2002.04.01
Как свою БД сделать-например


3-76
Ross
2002-02-17 18:39
2002.04.01
Прогресс бар


6-271
anmak
2001-11-02 16:49
2002.04.01
Socket


7-326
LinX
2001-12-21 01:09
2002.04.01
Виртуальный принтер


3-52
urii
2002-03-07 19:09
2002.04.01
переносимость