komponenty na MDIForm przykrywaja MDIChild

komponenty na MDIForm przykrywaja MDIChild
RT
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 7 lat
0

Jak wstawić button lub DBgrida na MDIForm tak żeby nie przykrył on okienka MDIChild ?
Ewentualnie jak zmienić MDIChild zby nie było przykrywane komponentami MDIForm ?

abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
0

albo robisz aplikację MDI albo SDI - musisz się zdecydować


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
RT
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 7 lat
0

Robię aplikacje MDI.
Senes jest taki: formę główną chce traktować jak "pulpit" i np. wyświetlać na niej komunikaty które pochodzą z bazy danych SQL, dlatego chciałbym żeby na formie głównej znalazł się DBGrid (żadnych operacji przez DBGrida nie będę robić -on może być "nieaktywny").
Informacje zawarte na "pulpicie" maja być przykrywane przez otwierane okienka MDIChild.

JU
  • Rejestracja:około 22 lata
  • Ostatnio:około miesiąc
  • Postów:5042
0

Nie da się. Takie komponenty (chyba wszystkie TWinControl) zawsze będą pokazywane nad oknami MDIChild. Na MDIParent możesz sobie walnąć np. Image, ale buttona już nie.

XT
  • Rejestracja:prawie 22 lata
  • Ostatnio:ponad 8 lat
0

Niestety ostatnio z tym problemem się zetknąłem i taka jest prawda. MDI jest bardzo prymitywnym standardem. Microsoft już się od niego odcina i zachęca do stosowania innych standardów. http://msdn.microsoft.com/en-us/library/ms632591.aspx
Możesz spróbować zrobić coś takiego, jak zrobił Microsoft z Officem 2007 i nowszymi. Nie stosują tam już standardu MDI.
Jeżeli się uprzesz na MDI (tak jak ja) możesz spróbować obejść ograniczenia MDI np stosując MDIForm będącą podkładem dla okien MDIChild, lecz nie umieszczać nic na niej, a elementy systemowe takie jak buttony, panele umieszczać na innych formach (mogą to wówczas być MDIChild, Zwykłe niemodalne formy, formy StayOnTop - według uznania i potrzeb).


Jak cos zlego, to nie ja.
0
RTS napisał(a):

Jak wstawić button lub DBgrida na MDIForm tak żeby nie przykrył on okienka MDIChild ?
Ewentualnie jak zmienić MDIChild zby nie było przykrywane komponentami MDIForm ?

Chyba tworzysz go po prostu w MDIFrame.
Przynajmniej w WinApi tak należałoby robić, a nie wiem czy te gotowe formy z delphi pozwalają na coś takiego.

Struktura okien w MDI jest taka:
MDIFrame -> MDIClient -> i tu dopiero są te okieka, tj. MDIChilds

Toolbary i inne dekoracje siedzą bezpośrednio w MDIFrame.

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:dzień
0

MDI jest bardzo prymitywnym standardem. Microsoft już się od niego odcina i zachęca do stosowania innych standardów.

Szkoda tylko, że brakuje tych «standardów». Alternatywy są trzy:

  1. SDI i każdy otwarty dokument w osobnym oknie,
  2. interfejs z zakładkami (w przeglądarkach się sprawdza, ale gdzie indziej nie zawsze ma sens),
  3. mniej lub bardziej prymitywna reimplementacja MDI.

Możesz spróbować zrobić coś takiego, jak zrobił Microsoft z Officem 2007 i nowszymi.
Office 2007, zależnie od ustawień, używa osobnych okien głównych albo MDI:

word2007.PNG

RT
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 7 lat
0

Dziękuję za porady.
Rozwiązanie office to jest praktycznie MDI. Cały szkopuł w tym że nie chce poświęcać górnej (lub innej) części okna aplikacji na guziki itp.
Interesujące jest rozwiązanie z "zakładami" ale nie tak jak u MSO zmieniającymi tylko część zawartości okna aplikacji, ale tak że zmienia się cała zawartość.
Spróbuje to wymodelować używając na głównej formie TPageControl i dążąc do tego aby jedna z zakładek stanowiła pulpit aplikacji MDI.

abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
0

To co te guziki na głównej formie mają robić? I jak sobie wyobrażasz klikanie takiego guzika jak masz otwarte np. 10 okien MDI - trzeba WSZYSTKIE zminimalizować, kliknąć guzik i je przywrócić? Przecież to żadnej ergonomii nie ma. Właśnie po to jest menu/tool bar aby można było stamtąd łatwo dostać się do akcji aktualnie aktywnego okna MDI. Zauważ, że jeśli okno MDI ma własne menu to to menu integruje się z menu okna głównego.
Jedyne zastosowanie przycisków na formie głównej (tak jak Ty chcesz zrobić) to jakieś menu ale co to za menu, do którego żeby się dostać muszę zamknąć/zminimalizować wszystkie okna z którymi pracuję.

Obejściem problemu może być walnięcie na okno główne np. panelu i na tym panelu rozmieszczenie wszystkiego co tam ma być i jeśli nie ma żadnego okna MDI lub są one zminimalizowane to pokazywanie panelu a jeśli chociaż jedno jest widoczne to chowanie panelu


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
RT
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 7 lat
0

Jeśli chodzi o ergonomie, to zamysł jest inspirowany (hihi) pulpitem windowsowym. Okien na raz otwartych w tej aplikacji nie będzie za dużo.
Pomysł z panelem nie jest idealny ale, bardzo ciekawy.
Ze względu na estetykę fajnie by wyglądało gdyby okno potomne na "pulpicie" przysłaniało tylko część funkcji. Ale ze względu na pracochłonność estetyka pójdzie do galerii sobie coś innego oglądać.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)