В разделе Заполнение изображением MDI-формы повторяющимся изображением. Я нашел (Copyright не мой а из книжки) более простой способ.
| Code: | 
| ... private OutCanvas: TCanvas; OldWinProc, NewWinProc: Pointer; 
 procedure NewWinProcedure(var Msg: TMessage); ... 
 procedure TMainForm.FormCreate(Sender: TObject); begin NewWinProc := MakeObjectInstance(NewWinProcedure); OldWinProc := Pointer(SetWindowLong(ClientHandle, gwl_WndProc, Cardinal(NewWinProc))); OutCanvas := TCanvas.Create; end; 
 procedure TMainForm.NewWinProcedure(var Msg: TMessage); var BmpWidth, BmpHeight: Integer; I, J: Integer; begin // default processing first Msg.Result := CallWindowProc(OldWinProc, ClientHandle, Msg.Msg, Msg.wParam, Msg.lParam); 
 // handle background repaint if Msg.Msg = wm_EraseBkgnd then begin BmpWidth := MainForm.Image1.Width; BmpHeight := MainForm.Image1.Height; if (BmpWidth <> 0) and (BmpHeight <> 0) then begin OutCanvas.Handle := Msg.wParam; for I := 0 to MainForm.ClientWidth div BmpWidth do for J := 0 to MainForm.ClientHeight div BmpHeight do OutCanvas.Draw(I * BmpWidth, J * BmpHeight, MainForm.Image1.Picture.Graphic); end; end; end; 
 procedure TMainForm.FormDestroy(Sender: TObject); begin OutCanvas.Free; end; | 
Автор: Alexander N.Voronin
 
			
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!