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

Вниз

Плавающие окна (Drag&Doc)   Найти похожие ветки 

 
Zeleniy   (2007-02-15 13:58) [0]

Привет, всем!

Есть TControl, на нем расположены несколько панелей (пусть Panel1-Panel4).
Нужно чтобы пользователь смог сохранять(загружать) расположение этих панелей как в ДОКЕ, так и когда панели становятся плавающими окнами...

я нашла только две функции ManualDock (с ней нормальная работы и панели занимают нужное положение в TControlBar) и
ManualFloat. Вот с ней у меня проблемы!
Во-первых, я не могу ПРАВИЛЬНОЕ сохранить ЛЕВТ и ТОП окна, относительно экрана, а во-втрых, я  не могу ПРАВИЛЬНО расположить это окно!
 
у меня есть кнопка. по нажатию на нее Panel4 должна стать плавающим окном с (пока что) фиксированными координатами.
Я заметила, если несколько раз нажать на эту кнопку, то плавающие окно каждый раз отображается в РАЗНЫХ частях экрана!      

Что  с  этим делать? может как-то по-другому можно решить проблему?  

Спасибо!


 
DVM ©   (2007-02-15 15:37) [1]


> Во-первых, я не могу ПРАВИЛЬНОЕ сохранить ЛЕВТ и ТОП окна,
>  относительно экрана, а во-втрых, я  не могу ПРАВИЛЬНО расположить
> это окно!

ClientToScreen, ScreenToClient не помогают?


 
Zeleniy   (2007-02-15 15:50) [2]

вот, почему-то не помогает ((((

окошко все-равно распологается в верхнем левом углу формы и самое обидное, кликая по кнопке окошко перемещается ((((


procedure TForm1.Button1Click(Sender: TObject);
var p:TPoint;
begin
 //сохранение конфы
 Memo1.Clear;
 p.X := panel4.BoundsRect.Right-1;
 p.Y := panel4.BoundsRect.Top;
 p := panel4.ClientToScreen(p);

 Memo1.Lines.Add(IntToStr(Panel4.Left));
 Memo1.Lines.Add(IntToStr(Panel4.Top));
 Memo1.Lines.Add(IntToStr(p.X));
 Memo1.Lines.Add(IntToStr(p.y));
end;

procedure TForm1.Button2Click(Sender: TObject);
var p:TPoint;
begin
 //выгрузка
 p:=ScreenToClient(Point(StrToInt(Memo1.Lines.Strings[3]),StrToInt  (Memo1.Lines.Strings[3])));
 Panel4.ManualFloat(Bounds(p.X,p.Y,200,100));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Panel4.ManualDock(ControlBar1);
end;




Страницы: 1 вся ветка

Текущий архив: 2007.04.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
2-1174377014
DimonS
2007-03-20 10:50
2007.04.08
Имя пользователя из-под Delphi


6-1161340096
YurikGL
2006-10-20 14:28
2007.04.08
Соединение сам с собой через две сетевых карты.


1-1171379304
Вопрошающий
2007-02-13 18:08
2007.04.08
Новые диалоги Vista для открытия и сохранения файлов


15-1173771438
Riply
2007-03-13 10:37
2007.04.08
Образ системного диска.


2-1174239288
MIV
2007-03-18 20:34
2007.04.08
DBGrid