Toon posts:

[vb] alle forms zichbaar op 1 blad

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een programma gemaakt, en ben nu met het uiterlijk bezig.

Ik heb totaal 6 forms

Al deze forms wil ik op 1 blad krijgen. Hoe geef ik deze een vaste positie?
Wat gebruik ik als Main Form een MDIform? of wat anders?

Met de search kom ik niet veel verder nog.

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Wees eens ff wat duidelijker?

Je wilt alle forms op 1 blad krijgen? Wat bedoel je daarmee?

https://fgheysels.github.io/


Verwijderd

Als je met een MDI form wilt werken moet je eerst een MDI form toevoegen en er voor zorgen dat je bij elk ander form (die je in de MDI form wilt laten zien) de optie MDIChild op TRUE staat

Of bedoel je wat anders??

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Als je wil weten hoe je met een Multiple Document Interface moet werken, of beter nog, als je een MDI wilt maken, kun je misschien eerst eens kijken in de MSDN. Het zal daar wel van naaldje tot draadje uitgelegd staan.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 26 augustus 2002 @ 19:42:
Wees eens ff wat duidelijker?

Je wilt alle forms op 1 blad krijgen? Wat bedoel je daarmee?
Oke ff duidelijker:

Ik heb 6 forms. Deze worden nu los van elkaar gestart.

Heb dus een MDI form en kunnen daar 1 voor 1 worden opgestart.
Maar wat ik wil is dit:

1 Main forum, met daarin alle 6 de forms staan geopend en op vaste plaatsen naast elkaar. Je hoeft ze dus niet 1 voor 1 te openen. Maar staan dus naast elkaar/onder elkaar. Gewoon mooi gesoorteerd. Maar deze mogen niet meer verschoven worden. En mogen alleen nog gemaximaliseerd worden en terug naar de oude stand.

Het probleem is dat ik niet weet hoe ik meerdere forms naast elkaar kan krijgen met vaste cooridinaten. Ik heb het geprobeerd met childs. Krijg ze wel opgestart allemaal in 1 scherm. Maar kan niet bepalen hoe ik ze nu op een vaste plaats kan zetten.
Bijvoorbeeld 2 forms breed en 3 hoog .
Dat niet meer kunnen verplaatsen is geen probleem, alleen maximaliseren ook niet. Elkel is het probleem:

Hoe krijg ik 6 forms in 1 MDI form, die op vaste plaatsen worden weergegeven?

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Verwijderd schreef op 26 augustus 2002 @ 20:35:
[...]


Oke ff duidelijker:

Ik heb 6 forms. Deze worden nu los van elkaar gestart.

Heb dus een MDI form en kunnen daar 1 voor 1 worden opgestart.
Maar wat ik wil is dit:

1 Main forum, met daarin alle 6 de forms staan geopend en op vaste plaatsen naast elkaar. Je hoeft ze dus niet 1 voor 1 te openen. Maar staan dus naast elkaar/onder elkaar. Gewoon mooi gesoorteerd. Maar deze mogen niet meer verschoven worden. En mogen alleen nog gemaximaliseerd worden en terug naar de oude stand.

Het probleem is dat ik niet weet hoe ik meerdere forms naast elkaar kan krijgen met vaste cooridinaten. Ik heb het geprobeerd met childs. Krijg ze wel opgestart allemaal in 1 scherm. Maar kan niet bepalen hoe ik ze nu op een vaste plaats kan zetten.
Bijvoorbeeld 2 forms breed en 3 hoog naast elkaar.
Dat niet meer kunnen verplaatsen is geen probleem, alleen maximaliseren ook niet. Elkel is het probleem:

Hoe krijg ik 6 forms in 1 MDI form, die op vaste plaatsen worden weergegeven?



Waarom heb je dan MDI? MDI is net dat je zelf bepaald welke forms je wilt openen en waar ze geplaatst worden.
Als je dat wilt, waarom maak je dan geen 1 form (dat niet MDI is), en zet je daar 6 panels op (in Delphi een TPanel, in VB is dat wellicht Frame ofzo iets). En op iedere frame/panel open je een form. De owner van die form is dan de panel waar hij op geopend wordt.

https://fgheysels.github.io/


Verwijderd

Topicstarter
oke...dan een geen MDI. Maar dat weet ik nog niet hoe ik een form in een frame zou kunnen opstarten. Misschien is het wel geen frame....ik zoek ff verder nog.
Mocht iemand weten hoe het wel moet, dan hoor ik het graag

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Je doet zo iets (pseudo-code)
code:
1
2
3
4
Form1  MyForm;

MyForm := Form1.Create (Panel1);   // de constructor neemt een Owner parameter
                                         // en je geeft dus dat panel mee als owner

https://fgheysels.github.io/


  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 21:46

johnwoo

3S-GTE

Ik zou inderdaad ook gewoon panels gebruiken. Pictureboxjes zijn daar erg geschikt voor; de positionering (met name bij resizen) moet je natuurlijk wel zelf bouwen.
Als je toch wil dat de child windows echte vensters zijn, dan kan je natuurlijk ook voor de MDI oplossing gaan, en dan de children subclassen om te voorkomen dat ze verplaatst worden *D

Dat owner-stukje van whoami hierboven werkt niet in standaard VB, maar dat is te omzeilen met een call naar SetParent. Hiermee kan je een window een kind maken van ieder ander window, en dus ook een MDI interface maken zonder MDI form.
Sterker nog, volgens mij is een MDI form gewoon een normaal form, dat voor ieder form in het project met de MDIChild property op True deze functie aanroept.

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1

Pagina: 1