![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Загрука значка 16x16 в Image1
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;