Avatar billede slapstick Nybegynder
12. november 2003 - 10:58 Der er 17 kommentarer og
1 løsning

meget irriterende problem med msflexgrid

jeg har et msflexgrid hvor antallet af kolonner er dynamisk
det giver et lille irriterende problem
ude i højre side hvor der kommer en scrollbar frem der kommer der ligesom et lufthul mellem den sidste kolonne og scrollbaren

der er screenshot her: www.skodliv.dk/flexgrid.jpg

det jeg godt ku tænke mig var at den sidste kolonne altid er helt henne ved kanten/scrollbaren men jeg kan simpelthen ikke lure hvad der skal til..

nogle ideer?
Avatar billede jrl0469 Nybegynder
12. november 2003 - 11:27 #1
har du prøvet med flexgrid.Move:

i form_resize()

    flexgrid.Move xxx, xxx, ScaleWidth - xxx, ScaleHeight - xxx
Avatar billede slapstick Nybegynder
12. november 2003 - 11:28 #2
øøh jamen det er jo ikke når jeg resizer min form eller flytter mit flexgrid
det er inde i selve flexgriddet der er luft mellem den sidste kolonne og scrollbaren inde i flexgriddet
Avatar billede jrl0469 Nybegynder
12. november 2003 - 11:38 #3
Doooeehhh... sorry...

Men har du ikke skv angivet kolonne bredde? så kan du jo angive FG'ens bredde deraf!
Avatar billede jrl0469 Nybegynder
12. november 2003 - 11:41 #4
flexgrid.colwidth=antal_kolonner * kolonnebredde
Avatar billede jrl0469 Nybegynder
12. november 2003 - 11:41 #5
vrøvl...
flexgrid.width=antal_kolonner * flexgrid.colwidth
Avatar billede joern Nybegynder
12. november 2003 - 11:55 #6
Hej.

Det som jrl0469 foreslår ser interessant ud.  I øvrigt kan du efter behov indstille kolonnernes bredde, det kunne jo godt være at nogle skulle være smallere og andre brede.  Se evt. http://jkfsoft.dk/musik32b.htm

flexgrid.colwidth(1) = 2500      'Twips - 567 twips på en cm - kolonne 1

M.v.h. Jørn
Avatar billede slapstick Nybegynder
12. november 2003 - 12:00 #7
jeg har prøvet præcis det samme
det den gør er bare at lave hele flexgridkontrollen lige så bred som antallet af kolonner
dvs at flexgrid kontrollen stikker udenfor min form
det er selve "workspace" inde i flexgrid kontrollen der skal resizes
Avatar billede jrl0469 Nybegynder
12. november 2003 - 12:03 #8
vil du undgå horz scroll?
Avatar billede slapstick Nybegynder
12. november 2003 - 12:17 #9
nej horz scroll er ok det er det der stykke luft mellem yderste kolonne til højre og vert scrollbar

og jørn lige meget hvilken bredde jeg giver kolonnerne så kommer stadig luft derude
Avatar billede slapstick Nybegynder
12. november 2003 - 12:18 #10
nej horz scroll er ok det er det der stykke luft mellem yderste kolonne til højre og vert scrollbar jeg vil undgå

endda
Avatar billede jrl0469 Nybegynder
12. november 2003 - 13:17 #11
Kan du ikke sætte flexgrid.width=form.width - din_margen?
Avatar billede joern Nybegynder
12. november 2003 - 14:53 #12
Hej.

Det lyder underligt.  I det program, jeg har angivet link til, er der mange kolonner, der ikke vises.  Derfor er det vandrette scroll nødvendigt, og selve gridden bliver ikke bredere af den grund.
Der må være en property - noget med autosize el. lign. der kan ændres indstilling på.  Kigger selv efter.

M.v.h.  Jørn
Avatar billede joern Nybegynder
12. november 2003 - 15:04 #13
Hej igen.

Jeg har prøvet at ændre ved diverse indstillinger i proporties, jeg kan ikke fremkalde det du har som problem.  Min version er 6.00.8169 og jeg bruger VB5.

Hvad med at gentage indtilling af flexgrid1.width = 5000 efter indlæsning af indholder og måske andre steder også.  Det kan den vel ikke ignorere?

M.v.h.  Jørn
Avatar billede joern Nybegynder
12. november 2003 - 15:05 #14
Lige en tilføjelse.

Jeg kan se på dit eksempel at du ikke anvender border og ikke 3D-look.  Men selv om jeg indstiller på samme måde, får jeg ikke problemet frem.
Men prøv at sætte border aktiv.

M.v.h.  Jørn
Avatar billede slapstick Nybegynder
12. november 2003 - 15:08 #15
border aktiv løste det ik
jeg bruger vb6
flexgrid.width ændrer bare bredden på hele flex kontrollen men der er samme luftrum inde i den
jeg synes selv det er rimelig mærkeligt
ved hjælp at lidt lirum larum med at sætte twips mellemrummet ned og fumle lidt rundt med størrelsen af flexgriddet har jeg fået lufthullet ned på et niveau jeg til nøds kan leve med
fatter ik hvad der er gået galt men lukker spørgsmålet nu
tak for hjælpen begge to ! :)
Avatar billede joern Nybegynder
12. november 2003 - 18:52 #16
Slapstick>>

Nu har du jo selv taget point, så du fortjener næsten ikke, at jeg fortæller dig om årsagen.  Nå, jeg går slet ikke op i point:

Når du scroller vandret, vil en kolonnes venstre kant altid flugte med selve griddens venstre kant.  Så når sidste kolonne er synlig, vil der været 'luft' med mindre de viste kolonners samlede bredde præcis (næsten) matcher griddens bredde.

Dvs. at summes af bredderne af de kolonner der vises når der scrolles helt til højre, skal matche griddens bredde.  Jeg har talt, at gridden skal være 35 twips bredere, når der anvendes border og 3D-visning.

Men det var måske sådan noget du har strikket sammen?

m.v.h.  Jørn
Avatar billede joern Nybegynder
12. november 2003 - 19:18 #17
Rettelse.
Bredden afhænger af antallet af rækker, når man kører med scrollbars auto som jeg altid gør.  Eksempel:

  X = 0
  For a = 0 To 3
    X = X + grid1.ColWidth(a)
  Next a
  If grid1.Rows < 18 Then grid1.Width = X + 100 Else grid1.Width = X + 340

m.v.h.  Jørn
Avatar billede slapstick Nybegynder
13. november 2003 - 00:14 #18
nej det var godt nok ikke lige det jeg havde gjort
og du fortjener helt sikkert point for det der !!
så jeg har oprettet et spørgsmål: http://www.eksperten.dk/spm/426840 du kan svare på og så få point :))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester