Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2013, 13:53   #1
Makars
 
Регистрация: 12.10.2013
Сообщений: 4
По умолчанию Open gl, рисование на панели

Создаю свой класс с наследованием от TPanel.Переопределяю метод Paint, пишу там свой код с вызовом Opengl функций .Но при создании такой панели на главной форме ничего не отрисовывается. Подскажите плиз что я делаю не так, может мне следует переопределять какой то другой метод TPanel ?

Код:
 procedure Paint; override;
constructor Create(AOwner:TComponent;aParent:TWinControl);
...

constructor TChessBoard3.Create(AOwner:TComponent;aParent:TWinControl);
begin
  inherited Create(AOwner);
  Parent:=aParent;
  SetDCPixelFormat(Canvas.Handle);
  hrc := wglCreateContext(Canvas.Handle);
end;

procedure TMyPanel.Paint;
var i:integer;
k:real;
begin
inherited Paint;

k:=0.9;
wglMakeCurrent(Canvas.Handle, hrc);
glViewPort (0, 0, Width, Height); // область вывода
glClearColor (0.5, 0.5, 0.75, 1.0); // цвет фона
glClear (GL_COLOR_BUFFER_BIT);      // очистка буфера цвета
glLineWidth (6);
glBegin (GL_LINE) ;
//for i:=0 to 5 do begin
glVertex2f (k * cos (2 * Pi * i / 6), k * sin (2 * Pi * i / 6));
glVertex2f (k * cos (2 * Pi * (i + 1) /6),k * sin (2 * Pi * (i + 1) / 6) ) ;
//end;
glEnd;

end;
Makars вне форума Ответить с цитированием
Старый 12.10.2013, 20:14   #2
Makars
 
Регистрация: 12.10.2013
Сообщений: 4
По умолчанию

Охохо, ни одного ответа. Такой сложный вопрос?)
Или я не понятно обьяснил проблему???
Makars вне форума Ответить с цитированием
Старый 13.10.2013, 13:01   #3
Develop
Пользователь
 
Регистрация: 26.06.2010
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Makars Посмотреть сообщение
Охохо, ни одного ответа. Такой сложный вопрос?)
Или я не понятно обьяснил проблему???
Не то что-бы непонятно, просто это никому не надо))

Можешь посмотреть как у меня сделано. Правда там для Лазаруса,
но думаю что в Делфи тоже скомпилится.
http://www.cyberforum.ru/opengl/thread857446.html
Develop вне форума Ответить с цитированием
Старый 14.10.2013, 18:06   #4
cyberdev
Форумчанин
 
Аватар для cyberdev
 
Регистрация: 10.10.2013
Сообщений: 150
По умолчанию

Просто создайте обработчик OnPaint в вашем компоненте (в стандартной панели его нет) и осуществляйте рендер в нём (как в примерах с главной формой).
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
cyberdev вне форума Ответить с цитированием
Старый 14.10.2013, 18:24   #5
cyberdev
Форумчанин
 
Аватар для cyberdev
 
Регистрация: 10.10.2013
Сообщений: 150
По умолчанию

Цитата:
Охохо, ни одного ответа. Такой сложный вопрос?)
Надо иметь выдержку. Помощь на форуме, дело добровольное!
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
cyberdev вне форума Ответить с цитированием
Старый 14.10.2013, 20:28   #6
Makars
 
Регистрация: 12.10.2013
Сообщений: 4
По умолчанию

Спасибо за помощь.
Makars вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Open gl qsv1991 Помощь студентам 3 30.07.2012 20:35
open() Qaliti JavaScript, Ajax 4 06.03.2012 15:03
Open GL, C++ Алина_258 Помощь студентам 6 18.06.2011 18:53
window.open VistaSV30 JavaScript, Ajax 4 29.10.2010 23:16
работа с элементами панели "рисование" Alien_2 Microsoft Office Word 6 25.11.2009 17:45