|
Вопрос # 2 501/ вопрос открыт / |
|
Здравствуйте!В приложении к вопросу код создания круглой формы.
А как мне на эту форму кинуть Image той же формы и тех же размеров и второе как вынести кнопку закрытия формы за приделы формы.
Приложение: Переключить в обычный режим- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls,
- Forms, Dialogs, ExtCtrls, Buttons, StdCtrls;
- type
- TForm1 = class(TForm)
- Button1: TButton;
- procedure FormCreate(Sender: TObject);
- procedure Button1Click(Sender: TObject);
- private
- { Private-Deklarationen}
- procedure CreateParams(var Params: TCreateParams); override;
- public
- { Public-Deklarationen}
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.DFM}
- { TForm1 }
- 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
- {clear form}
- Form1.Brush.Style := bsSolid; //bsclear;
-
- GetWindowRgn(Form1.Handle, FormRgn);
-
- DeleteObject(FormRgn);
-
- Form1.Height := 500;
- Form1.Width := Form1.Height;
-
- FormRgn := CreateRoundRectRgn(1, 1, Form1.Width - 1,
- Form1.height - 1, Form1.width, Form1.height);
-
- SetWindowRgn(Form1.Handle, FormRgn, TRUE);
- end;
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- Form1.close;
- end;
- end.
 |
Вопрос задал: GAZ (статус: Посетитель)
Вопрос отправлен: 10 марта 2009, 18:40
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Ученый
Здравствуйте, GAZ! Для того что бы перетаскивать мышкой по рабочему столу форму надо добавить в private:
procedure WMLButtonDown(var Msg: TMessage); message WM_LBUTTONDOWN;
и написать процедуру:
procedure TForm1.WMLButtonDown(var Msg: TMessage);
begin
Perform(WM_NCLBUTTONDOWN, HTCAPTION, Msg.LParam);
end;
и всё....
Приложение: Переключить в обычный режим- unit Unit1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs;
-
- type
- TForm1 = class(TForm)
- private
- { Private declarations }
- procedure WMLButtonDown(var Msg: TMessage); message WM_LBUTTONDOWN;
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.dfm}
- procedure TForm1.WMLButtonDown(var Msg: TMessage);
- begin
- Perform(WM_NCLBUTTONDOWN, HTCAPTION, Msg.LParam);
- end;
- end.
 |
Ответ отправил: Ученый (статус: 8-ой класс)
Время отправки: 11 марта 2009, 20:21
Оценка за ответ: 5
Комментарий к оценке: Теперь всё двигается,но форма захватывает верхнюю часть заголовка
|
Мини-форум вопроса
Всего сообщений: 7; последнее сообщение — 11 марта 2009, 20:56; участников в обсуждении: 3.
|
Вадим К (статус: Академик), 10 марта 2009, 22:55 [#1]:
А если просто поставить Image, то форма станет прямоугольной?
Вынести кнопку за пределы формы нельзя. Она не может висеть в воздухе. Но можно сделать по другому. Либо создать регион под кнопку и соединить его с круглым регионом, либо, что будет наверно проще, сделать ещё одну маленькую форму без заголовка, куда кинуть кнопку. Это даст возможность поставить её где угодно.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
GAZ (статус: Посетитель), 11 марта 2009, 18:44 [#2]:
Всё разобрался забыл у Image Align в alClient установить.У меня другая беда форма не хочет двигаться,что делать?
|
|
Вадим К (статус: Академик), 11 марта 2009, 18:45 [#3]:
А раньше двигалась?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
GAZ (статус: Посетитель), 11 марта 2009, 19:41 [#4]:
НЕТ!
|
|
Ученый (статус: 8-ой класс), 11 марта 2009, 19:43 [#5]:
как понять двигаться не хочет? мышкой нельзя по рабочему столу таскать?
|
|
GAZ (статус: Посетитель), 11 марта 2009, 20:07 [#6]:
Да!
|
|
GAZ (статус: Посетитель), 11 марта 2009, 20:56 [#7]:
Учёный
Теперь всё двигается,но форма захватывает верхнюю часть заголовка
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|