Показать сообщение отдельно
  #4  
Старый 19.04.2009, 19:30
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Цитата:
Сообщение от Excreman
не понял смысл последней фразы, может она важна?
Не думаю, что проблема в этом. Просто если сделать для формы обработчик события OnResize, как там требуется
Код:
procedure TForm1.FormResize(Sender: TObject);
begin
  FormPaint(Sender);
end;
Так вот, если написать такой обработчик, то картинка будет перерисовываться при изменении размеров окна. Другого смысла этого требования я не вижу... Хотя нужно иметь в виду, что при создании формы тоже происходит событие OnResize. Но напишите его на всякий случай — не помешает. =)

Вообще, я обычно использую несколько другой способ получения контекста рисования, когда рисование происходит на самой форме
Код:
procedure TForm1.FormPaint(Sender: TObject);
var
  DC: HDC;
  hrc:HGLRC;
begin
  DC := GetDC(Handle);
  hrc:=wglCreateContext(DC);
  wglMakeCurrent(DC,hrc);

  { дальше всё так же }

  wglMakeCurrent (0,0);
  wglDeleteContext(hrc);
  ReleaseDC(Handle, DC);
end;
Попробуйте, вдруг поможет... А вообще у вас работают другие приложения, которые используют библиотеку OpenGL? Может, проблема в ней...

P.S. Ещё одно. Этому совету хотите следуйте, хотите — нет, но я бы выполнила трассировку программы, чтобы хотя бы выяснить, на какой строке происходит ошибка. Только имейте в виду, что отладка программ, использующих OpenGL, вообще говоря, не рекомендуется.
Ответить с цитированием