Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Загрука значка 16x16 в Image1


Страницы:   1 2

Supreme ©   (2002-11-29 17:28:00) 

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


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

Alexander Vasjuk (10.12.02 18:15)

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


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


Matolch   (2002-12-13 10:26:00) [22]

Дальше - так:

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;







Matolch   (2002-12-13 10:15:00) [23]

Пли-из:

> 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 - ма-аленькой.
Почитай справку, там конечно, на какой-то тарабарщине всё написано, но если долго смотреть, становится понятно.


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

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


Matolch   (2002-12-13 08:37:00) [25]

UsesShellAPI;


Matolch   (2002-12-13 08:35:00) [26]

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.


Supreme   (2002-12-12 20:37:00) [27]

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


esu   (2002-12-12 20:05:00) [28]

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


Supreme   (2002-12-12 17:06:00) [29]

Так как?


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

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


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

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


ION T   (2002-12-08 18:57:00) [32]

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


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

??


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

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


apay   (2002-11-29 22:32:00) [35]

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

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


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

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


ION T   (2002-11-29 21:45:00) [37]

класс TIcon...


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

>Darkwin

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


Darkwin   (2002-11-29 17:30:00) [39]

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо