Страница: 1 |
Страница: 1 |
Вопрос: Access violation [Delphi]
Добавлено: 05.09.05 11:08
Автор вопроса: freeloader | Web-сайт:
var
nidTemp :PNOTIFYICONDATAA;
begin
nidTemp.cbSize:=sizeof(nidTemp);
nidTemp.Wnd:=Form1.WindowHandle;
nidTemp.uID:=0;
nidTemp.uFlags:=NIF_ICON or NIF_TIP;
nidTemp.uCallbackMessage:=0;
nidTemp.hIcon:=Form1.Icon.Handle;
nidTemp.szTip:='test'+chr(0);
Shell_NotifyIconA(0,nidTemp);
end;
Не хочет работать, показывает:
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00000000. Read of address 00000000'. Process stopped. Use step or Run to continue.
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #1
Добавлено: 05.09.05 11:17
нетуда запостил, кто умеет перенесите в Офф-Топ пожалуйста.
Номер ответа: 2
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #2
Добавлено: 05.09.05 11:48
PNOTIFYICONDATAA - указатель, а ты работаешь с ним как со структурой.
Номер ответа: 3
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #3
Добавлено: 05.09.05 16:00
Спасибо, это я уже в злости не знал что делать, вот и начал фигачить все подряд лишь бы работало
Короче это не ВБ, а Делфи, поэтому тут немного специфичный подход и структуры представляются в процедуру со знаком @.
Если у кого будет похожая проблема, вот рабочий.
procedure TForm1.SystemTray(MODifi :byte; mIcon :Word);
var
nidTemp :NOTIFYICONDATA;
begin
nidTemp.cbSize:=sizeof(nidTemp);
nidTemp.Wnd:=Form1.WindowHandle;
nidTemp.uID:=0;
nidTemp.uFlags:=NIF_ICON or NIF_TIP;
nidTemp.uCallbackMessage:=0;
nidTemp.hIcon:=mIcon;
nidTemp.szTip:='Ìåíåäæåð ãîðÿ÷èõ êëàâèøü'+chr(0);
Shell_NotifyIconA(MODifi,@nidTemp);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SystemTray(0,LoadIcon(hInstance,'MAINICON'));
end;
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 05.09.05 23:27
это просто передаешь указатель...
мона еще так, кидал те в аську, ну да мало-ли другим пригодится, дабы был выбор )
var
nidTemp :PNOTIFYICONDATA;
begin
GetMem(nidTemp, SizeOf(NOTIFYICONDATA));
nidTemp.cbSize:=sizeof(nidTemp);
nidTemp.Wnd:=Form1.WindowHandle;
nidTemp.uID:=0;
nidTemp.uFlags:=NIF_ICON or NIF_TIP;
nidTemp.uCallbackMessage:=0;
nidTemp.hIcon:=Form1.Icon.Handle;
nidTemp.szTip:='test' + #0;
Shell_NotifyIcon(0, nidTemp);
FreeMem(nidTemp);
end;