![]()  | 
	
 
  | 
| 
		 
			 
			#16  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 По вопросу swf к его величеству Поиску, а с таймером примерно так: 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	var
  Count : Integer; // глобальная переменная
procedure Timer(Sender: TObject);
begin
  BitBlt(Куда (в какой Canvas.Handle->), x, y, width, height, Canvas[Count].Handle, 0, 0, SRCCOPY);
  inc(Count);
  if Count > Length(Canvas) then
    Count := 0;
end; | 
| 
		 
			 
			#17  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Цитата: 
	
  | 
| 
		 
			 
			#18  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 1. TImage, TPaintBox, напрямую на форму и т.д. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	2. Функция BitBlt работает непосредственно с канвасом (холстом), а TCanvas - класс, его канвас (холст) это - Canvas.Handle аналог DC в API. Можно воспользоваться методами TCanvas для копирования, к примеру - CopyRect, Draw.  | 
| 
		 
			 
			#19  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 подскажите пожалуйста, где ошибка? 
		
	
		
		
			Код: 
	unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Grids, StdCtrls;
type
  TForm1 = class(TForm)
    Frames: TStringGrid;
    Page: TImage;
    procedure PageMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PageMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure PageMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure FramesClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  f:boolean = false;
  Can : array of TCanvas;
  n:integer = 0;
implementation
{$R *.dfm}
procedure TForm1.PageMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
f:=true;
page.canvas.MoveTo(x,y);
end;
procedure TForm1.PageMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if f then page.canvas.LineTo(x,y);
end;
procedure TForm1.PageMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
Var t:integer;
begin
f:=false;
for t := n to 9 do
    can[t] := page.Canvas;
end;
procedure TForm1.FormCreate(Sender: TObject);
var i : Integer;
begin
  SetLength(Can, 10);
  for i := 0 to 9 do
    Can[i] := TCanvas.Create;
    page.canvas.Pen.Color:=clWhite;
    page.Canvas.Rectangle(0,0,page.Width,page.Height);
    page.canvas.Pen.Color:=clBlack;
  for i := 0 to 9 do
    can[i] := page.Canvas;
  for i := 0 to 9 do
    frames.Cells[i,0]:= inttostr(i+1);
  BitBlt(page.canvas.Handle, 0, 0, width, height, Can[0].Handle, 0, 0, SRCCOPY);
end;
procedure TForm1.FramesClick(Sender: TObject);
begin
n:=frames.Col;
BitBlt(page.canvas.Handle, 0, 0, width, height, Can[frames.col].Handle, 0, 0, SRCCOPY);
end;
end.ну и исходник сам прилагается  | 
| 
		 
			 
			#20  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 А что нужно получить? 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	BitBlt(page.canvas.Handle, 0, 0, width, height, Can[frames.col].Handle, 0, 0, SRCCOPY);  | 
| 
		 
			 
			#21  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
 Или это так задумано, чтобы врагов запутать? Последний раз редактировалось angvelem, 12.08.2011 в 22:07.  | 
| 
		 
			 
			#22  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Немного подправил твой код. Посмотри, это то что нужно: 
		
	
		
		
			 |