Форум: "Основная";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
ВнизФорма без заголовка Найти похожие ветки
← →
Евгений Р. (2007-11-06 20:12) [0]Хочу создать форму без заголовка в нужном месте экрана.
Если указывается result.BorderStyle:=bsNone, то форма открывается в левом верхнем углу. Если строка закомментирована, то открывается как положено.result:=TfWorkChees_Plan_Hint.Create(application);
result.BorderStyle:=bsNone;
rect:=etc.rect;
(etc.chPlanPanel).owner).ClientToScreen(rect.TopLeft);
rect.TopLeft:=tPanel(etc.chPlanPanel).ClientToScreen(rect.TopLeft);
(etc.chPlanPanel).owner).ClientToScreen(rect.BottomRight);
rect.BottomRight:=tPanel(etc.chPlanPanel).ClientToScreen(rect.BottomRight);
result.Left:=rect.Left;
result.Top:=rect.Bottom;
← →
Dib@zol © (2007-11-06 20:36) [1]Данный выдранный фрагмент не даёт полного представления о том, что ты хочешь сделать. Конкретизируй.
А пока что ограничусь общим советом: юзай MoveWindow.
← →
Евгений Р. (2007-11-06 20:59) [2]строка frm.left=100 - перемещает форму в точку с координатой 100.
Если ей предшествует строка
frm.BorderStyle:=bsNone,
то перемещение не работает.
Почему?
← →
Dib@zol © (2007-11-06 21:23) [3]У меня всё работает (в FormCreate). Ты где это обрабатываешь? Если можешь, приведи простенький пример, где етот окоянный еррор появляется. По тому коду, что ты выкладываешь, понять этого нельзя.
← →
Евгений Р. (2007-11-06 22:39) [4]О каком ерроре идет речь? Я говорю, что форма не перемещается по экрану при изменении Top и Left!
← →
{RASkov} (2007-11-07 01:33) [5]> [4] Евгений Р. (06.11.07 22:39)
> Я говорю, что форма не перемещается по экрану при изменении Top и Left!
Наверное только у тебя этот "косяк".)
Вот так вот перемещается:procedure SF;
begin
with TForm.Create(Application) do begin
Show;
BorderStyle:=bsNone;
Left:=(Screen.Width-Width) div 2;
ShowMessage("До перемещения");
Left:=Left-100;
ShowMessage("После перемещения");
Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SF;
end;
..да и в чем сомнения могут быть?
В прочем что у тебя тут....
> rect:=etc.rect;
> (etc.chPlanPanel).owner).ClientToScreen(rect.TopLeft);
> rect.TopLeft:=tPanel(etc.chPlanPanel).ClientToScreen(rect.TopLeft);
> (etc.chPlanPanel).owner).ClientToScreen(rect.BottomRight);
> rect.BottomRight:=tPanel(etc.chPlanPanel).ClientToScreen(rect.BottomRight);
> result.Left:=rect.Left;
> result.Top:=rect.Bottom;
...происходит, я не вникал.)
← →
Евгений Р. (2007-11-07 12:21) [6]Спасибо, RASkov!
Свел проблему в пробный проект.
Форму создаю динамически.
Под Д5 работает и button1 и button2.
Под Д2005 правильно работает только button2, т.е. при удалении заголовка на изменение положения реагирует только после показа формы.
В принципе не существенно, но дойти нужно было.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
frm:tForm;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
frm:=tFOrm.Create(application);
frm.Left:=100;
frm.top:=100;
frm.BorderStyle:=bsNone;
frm.show;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
frm:=tFOrm.Create(application);
frm.BorderStyle:=bsNone;
frm.show;
frm.Left:=100;
frm.top:=100;
end;
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c