![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Необходимо сделать так, чтоб на одном компе можно было рисовать, а на другом видеть, что происходит (совмесный графический редактор). Передавать инфу нужно через сокеты. Каким образом можно узнать, что юзер нарисовал на канве 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Эм... О_о... если канва не слишком большая - можно передавать всё изображение... А для отдельных участков - хз... 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 В этом то и дело, что всю канву передовать нехорошо..... Вариант использования сторонних компонентов готовых неподходит.... 
		
	
		
		
		
		
		
		
			Последний раз редактировалось Proger10, 13.04.2009 в 18:09.  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Метафайлы не подойдут? 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 А почему-бы не передавать теже комманды, что породили изменения? 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Хм... Как я сам не догадался???? 
		
	
		
		
		
		
		
	
		
		
	
	
	Неохото создавать новую тему, так что спрашиваю здесь: С Карандашом, я всё сделал. Для всех остальных компонентов неоходимо сделать что-то типа предпросмотра. Просто нарисовать линию (прямоугольник, круг) легко. Но нужно сделать так чтоб удалить то что нарисовал(во время рисования объекта). В общем нужно отменить последние действие. Как это сделать?  | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Как вариант - сохранить "бэкап" канвы, и накладывать превью на него, логируя и воспроизводя действия... (Сори, если непонятно объяснил) 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Идею понял. Но как сделать бэкап канвы??? 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Создать переменную с типом TCanvas. Неполучается (PaintBox1.Canvas это параметр только для чтения). 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#10  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Код: 
	var tempCanv: TCanvas; begin tempCanv:=TCanvas.Create; //Непомню, может, надо указывать "родителя".... tempCanv.Assign(PaintBox1.Canvas); //Бекапим ... //Делаем что надо... ... PaintBox1.Canvas.Assign(tempCanv); //Восстанавливаем ... tempCanv.Free; //Не забываем прибраться за собой))) end; Последний раз редактировалось PhoeniX, 13.04.2009 в 20:31.  | 
| 
		 
			 
			#11  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Говорит: Cannot assign a nil to a TControlCanvas. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#12  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 А, вспомнил... Канву хран проассигниш, там лаг кокойто... 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Читай хелпы по этой теме. Тут я бессилен... Щас, полазаю по Делфи Ворлду, мб, чё найду..  | 
| 
		 
			 
			#13  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Может мме поможит CopyRect() 
		
	
		
		
		
		
		
	
		
		
	
	
	 |