Toon posts:

[delphi] form resizen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zoek een manier om een form inclusief controls op een (relatief) eenvoudige wijze te kunnen resizen.
Stel ik heb een formpje van 200x200 met alle controls veel te dicht op elkaar gepropt. Als ik ga resize naar 200x400 zou ik graag willen dat er dan automagisch meer ruimte tussen de control komt.
In IBM's Visual Age C++ zat een soort control waarbij je je form/dialog in een tabel( nee, geen db tabel ) opdeelde. Je controls positioneerde je dan in een 'cel' van die tabel. Bij het resizen worden dus je cells(= de positie van je controls ) dus groter/kleiner.
Bestaat er zoiets voor Delphi6?
Ik kan het natuurlijk zelf wel een keer gaan schrijven, maar dat gaat erg veel(relatief dan) tijd kosten.

Verwijderd

Hiervoor kan je panels gebruiken (eventueel de bevel op None) Waarmee je wat met de alignment klooit.

Hierop plaats je dan je componenten.

Edit: Ik ben niet de enige die het op deze manier doet :)

  • Eegee
  • Registratie: Januari 2000
  • Laatst online: 11-09 16:21
Ik doe dat zelf dan met panels en alLeft, alRight, alClient en zo (align property), maar wellicht is er een handigere of betere manier...

Vb: als je bijv. buttons onderin je form wilt die aan de rechter kant moeten staan, dat je dan de buttons op een panel met align=alRight zet. Maar dat panel zit dan weer in een panel met align=alBottom.

Edit: -Confusion- denkt er ook zo over.

  • SilentStorm
  • Registratie: November 2000
  • Laatst online: 18-03 14:45

SilentStorm

z.o.z

of je gaat op onResize alle lokaties herberekenen. Weet je zeker dat alles komt waar jij het wilt hebben met de juiste grotes. Dit is natuurlijk alleen nodig als je specifieke wensen hebt, zoals grootte van knop en textsize er ook nog bij veranderen..

Localhost is where the heart is


Verwijderd

Op dinsdag 12 maart 2002 23:20 schreef SilentStorm het volgende:
of je gaat op onResize alle lokaties herberekenen. Weet je zeker dat alles komt waar jij het wilt hebben met de juiste grotes. Dit is natuurlijk alleen nodig als je specifieke wensen hebt, zoals grootte van knop en textsize er ook nog bij veranderen..
Ja dit gebruik ik om de grote van de middelste rij van mijn stringgrid variabel te maken zodat die alle overige plaats in neemt. Voor de meeste dingen gebruik ik anchors (akLeft, akRight, akTop, akBottom). Ff klooien daarmee en het werkt wel goed vind ik.

Verwijderd

Topicstarter
Ik zat zelf ook al te stoeien met het idee om iets met de onResize vente te doen. Mijn progje heeft een form met daarin een frame. In dat frame staan in principe alle velden uit een dbtable. Bij elkaar zijn/worden het iets van 20 frames. Sommige frames hebben meer dan 70 controls, een tlabel met 3 dbedit boxen ernaast per regel.
Een aantal van die regels heb ik netjes in een groupbox gezet.
Als ik dus mijn form(=uiteindelijk ook mijn frame) ga resize zou ik dus voor 70 controls de positie opnieuw moeten uitrekenen.
Je begrijpt dat ik dat nogal een takkewerk vind, vandaar die vraag over een makkelijkere manier.
Als ik alles in z'n eigen pannel gooi heb ik dus 70 panels die ik moet bijhouden, daar zou ik nix mee opschieten. ( ik begrijp het idee, klinkt opzich wel handig)

Volgens mij zoek ik een DBGrid, maar dan zonder DB. En in een cell van dat (ex-DB)Grid zou ik dan ook een Grid kunnen gooien vanwege die GroupBoxen.

( Ik geloof dat ik de Tables van HTML zoek, maar dan wel visueel )

Verwijderd

Je zou kunnen gaan rotzooien met scale, maar ik denk niet dat dat het effect oplevert wat jij wilt. Alles wordt dan gewoon groter/kleiner.

Wat ook kan is een eigen afgeleide te maken van dbEdit oid die de code aan boord heeft zichzelf op de juiste plek te zetten. Op die manier ben je er in 1 keer van af op een centrale plek.

Slim gebruik van de anchor properties, autosize en bv. scale kun je ook een heel eind mee komen denk ik.
Pagina: 1