![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Загрука значка 16x16 в Image1
Supreme © (2002-11-29 17:28:00)Как в Image1 загрузить значок (иконку) размером 16x16?
Supreme (2002-12-27 20:01:00) [1]Спасибо! И где ты раньше был? :-))
DiHLoS (2002-12-27 16:06:00) [2]Попробуй так:
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 15:47:00) [3]Спасибо!
Supreme (2002-12-26 19:14:00) [4]Если нет, так и скажите нет и я отстану, не буду форум засорять...
Supreme (2002-12-25 14:00:00) [5]Люди, ну где вы? Нужна помощь!! Неужели никто ни сталкивался с этим?
Supreme (2002-12-24 18:16:00) [6]ple-e-e-e-e-e-ease.........
Supreme (2002-12-24 13:06:00) [7]Ну так можете помочь?
bak (2002-12-24 08:49:00) [8]а в вынях вроде не в имидж, а во что-то вроде СпидБуттон"а грузят ...
Supreme (2002-12-23 22:27:00) [9]Ну пожалуйста, очень надо. Спрошу конкретно:
Нужно из указанного exe-файла загрузить его значок размером только 16х16 в Image1
Supreme (2002-12-23 12:39:00) [10]??
Supreme (2002-12-18 21:09:00) [11]Ну так как?
Supreme (2002-12-17 16:40:00) [12]Короче, мне в итоге нужно сделать какбы панель быстрого запуска как в винде. Вот я и хочу в Image1 загрузить иконку выбранного файла, а потом на событии OnClick запускать прогу.
Matolch (2002-12-16 20:37:00) [13]Уперся, что-ли... Смотрел хоть, или не нашел? PaintBox тоже
> Типа OnMouseDown, OnMouseMove
Supreme (2002-12-16 16:03:00) [14]Не, мне надо потом Image использовать. Типа OnMouseDown, OnMouseMove
Matolch (2002-12-15 20:35:00) [15]И нафига тебе тогда Image1, скажи, пожалста, если ты его не используешь?
> TMainForm = class(TForm)
> Image1: TImage;
> ....................
> HochuIconkuBlin := GetIcon(MoyFail,BolshayaIconka); {хотеть не вредно}
> Canvas.Draw(0,0,HochuIconkuBlin);
Так ты рисуешь на канвасе формы, а не на имидже.
И вообще, имидж (образ, изображение) нужен для того, чтобы в него загружать изображения из файла (напр.), для рисования он пригоден. Но не очень. PaintBox (прямоугольник для рисования) - гораздо лучше.
Добавь в список Usesмодуль ShellAPI. Именно поэтому у тебя при компилякции ничего не получается.
Matolch (2002-12-15 20:14:00) [16]
> Matolch © (13.12.02 08:37)
> Uses ShellAPI;
Извини, забросил. Занят был типа.
Supreme (2002-12-14 22:04:00) [17]Ну так как?
Supreme (2002-12-14 10:48:00) [18]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.
Matolch (2002-12-13 14:45:00) [19]Покажи код, блин
Supreme (2002-12-13 13:16:00) [20]сделал всё, как написано, а при компиляции пишет:
Function needs reult type