![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#12
|
|||
|
|||
|
Цитата:
Помогите с ошибкой, что не так делаю ? Код:
var
Form1: TForm1;
Icon: TIcon;
Pch: array[0..256] of Char;
IconIndex: Word;
S:String;
.......
.......
procedure TForm1.sSpeedButton1Click(Sender: TObject);
begin
if S='' then
begin
if sOpenDialog1.Execute then
begin
S:=sOpenDialog1.FileName;
Icon:=TIcon.Create;
StrPCopy(Pch,S);
Icon.Handle:= ExtractAssociatedIcon(hInstance, Pch, IconIndex);
sSpeedButton1.Glyph.Width:= Icon.Width;
sSpeedButton1.Glyph.Height:= Icon.Height;
sSpeedButton1.Glyph.Canvas.Draw(0, 0, Icon);
Icon.Free;
end;
end
else
begin
ShellExecute (Form1.Handle, nil, PChar(S), nil, nil, SW_RESTORE);
end;
end;Всё работает нормально, ярлык отображается, но как только закрываю программу, выскакивает ошибка access violation at address 00000000 В интернете естественно искал, но нашёл только одну похожую тему. Человек делал что-то похожее на то, что делаю я, только в 2004 году . - ссылкаВнятного ответа не было. Будьте добры, помогите ![]() |