Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2010, 12:06   #1
cyber_NINJA
Пользователь
 
Аватар для cyber_NINJA
 
Регистрация: 19.05.2010
Сообщений: 40
По умолчанию Графика

Как задать timage чтоб он был не квадратом а кругом?
Windows обнаружила изменение координат положения курсора мыши, чтобы изменения вступили в силу требуется перезагрузка системы
cyber_NINJA вне форума Ответить с цитированием
Старый 07.07.2010, 13:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Видимо тебе нужно что-то в этом духе:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var b:TBitmap;rg:HRGN; p:array of TPoint;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);
var OldRgn : HRGN;
begin
 OldRgn:=SelectObject(Canvas.handle,rg);
  BitBlt(Canvas.Handle,0,0,b.Width,b.Height,b.Canvas.Handle,0,0,SRCCOPY);
 SelectObject(Canvas.handle,OldRgn);
end;

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;cx,cy:integer;pang,ang:double;
begin
 DoubleBuffered:=true;
 b:=TBitmap.Create;
 b.LoadFromFile('D:\stasya_ru_2_big.bmp');
 SetLength(p,5);
 cx:=Width div 2;cy:=Height div 2;
 ang:=360/Length(p);
 pang:=(2*pi*ang)/360;
 for i:=0 to high(p) do begin
   p[i].X:=cx+round(100*cos(ang));
   p[i].Y:=cy+round(100*sin(ang));
   ang:=ang+pang;
 end;
 p[high(p)]:=p[0];
 rg:=CreatePolygonRgn(p[0],5,ALTERNATE);
 //rg:= CreateEllipticRgn(1,1,500,500);
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
const r=100;  
begin
 //rg:= CreateEllipticRgn(x-r,y-r,x+r,y+r);
 //Repaint;
end;

end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика в С++ Grizzzli Помощь студентам 7 14.03.2012 23:16
графика в с++ Юрий_91 C++ Builder 6 23.05.2010 13:44
Графика VB 6 MarihuanaP Помощь студентам 0 05.12.2009 19:49