Har en MDI-form. I den skall det finnas ett okänt antal "child forms". Okej. Du har två listor med fönster, lista Left: A, B, C, D, E, F, Right: G, H, I.Flytta "child forms"
Dessa skall endast att ligga i två kolumner, vänster och höger, uppifrån och ned.
Så långt inga problem. Jag kan få dem att endast "fästa" i vänster resp.
höger kant av MDI-formen. Således i vänster och höger kolumn.
Jag kan också lösa att endast låta child formsen endast ligga i olika
positioner uppifrån sett såsom 0, 1, 2 o.s.v. Varje är lika stor som
child formen höjd så allt ser snyggt uppradat ut.
Det jag dock inte vet hur jag skall lösa är hur man ska få till att
då man flyttar en form. Ex. man tar form nummer två och vill placera
den mellan två andra forms. Då vill jag att de andra skall flytta på sig
och låta "min" form kunna sticka in sig däremellan.
Vet att det kanske är lite svårt att förstå vad jag menar men kolla på
hur Windows vanliga filhanterare "detaljerat lista" fungerar.
Man tar en fil och flyttar den till en annan position, dom andra filerna
flyttar på sig.Sv: Flytta "child forms"
Du har en viss storlek som är samma på alla fönster; w*h.
Beroende på hur du löser själva drag-n-drop, så kan lösningen vara väldigt enkel. Låt säga att man har
lyft fönster E och lagt det "mellan A och B". Alltså så att det överlappar både A och B.
Då är det egentligen inte svårare än att loopa igenom alla som ligger i "Left", och lista ut i vilken ordning de ligger (toppositionen avgör), Du får då t.ex. (med h=100px):
A=0
E=17
B=100
C=200
D=300
F=500
Och då är det egentligen bara att flytta ner dem i ordning. Det enda som är lite meckigt då är att hålla reda på vad som är vänster och vad som är höger.