Главная страница
    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.005 c
1-145
ЗЛ
2002-03-22 07:36
2002.04.01
Eсть ListBox внем 300 записей, каждые пол секунды я вывожу в label запись начиная с первой и заканчивая последней как мне сделать к этому действию ProgresBar


1-242
ghost_by
2002-03-06 20:20
2002.04.01
Показать Hint ы в StringGride


7-328
serg hh
2002-01-03 13:26
2002.04.01
Безопастность NT


14-284
Vladimir Lubenchenko
2002-02-15 22:08
2002.04.01
Where can I download Report Builder Enterprise 6.03 for Delphi 6


1-167
VCL
2002-03-18 22:12
2002.04.01
Помогите разобраться с RichEdit.





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