Форум: "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.005 c