Avatar billede jelle Nybegynder
26. december 2000 - 16:26 Der er 9 kommentarer og
1 løsning

Flere felt i MSGrid??

Jeg har en kode, hvor når jeg trykker på en knap, skriver i et felt i en grid, det virker fint.
Men når jeg så markere flere felter, trykker på knappen skriver den kun i feltet øverst til venstre. er der nogle der kan hjælpe mig, med en stump kode, så den skriver i alle markerede felt?
Avatar billede joern Nybegynder
27. december 2000 - 10:21 #1
Hej Jelle.
Dim a as integer

For a = grid.Col To grid.ColSel    \'fungerer kun når du markerer fra højre mod venstre
  grid.Col =a
  grid.Text = \"Jelle\"
Next

Du kan selv udbygge til rows eller en kombination af cols og rows, ikke?

M.v.h.  Jørn
Avatar billede jelle Nybegynder
27. december 2000 - 16:23 #2
Hej joern

Det virker fint, hvis der kun er én row, der er markeret, men ikke hvis der er flere.
Avatar billede tdaugaard Nybegynder
27. december 2000 - 16:26 #3
jelle:> det var det han skrev jo \"Du kan selv udbygge til rows eller en kombination af cols og rows, ikke?\" at det ikke gjorde
Avatar billede jelle Nybegynder
27. december 2000 - 17:07 #4
Jeg fik det til at virke, lige efter jeg skrev den kommentar - tak for hjælpen Joern
Avatar billede joern Nybegynder
27. december 2000 - 18:36 #5
tdaugaard:> Nu må du ikke være så streng! Hvis ikke Jelle havde fundet ud af det, ville jeg da gerne supplere.  Vil selv ved lejlighed øve hvorledes det kan laves, så man kan markere fra neden og op eller fra højre mod venstre.
M.v.h.  Jørn
Avatar billede jelle Nybegynder
27. december 2000 - 19:04 #6
men hvad skal jeg gøre, hvis jeg gerne vil have det til at virke, hvis jeg markere fra venstre mod højre?
Avatar billede joern Nybegynder
27. december 2000 - 21:09 #7
Hej Jelle.

Ja, så bliver det nok nødvendigt at ændre fortegn på grid.colsel.  Som du kan se ovenfor har jeg skrevet at det vil jeg pusle med.  Det bliver noget med at der skal være forskellige løkker efter om grid.colsel er mindre eller større end grid.col, og tilsvarende med grid.row og grid.rowsel.

Sådan á la  If grid.colsel < grid.col then...

Er du meget ny i programmering?

M.v.h.  Jørn

Avatar billede joern Nybegynder
27. december 2000 - 23:05 #8
Hej Jelle.

Så har jeg strikket noget sammen.  Der er 4 varianter.  Måske kan det gøres kortere, men i denne form er det i hvert fald overskueligt.  Det viste sig nødvendigt at gemme værdierne i variable, ellers blev noget ikke udført:

Dim a, b, c, d, m, n As Integer

Private Sub Command1_Click()
  c = grid.Col
  d = grid.Row
  m = grid.ColSel
  n = grid.RowSel
 
  \'Fra venstre mod højre og oppefra og ned
  \'---------------------------------------
  If c < m Then
    For b = d To n
      grid.Row = b
      For a = c To m
        grid.Col = a
        grid.Text = \"katja\"
      Next
    Next
  End If
 
 
  \'fra højre mod venstre og oppefra og ned
  \'---------------------------------------
  If c > m Then
    If d < n Then
      For b = d To n
      grid.Row = b
        For a = m To c
          grid.Col = a
          grid.Text = \"katja\"
        Next
      Next
    End If
  End If
 
  \'Fra højre mod venstre og nedefra og op
  \'--------------------------------------
  If c > m Then
    If d > n Then
      For b = n To d
      grid.Row = b
        For a = m To c
          grid.Col = a
          grid.Text = \"katja\"
        Next
      Next
    End If
  End If
 
  \'Fra venstre mod højre og nedefra og op
  \'---------------------------------------
  \'Prøv selv den 4. variant, Jelle!
 
End Sub

M.v.h.  Jørn
Avatar billede jelle Nybegynder
28. december 2000 - 00:51 #9
->Jørn

Nej - jeg er ikke så ny, jeg har programmeret i godt 3 år, men aldrig med MSGrid.
Avatar billede joern Nybegynder
28. december 2000 - 01:07 #10
Hej Jelle.

Jamen så kender du uden tvivl  If...Then... Else  og    For..... Next

Du har vel on-line hjælpen til MSFlexgrid ?  Den hedder msflxgrd.hlp og ligger i \\windows\\help (normalt)

M.v.h.  Jørn
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