Standardowe MDI Form, ale zachowujące się nieco inaczej

0

Witam!

Tworze sobię małą apke z oknami MDI.
Okna są maksymalizowane jak na obrazku poniżej:
user image

jak widać okno MDI z paskiem ikonek (minimalziuj, zamknij itp) zajęło całą przestrzeń + dodatkowo nazwa okna MDi zapisała się na belce głównej okna.

W aplikacji mam pasek narzędzi a pod nim panel.

Okno MDI tak jakby wskoczyło ponad te komponenty, a chciałbym żeby maksymalizowało się tylko na obszarze robocznym tj. pod Paskiem narzędzi i panelem.
Jak się za to zabrać, proszę o wskazówki - pierwszy raz się bawię MDI przyznaję bez bicia.

0

Wklejam obrazek, który w jakimś stopniu pokazuje czego szukam:
user image

1

Jeśli użyjesz toolbara (lub odpowiednika z innych paczek) to tak to właśnie zadziała - MDIChild będzie zajmowało tylko obszar roboczy

0

Czy trzeba to jakoś specjalnie oprogramować?

Bo połozyłem zwykły TToolBar (XE5), i MDI child działa nie tak jak moim zdaniem powinno.

0

klikasz file->new->other->MDI Application i masz cały szkielet

0

w jakimś stopniu mi to pomogło, odkryłem:

  TileMode := tbHorizontal;
  Tile;

okno jest dopasowane, ale NIE jest zmaksymalizowane.

0

zwykle mdi wygląda i zachowuje się tak:
user image

a z przeróbką wygląda tak:
user image

nie jest to moja aplikacja, ale demnonstruje problem.

0

no ale to
user image
jest właśnie poprawny wygląd MDI

0

Dlaczego uparłeś się na MDI? Zobacz - prawie nikt tego dziś nie używa.
Dlaczego nie chcesz zrobić sobie UI podobnego do dzisiejszych przeglądarek?
Czyli mniej więcej tak:
user image

0

Witam, MDI faktycznie powoli odchodzi, ale miało to być szybko zrobione i na standardowych kontrolkach.

Tutaj widzę DevExpressa....

Bawić się z wykłym PageControlem i ToolButtonem to mordęga.

Mogę się mylić.

0

Oczywiście, że się mylisz.
To, że w mojej aplikacji jest DevExpress niczego nie zmienia.
Formy możesz dokować na zwykłym PageControl za pomocą takiego kodu:

fForm.ManualDock(PageControl, nil, alClient);

Jeśli nie podoba Ci się zwykły PageControl, zawsze możesz użyć SmartTabs
http://rmklever.com/?p=440
Ale nie używam i nie wiem czy w/w komponent obsługuje standardowe ManualDock

Co do ToolButtona - nie ToolButton tylko TActionToolBar, bo do tego właśnie służy.

PS.
Zastanawia mnie mizerna wiedza na temat biblioteki standardowej Delphi. Kolejny post, w którym widać brak podstaw i to od obsługi baz danych po budowanie formularzy.
Szanowni Koledzy programiści - Delphi to nie tylko komponenty wizualne, naprawdę.

0

że dokować formy się da to ja wiem, akurat w tym projekcie mam MDI a nie dokowanie.
Nigdy przeglądarkowopodobnych programów nie pisałem.
Ogólnie mało wielookienkowych pisałem. Ot taka potrzeba nastała, żeby zrobić apke z 10 oknami i jakoś MDI mi wpadlo do głowy. Może następnym razem rozważę zakłądki (nie mam DevExpressa, ale SmartTabs wygląda ok).

1 użytkowników online, w tym zalogowanych: 0, gości: 1