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

Вниз

Загрука значка 16x16 в Image1   Найти похожие ветки 

 
Supreme   (2002-11-29 17:28) [0]

Как в Image1 загрузить значок (иконку) размером 16x16?


 
Darkwin ©   (2002-11-29 17:30) [1]

If OpenPictureDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;


 
Supreme   (2002-11-29 21:16) [2]

>Darkwin

ага, именно рисунок значка размером именно 16х16, как на панели быстрого запуска, да?? =)


 
ION T ©   (2002-11-29 21:45) [3]

класс TIcon...


 
Supreme   (2002-11-29 22:02) [4]

можно пример?


 
apay ©   (2002-11-29 22:32) [5]

Icon := TIcon.Create;
Icon.Handle := LoadImage( HInstance, "MYICON", IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR );

и никаких гвоздей :)


 
Supreme   (2002-12-07 17:21) [6]

А как это использовать, чтобы оно в image1 появилось? и если файл имеет расширение .lnk ?? (т.е. как в панели быстрого запуска)


 
Supreme   (2002-12-08 16:56) [7]

??


 
ION T ©   (2002-12-08 18:57) [8]

.lnk это особый вид графических файлов которые обрабатываются секретными морфирующими участками кода ядра написанного для не менее секретного морфирующего виртуального процесора с рандомно генерящимся набором микрокомманд...в общем шансов просмотреть его у тебя мало, а уж куда-то вывести и подавно%)


 
Supreme   (2002-12-10 17:50) [9]

OK. А как например из .exe-файла вытащить его иконку 16x16 и поместить в Image1??


 
Alexander Vasjuk   (2002-12-10 18:15) [10]

LoadImage не работает в NT


 
Supreme   (2002-12-12 17:06) [11]

Так как?


 
esu ©   (2002-12-12 20:05) [12]

Где-то в NT столкнулся, что маленькая иконка возвращается все равно 32x32, только с худшим качеством. Скретчить видимо нужно.


 
Supreme   (2002-12-12 20:37) [13]

А мож у кого то есть исходник, если раньше сталкивался? Если, да, помогите плиз!


 
Matolch ©   (2002-12-13 08:35) [14]

