|
|
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
Парни, подскажите, пожалуйста, как 1С сделала свою форму-дочку в MDI интерфейсе в версии 8.х (с её кнопками наверху и поведением - "развернутое" состояние хитрое ...)? Я имею ввиду как это работает на уровне библиотек Windows API. (У меня есть свои мысли на этот счет: либо создали свой класс формы вообще, либо просто используя готовые классы отрисовали так форму...) Если есть у кого мысли? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2012, 22:52 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
Eugene Ostenbaken, А скриншот можно? Не все работали в 1С, как им понять что вы хотите получить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2012, 16:09 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
RedCatX, Вот, пожалуйста... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2012, 20:28 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
RedCatX, Вот, пожалуйста... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2012, 20:29 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
у меня нет установленной 1С можно было бы попытаться определить на чем написана 1С но вообще MDI интерфейс существует в windows начиная с самой первой версии есть он в WINAPI, MFC, .NET думаю что 1С его и использовала зачем писать самому то что уже сделано ведь это всего лишь поведение и оболочка для окон внутри дочернего мди окна помещаем уже нужный нам контрол с тулбаром гридом и всем чем хотим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2012, 23:08 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
мди, ТС про кнопки дочернего окна. судя по другому оформленю заголовка окна - это самостоятельная отрисовка. на вскидку: панель с кнопками, картинкой и лейблом. ничего сложного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2012, 23:20 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
мдиу меня нет установленной 1С можно было бы попытаться определить на чем написана 1С На Visual C она написана. Я ковырялся немного в коде, мягко говоря, восторга не вызвало. мдидумаю что 1С его и использовала зачем писать самому то что уже сделано Ага. У них в классе "окно" был метод "нарисовать кнопку". Причём это имелся в виду обычный BitBtn. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2012, 13:31 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
Eugene Ostenbaken, думаю это обычное дочернее окно MDI с отключенными границами (в Delphi: Form.BorderStyle := bsNone). Заголовок окна, и функционал (перетаскивание, изменение размеров) реализован вручную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2012, 14:09 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
Да, парни, вопрос был именно про кнопки, а главное про поведение этой формы! Ведь, если мы реализуем MDI хоть на Delphi, хоть на Visual Basic, хоть на самом WinAPI мы получим одну и туже картину: При "развертывании" дочернего окна, оно заполняет всю рабочую область материнского окна. Заголовок (Caption) дочки при этом "сливается" с материнским. И получается, что если мы развернули одно окно, ТО И ВСЕ ДРУГИЕ ДОЧЕРНИЕ ОКНА ПРИНИМАЮТ ТАКОЙ ЖЕ ВИД! А в 1С такого не происходит (см.картинку). Я тоже склоняюсь к мнению, что это просто отрисовка на имеющемся уже классе окна (WinAPI) с убиранием границ и размещением своих контролов ... и т.д. Но может быть есть системщики, которые могут точно это сказать? И можно ли вообще, в принципе, написать свой класс окна? Мне это важно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2012, 15:18 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
Eugene OstenbakenА в 1С такого не происходит (см.картинку). На картинке нарисовано то, что происходит с окном, если его просто положили в другое окно без всякого MDI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2012, 16:19 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
softwarer, Либо я чего-то не понимаю, либо смотрим ещё одну картинку! (Для тех кто ни разу не видел 1С:8.х) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2012, 17:23 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
Eugene OstenbakenЛибо я чего-то не понимаю, либо смотрим ещё одну картинку! (Для тех кто ни разу не видел 1С:8.х) И что Вас в ней смущает? Window bar? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2012, 17:32 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
Я описАл проблему в начале топика и дполнил в 9-ом посте! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2012, 17:59 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
И незачем так орать. Может, так Вам будет легче... (30 секунд возни)... посмотрите на картинку и назовите 10 отличий: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2012, 18:13 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
softwarerИ незачем так орать. Может, так Вам будет легче... (30 секунд возни)... посмотрите на картинку и назовите 10 отличий: основное отличие видно невооруженным глазом - в 1С отсутствует единство темы :) а значит отрисовкой заголовка окна они занимаются самостоятельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2012, 19:00 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
eNoseа значит отрисовкой заголовка окна они занимаются самостоятельно. C этим никто не спорит. Я даже могу сказать, почему: потому что у используемых так окон есть глюки с активным/пассивным статусом (не помню уже, какие именно, тем более в разных версиях дельфы они были разные). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2012, 19:07 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
softwarerу используемых так окон есть глюки с активным/пассивным статусом с модальным. он слетает при enable/disable модальной формы. но этот глюк был вообще, а не только при таком использовании. (с д1 по д7, вроде) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2012, 19:51 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
softwarer, Вы можете мне откомпилировать ваш пример и выслать мне (адрес в моем профиле). Наверное я что-то не понимаю... Он же должен у меня запуститься? Дельфи у меня нет! P.S. Я не орал! Просто так получилось! :) P.P.S. Только запакуйте там как-нибудь, чтобы mail.ru пропустил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2012, 20:18 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
eNoseс модальным. он слетает при enable/disable модальной формы. К отрисовке это отношения не имеет. Нет, я помню, приходилось самостоятельно вызывать правильный DrawCaption, потому как иначе там что-то было... то ли такое окно всегда рисовалось пассивным, то ли что-то в этом роде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2012, 23:28 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
softwarer, Я не получил ехе-шника. Он не дошел или Вы не хотите, чтобы я увидел Ваше решение вопроса?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2012, 18:35 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
Eugene Ostenbaken, меня тоже долго мучал этот вопрос. но я не стал писать свой класс окна, я используя WinApi перекрыл стандартное поведение MDI. Хотя некоторые коллеги в этом форуме, написали по другому. http://www.sql.ru/forum/actualthread.aspx?tid=856953 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2012, 18:51 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за участие! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2012, 20:23 |
|
||
|
Как 1С сделали свою форму в MDI интерфейсе?
|
|||
|---|---|---|---|
|
#18+
А вы уверены, что это MDI окна, а не эмуляция. Вот пример компонентов для Lazarus (там MDI нет, тк их нет в Linux) http://wiki.lazarus.freepascal.org/MultiDoc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 20:55 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37604034&tid=1342441]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 489ms |

| 0 / 0 |
