Omschrijving:
NLDExtraMDIProps is een component dat het werken met MDI applicaties gemakkelijker moet gaan maken. Dikwijls worden hier op NLDelphi vragen gesteld in de trent van: "Ik ben bezig met MDI. Hoe kan ik ....?" Wel, al deze antwoorden en oplossingen, mits specifiek genoeg en niet standaard voorzien binnen de VCL, zullen in dit component verwerkt gaan worden.
Oorsprong:
Het begon allemaal met de wens om een achtergrond-plaatje op een MDI-form te plaatsen. Nu is daar redelijk wat code voor nodig, en dit vond ik op een gegeven moment zo overbodig/storend/vervuilend in de unit dat het niet lang duurde totdat ik dat eruit haalde. En als je het dan toch in een aparte unit zet, dan maar meteen een component er van maken. En trouwe lezers zullen weten dat dan als vanzelf alles met dit super-collectief, NLDelphi genaamd, gedeeld zal worden...
Gebruik:
Plaats een TNLDExtraMDIProps component op je MainForm en stel daar één of meerdere van de volgende property's in:
- BackgroundPicture (TPicture): Het evt. achtergrondplaatje op het canvas van het MainForm.
- SetShowClientEdge (Boolean): Bepaald of de "edge" van het ClientWindow wordt getoont.
- ShowScrollBars (Boolean): Bepaald of de schuifbalken worden getoont.
Voordelen:
Slepen i.p.v. tikken...
Nadelen:
Wat ik zelf altijd een nadeel vind van het gebruik van een TPicture is dat het plaatje in tekst-formaat in de DFM wordt weggeschreven. Dit wordt hiermee (nog) niet verholpen (zie openstaande ideeën), maar is evt. wel te verhelpen door het BackgroundPicture @runtime in te stellen.
Bugs:
Voor zover ik weet zijn er geen bugs. Meldt ze alsjeblieft wel!
Openstaande ideeën:
- BackgroundPicture kunnen opgeven als FileName of als ResourceName (ter voorkoming van DFM-"vervuiling"), zie versie 2.0
- MDI-Childs binnen MainForm-border begrenzen
- BackgroundPicture stretchen of cascaden (wordt nu standaard gecentreerd)
- AutoMaximizeFirstMDIChild
- AutoSavePositions (naar Ini, Register...)
- CloseAll
- CustomMaximizedCaption, zie
- MSOfficeMDIClone
Disclaimer:
- Er wordt hier en daar wel beweerd dat MDI in het algemeen op zijn retour is en dat MDI in Delphi buggie zou zijn. Wel, ik heb reeds jarenlang erg veel plezier van een MDI-applicatie, en ik heb nog nooit problemen ondervonden met MDI binnen Delphi.
- Voornoemd component is ongetwijfeld in vele gedaantes via andere componentensets verkrijgbaar, maar zou de wereld er niet stukken beter uitzien met de standaard componentenset van Borland, slechts aangevuld met die van NLDelphi? (Nee hoor, dat is gekheid; 'k vond het gewoon leuk om te maken...)
Waar te vinden?
- Op de Subversion server, zie http://svn.nldelphi.com/nldelphi/ope...ExtraMDIProps/.
Wensen, opmerkingen, bugreports, bugsolutions, en alle andere vragen verneem ik graag in een aparte thread.
Veel plezier...
Bookmarks