Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.17;
Скачать: CL | DM;

Вниз

Форма без заголовка   Найти похожие ветки 

 
Евгений Р.   (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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
15-1200452599
Slider007
2008-01-16 06:03
2008.02.17
С днем рождения ! 16 января 2008 среда


2-1201181350
IC+
2008-01-24 16:29
2008.02.17
Получить путь к объекту из ярлыка (lnk)


15-1200041562
ZoldBerger
2008-01-11 11:52
2008.02.17
Написал программу DelphiDecompiler


15-1200215446
Dark_Blue
2008-01-13 12:10
2008.02.17
Протестируйте тест


15-1200425147
Kolan
2008-01-15 22:25
2008.02.17
Решил сделать доклад для руководства :) послали&#133