| 
| 
 | Вопрос # 4 877/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Можно ли создать круглую форму из старой не обрубая ничего на старой форме?
 Т.е. круг должен описывать старую форму!
 
 Подобный код обрубает форму, а нам нужно избежать этого!
 
 
 procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or ws_popup xor ws_dlgframe;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var
FormRgn: hRgn;
begin
Form1.Brush.Style := bsSolid; //bsclear;
GetWindowRgn(Form1.Handle, FormRgn);
DeleteObject(FormRgn);
Form1.Height := 900;
Form1.Width := Form1.Height;
FormRgn := CreateRoundRectRgn(1, 1, Form1.Width - 1,
Form1.height - 1, Form1.width, Form1.height);
SetWindowRgn(Form1.Handle, FormRgn, TRUE);
end; 
|  |   Вопрос задал: prorok-kane (статус: Посетитель)Вопрос отправлен: 1 января 2011, 12:44
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 2 января 2011, 18:47; участников в обсуждении: 2. 
|   | Amidamaru (статус: 4-ый класс), 1 января 2011, 13:39 [#1]:ну так нужно просто решить задачку по геометрии  и по результату сделать круглую форму:
 дано:
 * прямоугольник
 * левый верхний угол имеет координаты (0,0)
 * ширина w и высота h
 найти:
 * круг описывающий этот прямоугольник (радиус, координаты центра)
 * прямоугольник (квадрат) описывающий этот круг (координаты л.в. угла).
 
 Центр круга на пересечении диагоналей;
 Радиус круга = половина диагонали;
 Сторона квадрата = диаметр круга;
 Координаты л.в. угла находятся: из каждой координаты центра круга отнимаем радиус;
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |