![]() |
|
|
Регистрация | << Правила форума >> | 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 году ![]() Внятного ответа не было. Будьте добры, помогите ![]() |