function TMainForm.GetIcon(FileName: string; const Large: boolean): TIcon;
var
HL, HS: HICON;
ResPChar: array [0..MAX_PATH] of char;
IconIndex: Word;
begin
Result := TIcon.Create;
if AnsiUpperCase(ExtractFileExt(FileName)) <> ".LNK" then
begin
FindExecutable(PChar(FileName), "C:\", ResPChar);
ExtractIconEx(ResPChar, 0, HL, HS, 1);
if Large
then
Result.Handle := HL
else
Result.Handle := HS;
end
else begin
IconIndex := 0;
Result.Handle := ExtractAssociatedIcon(HInstance, PChar(FileName),IconIndex);
end
end;


PS: Thanx to Masters И.Ш., A.P.


 
Matolch ©   (2002-12-13 08:37) [15]

Uses ShellAPI;


 
Supreme   (2002-12-13 09:30) [16]

Спасибо конечно. Но а мож можно вытащить иконку из exe-файла, как это делают
многие программы. Типа открываешь exe-файл, а тебе в Image1 идёт его иконка 16х16,
а в Edit1 - путь к той программе. Вот собственно основная проблема.


 
Matolch ©   (2002-12-13 10:15) [17]

Пли-из:

> FindExecutable(PChar(FileName), "C:\", ResPChar);
> ExtractIconEx(ResPChar, 0, HL, HS, 1);


где FileName - имя открываемого тобой файла, результат можещ увидеть таким образом:


> FindExecutable(PChar(FileName), "C:\", ResPChar);
> Caption := ResPChar;
> ExtractIconEx(ResPChar, 0, HL, HS, 1);

HL - Handle БОЛЬШОЙ иконки, HS - ма-аленькой.
Почитай справку, там конечно, на какой-то тарабарщине всё написано, но если долго смотреть, становится понятно.


 
Matolch ©   (2002-12-13 10:26) [18]

Дальше - так:

procedure TMainForm.Button237Click(Sender: TObject);
var HochuIconkuBlin: TIcon;
BolshayaIconka: boolean;
MoyFail: string;
begin
MoyFail := "C:\Маи дакументы\Мой файл, из которого я хочу блин извлечь иконку выполняющего этот мой файл приложения";
BolshayaIconka := TRUE; // если FALSE тогда получишь не большую иконку (маленькую)
HochuIconkuBlin := GetIcon(MoyFail,BolshayaIconka);
Canvas.Draw(0,0,HochuIconkuBlin);
end;








 
Игорь Шевченко ©   (2002-12-13 10:29) [19]

Alexander Vasjuk (10.12.02 18:15)

> LoadImage не работает в NT


Где такая трава растет, поделись ?


 
Supreme   (2002-12-13 13:16) [20]

сделал всё, как написано, а при компиляции пишет:
Function needs reult type


 
Matolch ©   (2002-12-13 14:45) [21]

Покажи код, блин


 
Supreme   (2002-12-14 10:48) [22]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TMainForm = class(TForm)
Image1: TImage;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
MainForm: TMainForm;

implementation

{$R *.dfm}
function TMainForm.GetIcon(FileName: string; const Large: boolean): TIcon;
var
HL, HS: HICON;
ResPChar: array [0..MAX_PATH] of char;
IconIndex: Word;
begin
Result := TIcon.Create;
if AnsiUpperCase(ExtractFileExt(FileName)) <> ".LNK" then
begin
FindExecutable(PChar(FileName), "C:\", ResPChar);
ExtractIconEx(ResPChar, 0, HL, HS, 1);
if Large
then
Result.Handle := HL
else
Result.Handle := HS;
end
else begin
IconIndex := 0;
Result.Handle := ExtractAssociatedIcon(HInstance, PChar(FileName),IconIndex);
end
end;

procedure TMainForm.Button1Click(Sender: TObject);
var HochuIconkuBlin: TIcon;
BolshayaIconka: boolean;
MoyFail: string;
begin
MoyFail := "E:\Windows\calc.exe";
BolshayaIconka := TRUE;
HochuIconkuBlin := GetIcon(MoyFail,BolshayaIconka);
Canvas.Draw(0,0,HochuIconkuBlin);
end;

end.


 
Supreme   (2002-12-14 22:04) [23]

Ну так как?


 
Matolch ©   (2002-12-15 20:14) [24]


> Matolch © (13.12.02 08:37)
> Uses ShellAPI;

Извини, забросил. Занят был типа.


 
Matolch ©   (2002-12-15 20:35) [25]

И нафига тебе тогда Image1, скажи, пожалста, если ты его не используешь?

> TMainForm = class(TForm)
> Image1: TImage;
> ....................
> HochuIconkuBlin := GetIcon(MoyFail,BolshayaIconka); {хотеть не вредно}
> Canvas.Draw(0,0,HochuIconkuBlin);

Так ты рисуешь на канвасе формы, а не на имидже.
И вообще, имидж (образ, изображение) нужен для того, чтобы в него загружать изображения из файла (напр.), для рисования он пригоден. Но не очень. PaintBox (прямоугольник для рисования) - гораздо лучше.

Добавь в список Uses модуль ShellAPI. Именно поэтому у тебя при компилякции ничего не получается.



 
Supreme   (2002-12-16 16:03) [26]

Не, мне надо потом Image использовать. Типа OnMouseDown, OnMouseMove


 
Matolch ©   (2002-12-16 20:37) [27]

Уперся, что-ли... Смотрел хоть, или не нашел? PaintBox тоже

> Типа OnMouseDown, OnMouseMove



 
Supreme   (2002-12-17 16:40) [28]

Короче, мне в итоге нужно сделать какбы панель быстрого запуска как в винде. Вот я и хочу в Image1 загрузить иконку выбранного файла, а потом на событии OnClick запускать прогу.


 
Supreme   (2002-12-18 21:09) [29]

Ну так как?


 
Supreme   (2002-12-23 12:39) [30]

??


 
Supreme   (2002-12-23 22:27) [31]

Ну пожалуйста, очень надо. Спрошу конкретно:
Нужно из указанного exe-файла загрузить его значок размером только 16х16 в Image1


 
bak ©   (2002-12-24 08:49) [32]

а в вынях вроде не в имидж, а во что-то вроде СпидБуттон"а грузят ...


 
Supreme   (2002-12-24 13:06) [33]

Ну так можете помочь?


 
Supreme   (2002-12-24 18:16) [34]

ple-e-e-e-e-e-ease.........


 
Supreme   (2002-12-25 14:00) [35]

Люди, ну где вы? Нужна помощь!! Неужели никто ни сталкивался с этим?


 
Supreme   (2002-12-26 19:14) [36]

Если нет, так и скажите нет и я отстану, не буду форум засорять...


 
Supreme   (2002-12-27 15:47) [37]

Спасибо!


 
DiHLoS ©   (2002-12-27 16:06) [38]

Попробуй так:

uses ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
var
FileName: string;
FileInfo: _SHFILEINFOA;
begin
FileName := "c:\windows\notepad.exe";
ShGetFileInfo(PChar(FileName),0, FileInfo, Sizeof(FileInfo), SHGFI_ICON+SHGFI_SMALLICON);
Image1.Picture.Icon.Handle:=FileInfo.hIcon;
end;


 
Supreme   (2002-12-27 20:01) [39]

Спасибо! И где ты раньше был? :-))



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

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

Наверх




Память: 0.55 MB
Время: 0.012 c
14-25048
Marcus
2002-12-18 13:11
2003.01.09
Неустойчивая работа DCOM-клиентов (Delphi 5, MIDAS) в Windows 98


4-25153
Serd_hhc
2002-11-22 05:22
2003.01.09
Как перехватить сообщение...


3-24791
CPPBuilderDev
2002-12-16 16:52
2003.01.09
Коллеги подскажите как одновременно опросить несколько табклиц...


3-24797
Cobalt
2002-12-11 22:57
2003.01.09
Через что работает 1С?


1-24929
ironwit
2002-12-26 09:48
2003.01.09
теоретический вопрос -как программно заблокировать файл