Главная страница
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.044 c
6-1161325036
YurkaT
2006-10-20 10:17
2007.04.08
IdHTTPServer - проблемма с выполнением JS


1-1171551713
TStas
2007-02-15 18:01
2007.04.08
Как называется системный разделитель даты?


8-1154592688
Proper
2006-08-03 12:11
2007.04.08
Рисовать на рабочем столе.


15-1173928076
Slider007
2007-03-15 06:07
2007.04.08
С днем рождения ! 15 марта


2-1174196264
vegarulez
2007-03-18 08:37
2007.04.08
Вопрос по поводу селекта к БД.