![]()  | 
	
 
  | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 подскажите плиз, как убрать определенную линию с формы?, команда glClear(GL_COLOR_BUFFER_BIT); не подойдет, т.к она стирает полностью со всей формы 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Ставь вопрос конкретнее. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	В OpenGL не удаляется, а не отрисовывается, то что не нужно.  | 
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
 
sariman (03.03.2012)
  | ||
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 прошу прощение) не так сформулировал вопрос, у меня есть две линии, которые используются как пики (bass.dll), обновляется у меня функцией glClear(GL_COLOR_BUFFER_BIT); линии, потому что если этого не делать, получается не красиво, но если я начинаю рисовать на форме, то оно стирается, вот я и спрашиваю, чем можно заменить? 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Всё-таки вы не понимаете принцип работы OpenGL. В нём нет команд стереть объект (линию), при не надобности, объект просто не рисуется. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	function DrawGLScene : Boolean;
begin
  // Очистить сцену и буфер глубины
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  glLoadIdentity;             // Сбросить текущую матрицу
...
  if isDrawLine then
    DrawLine; // рисовать нужное
...
end; | 
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
 
sariman (03.03.2012)
  | ||
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 да..я немного не понимаю..я прикрепил исходник, может поможете, буду очень благодарен) чтобы воспроизвести нужно два раза кликнуть по формее если что 
		
	
		
		
			 | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 1. Почисти Дельфи от вируса (\bin\lib\sysconst.bak) переименуй в sysconst.dcu 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	2. Если выкладываешь, постарайся обойтись без всякого сброда вроде: sBitBtn, sLabel, sButton; 3. Немного изменённый код, с цветом разбирайся сам, я эту библиотеку не использую. (держу только для того, чтобы можно было отвечать на вопросы): Код: 
	  public
    { Public declarations }
    procedure WMPaint(var Msg: TWMPaint); message WM_PAINT;
  end;
...
// Рисование картинки
procedure TForm1.WMPaint(var Msg: TWMPaint);
var
  ps    : TPaintStruct;
  Level : DWORD;
  High  : FLOAT;
begin
  BeginPaint(Handle, ps);
  // очистка буфера цвета и буфера глубины
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  glColor3f(0.388235294, 0.388235294, 0.388235294);
  glBegin(GL_LINES);
    glVertex2f(-0.99, 1);
    glVertex2f(-0.99, 0.77);
    glVertex2f(-0.99, 0.77);
    glVertex2f(0.87, 0.77);
    glVertex2f(0.87, 0.76);
    glVertex2f(0.87, 1);
  glEnd;
  Level := BASS_ChannelGetLevel(Channel);
  High  := MulDiv(100, HIWORD(Level), 32768) / 100;
  if High = 2 then
    Exit;
  glLineWidth(8);
  glBegin(GL_LINES);
    // првый спектр
    glColor3f(1, 1, 1);
    glVertex2f(0, -1);
    glColor3f(0, 0, 0);
    glVertex2f(High, -1);
    // левый спектр
    glColor3f(0, 0, 0);
    glVertex2f(-High, -1);
    glColor3f(1, 1, 12);
    glVertex2f(0, -1);
  glEnd;
  glFlush;
  SwapBuffers(DC); // вывод на экран
  EndPaint(Handle, ps);
end;
procedure TForm1.tmr1Timer(Sender: TObject);
begin
  InvalidateRect(Handle, nil, False);
end; | 
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
 
sariman (03.03.2012)
  | ||
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 огромное спасибо за помощь) 
		
	
		
		
		
		
		
	
		
		
	
	
	 |