| 
| 
 | Вопрос # 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);beginPerform(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]:Учёный Теперь всё двигается,но форма захватывает верхнюю часть заголовка
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |