|
Вопрос # 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
найти:
* круг описывающий этот прямоугольник (радиус, координаты центра)
* прямоугольник (квадрат) описывающий этот круг (координаты л.в. угла).
Центр круга на пересечении диагоналей;
Радиус круга = половина диагонали;
Сторона квадрата = диаметр круга;
Координаты л.в. угла находятся: из каждой координаты центра круга отнимаем радиус;
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|