Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Вниз

Дочерние формы как в Fotoshop   Найти похожие ветки 

 
Agent Smith   (2002-06-03 12:36) [0]

как сделать сабж?


 
Agent Smith   (2002-06-03 12:37) [1]

Опечатка вышла: как в Photoshop


 
PVOzerski   (2002-06-03 12:40) [2]

В Help и в меню "New/Projects " есть пункт "создание MDI-приложений". Это оно и есть.


 
Cossys   (2002-06-03 13:32) [3]

MDI Вам не надо. Создаете обычные формы, устанавливаете свойства:
FormStyle := fsStayOnTop;
BorderStyle := bsToolWindow;

А вот, что бы при передаче фокуса на другую форму заголовок не становился серым (якобы заголовок активный) в обработчике
onDeactivate:
FlashWindow(YoursForm.Handle, True);



 
PVOzerski   (2002-06-03 14:12) [4]

Вообще-то PhotoShop, по крайней мере те версии для PC, которые я видел, именно MDI.
Но и не-дочерние ToolWindows, действительно, он тоже имеет.


 
Agent Smith   (2002-06-03 14:27) [5]

Cossys, хочется понять, как раборает
FlashWindow(YoursForm.Handle, True);


 
Agent Smith   (2002-06-03 15:00) [6]

Cossys правильно понял мою идею, но в его способе (имеется в виду событие onDeactivate) есть некоторые баги: если последовательно делать активными две формы, то проявляются глюки в прорисовке: область вокруг кнопок управления окном (закрыть, свернуть)все равно становится серой. Также когда само приложение становится не активным, то синий заголовок имеет только одна из форм. И это при том, что я прописал по два FlashWindow (для обоих форм) одновременно в onDeactivate обеих форм.


 
Agent Smith   (2002-06-03 15:02) [7]

PVOzerski, ты не правильно меня понял. Конечно, окна редактирования изображений в Photoshop - MDI, но я имею в виду плавающие панели инструментов.


 
Cossys   (2002-06-03 16:30) [8]

to Agent Smith

Я с этим боролся по другому (кстати, может в Фотошопе менюшки и MDI, зато во Flash-ке - обычные, поэтому это дело вкуса). Откровенно говоря, FlashWindow я использую для главного окна приложения (глюков с ним я у себя не видел). Для менюшек я убиваю заголовки форм, а заголовок эмулирую (сам рисую в Фотошопе :)) Делаю, что б форму можно было за эти "заголовки" перетягивать - и все, готовое окно.

По поводу FlashWindow... в хэлпе есть, точно.




 
Agent Smith   (2002-06-03 18:00) [9]

А как наиболее рационально организовать перетаскивание за лже - шапку?


 
Song   (2002-06-03 18:03) [10]

WM_NCHITTEST ?


 
Cossys   (2002-06-03 18:13) [11]

В класс формы добавляете

private
{ Private declarations }
protected
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
public
procedure CreateParams(var Params: TCreateParams); override;
end;

implementation

uses Rep1pbEDITOR;

{$R *.DFM}

procedure TfrmPNLSettings.WMNCHitTest(var Message: TWMNCHitTest);
begin
inherited;
Message.Result := HTCAPTION;
end;

procedure TfrmPNLSettings.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := WS_THICKFRAME or WS_POPUP or WS_BORDER;
end;

Все - заголовков не будет, а перетаскивать можно будет за "любое место"
:)


 
Agent Smith   (2002-06-03 20:11) [12]


procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button <> mbLeft then exit;
ReleaseCapture;
Form1.Perform(WM_SysCommand,$F012, 0);
end;

Мне больше такое нравится. И перетаскивать тоже можно за "любое место" :)
Ваше мнение? Что вообще эстетичнее?
ЗЫ: Опытным путем бало установленно, что в Photoshop панели инструментов за "любое место" утащить нельзя.


 
Agent Smith   (2002-06-04 04:54) [13]

Ну так что?


 
Cossys   (2002-06-04 10:33) [14]

Ну правильно, за "любое место" и не утяните. На свою форму помещаете TPanel, TTabControl - и все, тоже никуда не утяните.



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

Форум: "Основная";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
3-55040
kserg@ukr.net
2002-05-22 13:32
2002.06.17
MSSQL(ADOQuery) - как отловить


3-54995
VictorT
2002-05-21 14:42
2002.06.17
Проблемка с индексами.


1-55140
r1val
2002-06-04 10:36
2002.06.17
Начал делать прогу...


6-55243
Fredericco
2002-04-08 14:08
2002.06.17
Я использую Сокеты. Вот вопрос следующий как не дать клиенту соед


6-55235
Tom
2002-04-05 13:26
2002.06.17
Как установить длину буфера? (WNetGetUniversalName)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский