Главная страница
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.085 c
15-1173670022
Slider007
2007-03-12 06:27
2007.04.08
С днем рождения ! 11 марта


15-1173637743
SkySpeed
2007-03-11 21:29
2007.04.08
Правильно ли решён пример по теории вероятн., если нет, то как?..


3-1169109557
GrBob
2007-01-18 11:39
2007.04.08
Упраление соединениями на MS SQL Server


15-1173776402
Vlad Oshin
2007-03-13 12:00
2007.04.08
рассказ. Мишка едет домой.


15-1173816877
ArtemESC
2007-03-13 23:14
2007.04.08
Операционная система нового поколения...