Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > МЫШКА И IMAGES


Автор: JOOO 17.8.2003, 06:45
МНЕ НУЖНО ЧТОБЫ ПРИ НАЖАТИИ НА ФОРМУ ПОЯВЛЯЛСЯ РИСУНОК НО ИМЕННО ТАМ ГДЕ КЛИКНУЛИ МЫШКОЙ

Автор: Mikel 17.8.2003, 07:00
Обрабатывайте какое-нибудь событие типа OnMouseDown/OnMouseUp/OnMouseClick

Автор: <Spawn> 17.8.2003, 11:40
Вот тебе примечрик(в каталог проги помести BMP-файл "test.bmp"):
Код
var
 Form1: TForm1;
 BitMap:TBitMap;

implementation

{$R *.dfm}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
if not BitMap.Empty then
Canvas.Draw(x,y,BitMap);
end;

initialization
BitMap:=TBitMap.Create;
BitMap.LoadFromFile(ExtractFilePath(Application.ExeName)+'test.bmp');

finalization
FreeAndNil(BitMap);

end.


Но при таком подходе при получении формой сообщения WM_PAINT перерисовываемые участки будут затирать нарисованые изображения. Для того, чтобы обойти это, можно обработать OnPaint или, например, поместить на форму TImage с Align=alClient(в этом классе предусмотрена автоматическая перерисовка изображения)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)