![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Нужно использловать рисование с использоанием готовых картинок. Эти картинки будут двигаться, и еще будут динамически рисоваться связи между этими картинками. 
		
	
		
		
		
		
		
	
		
		
	
	
	В какую сторону копать? Тяжелые библиотеки типа OpenGL не хочется использовать  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Если вы имеете в виду блок-схемы, то GDI вам хватит, просто используйте  двойную буферизацию. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 да, что-то вроде анимированной блок схемы 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Тогда canvas, как я и говорил, подойдет. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Создайте TBitmap, рисуйте в нем, а затем копируйте на Canvas нужного компонента.  | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 что я делаю не так? 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;
type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    procedure FormCreate(Sender: TObject);
  private
    procedure DrawBitmap(const Filename: String; const x,y: Integer);
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
  procedure TForm1.DrawBitmap(const Filename: String; const x,y: Integer);
    var
      Bmp: TBitmap;
    begin
      // Проверяем наличие картинки
      if not FileExists(Filename) then
        begin
          ShowMessage('The bitmap ' + Filename + ' was not found!');
          Exit;
        end;
      Bmp := TBitmap.Create;
      Bmp.LoadFromFile(Filename);
      PaintBox1.Canvas.Draw(x, y, Bmp);
    end;
procedure TForm1.FormCreate(Sender: TObject);
  begin
    DrawBitmap('test.bmp', 100, 100);
  end;
end. | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 вот тут =) 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	procedure TForm1.FormCreate(Sender: TObject);
  begin
    DrawBitmap('test.bmp', 100, 100);
  end;объфви Bmp: TBitmap внутри класса TForm1 и создавай его в OnCreate и уничтожай в onDestroy. Еще можешь создать TImage - рисунок на нем не "затирается", поэтому onPaint тебе обрабатывать не прийдется.  | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 а что будет если битмап не уничтожить? 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 оперативка оч быстро закончится. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 |