DataGrid Spalte nicht sichtbar

Hallo
wieder ein kleines nerviges Problem.
Ich habe ein DataGrid, in welchem die Spalten A,B,C,D sichtbar sind am Anfang.

Ich möchte die Spalten einzeln ein und ausblenden.
Dazu nutze ich Chk-Knöpfe, zB

If chkDatenbank1.Value = 1 Then
dgrBearbeitung.Columns(„A“).Visible = True
ElseIf chkDatenbank1.Value = 0 Then
dgrBearbeitung.Columns(„B“).Visible = False
End If

Das Problem ist, wenn die Spalte ganz rechts (D) ausgeblendet wird, erscheint sie nicht mehr. Das ganze setzt sich dann mit C usw. fort.

Immer die rechte Spalte, kann nur einmal ausgeblendet werden, nach dem Einblenden ist sie aber nicht mehr sichtbar.

Kennt wer das Problem??? Refresh hat nix gebracht.

Mfg Werner

Hallo Werner,

beim Datagrid sind noch mehr Fehler bekannt. Das Ding ist schlecht programmiert. Wenn die Fehler stören, kann man das Datagrid nicht verwenden. Microsoft bestätigt nur, daß die Fehler bekannt sind, der Support ist aber eingestellt, beseitigt werden die Fehler nicht.

Gruß Rainer

Ach wieder so ein fieser Bug.

Man muss die Grössen der Spalten mit angeben, dann gehts wieder.

Was ist denn mit dem Gitternetz, machst du da eigentlich etwas???

Ich habe einen Tip für OpenGL bekommen, nennt sich GLUT.
Damit kann man auch Oberflächen erzeugen.
Die frage ist nur, ob man das auch so hinbekommt, wie ich mir das vorstelle.

Wie siehts denn bei dir aus mit dem Beispiel???

Mfg Werner

Hallo Werner,

Ach wieder so ein fieser Bug.

Ja, Datagrid halt. Ich weiß schon, warum ich es nicht verwende. :smile:

Man muss die Grössen der Spalten mit angeben, dann gehts
wieder.

Was ist denn mit dem Gitternetz, machst du da eigentlich
etwas???

Ja, sobald ich das andere offene Projekt fertig habe.

Ob ich die Drehung hin bekomme, steht aber noch in den Sternen.
Ein 3D-Objekt drehen ist nicht ganz einfach. Ich weiß noch, daß ich dabei um Arcustangens nicht herum komme und das wird immer viel Code, weil die Quadranten bestimmt werden müssen. Auch die Reihenfolge der Drehungen spielt eine Rolle.

Beispiel: Definiere für Dich, wie die X,Y und Z Achsen liegen.
Nimm zwei gleiche Gegenstände, die auf jeder Seite stehen können, z.B. Feuerzeuge.
Drehe jeden davon um jede Achse in die selbe Richtung um 90 Grad, aber:
Den ersten Gegenstand in der Reihenfolge: X,Y,Z.
Den zweiten Gegenstand in der Reihenfolge Z,X,Y.
Siehst Du das Ergebnis? Wenn es Feuerzeuge waren, steht das Erste, das Zweite liegt. :smile: Die Information, daß ein Gegenstand um jede Achse um 90 Grad gedreht ist, beschreibt seine Lage also erst mal noch nicht.
Das habe ich beim letzten Versuch gelernt. :smile:
Wenn ich irgendwann nicht mehr hier auftauche, bin ich beim Versuch das in den Griff zu bekommen wahnsinnig geworden. *gg*

Ich habe einen Tip für OpenGL bekommen, nennt sich GLUT.
Damit kann man auch Oberflächen erzeugen.

Ich hab’s gelesen. Wenn Du da ein Beispiel fertig hast, kannst Du es mir ja mal schicken.

Wie siehts denn bei dir aus mit dem Beispiel???

Ich habe nichts weiter versucht, die Ergebnisse gefallen mir ohnehin nicht. :frowning: Entweder bekommt man ein Gitter mit wenig Polygonen oder das ganze wird tränig langsam. Das dann noch mit ‚Würfelgraphik‘ in 600X400 … Da hält sich mein Interesse in Grenzen.

Gruß Rainer

@ Rainer
Hallo Rainer,

http://www.activevb.de/tutorials/opengl/tut_ogltutch…

Was ist daran schwer? Und warum sinnlose Gedanken machen ? *gruebel*

MfG

1 Like

3D - Die Lösung
Hallo Alex,

Danke! Dann spare ich mir natürlich, mir den Kopf darüber zu zerbrechen! :smile:

Das funktioniert wunderbar.

Gruß Rainer

Hallo Rainer,

Danke! Dann spare ich mir natürlich, mir den Kopf darüber zu
zerbrechen! :smile:

Das funktioniert wunderbar.

Ich weiss. Um um das seine Beduerfnissen anzupassen, bedarf es nicht viel *zwinker*

MfG Alex

OT Anschiß
Hallo Alex,

ich habe jetzt schon zweimal nachgefragt ob du eine Mail von mir erhalten hast, zuletzt hier: /t/directx7-projekte-laufen-nicht-mehr/4715707/5

Kannst du mir mal verraten warum du da nicht darauf mit Ja oder nein antwortest? Ja wäre gut, bei Nein habe ich ein sehr unklares Emailproblem.

Sach ma was, bitte.

Gruß
Reinhard

Hallo Reinhard,

Autsch, Asche auf mein Haupt!
Ich daechte das ich da schon einmal drauf geantwortet habe.
Also ne Mail diesbezueglich habe ich noch nicht bekommen :s

MfG Alex

Hi Alex,

ich habe mal etwas daran herumgefummelt … Bin begeistert!

Ich habe jetzt eine 3D-Landschaft, Farbverläufe (unten dunkel oben hell) kann die drehen, kippen, nach rechts und links schieben und auch zoomen.

Auch bei Vollbild ist die Geschwindigleit in Ordnung … Perfekt!

Danke!

Da nun noch Werners Daten eintragen und eine echte Landschaft betrachten ist nun super einfach.

Gruß Rainer

Für Werner noch die Codeänderung, einfach wie von Alex verlinkt laden und damit überschreiben …

Form:

Private Sub Form\_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = vbKeyEscape Then
 PrgRun = False
 End If

 Select Case KeyCode
 Case Asc("L")
 WX = WX + 1
 Case Asc("R")
 WX = WX - 1
 Case Asc("U")
 WY = WY + 1
 Case Asc("D")
 WY = WY - 1
 Case Asc("F")
 DY = DY + 0.1
 Case Asc("B")
 DY = DY - 0.1
 Case 37
 DX = DX - 0.1
 Case 39
 DX = DX + 0.1
 Case 38
 DZ = DZ + 0.1
 Case 40
 DZ = DZ - 0.1
 End Select
End Sub

Private Sub Form\_Resize()
 ReSizeGLScene ScaleWidth, ScaleHeight
End Sub

Modul:

Global PrgRun As Boolean 'Flag = Programm läuft

Public WX As Integer
Public WY As Integer
Public DX As Double
Public DY As Double
Public DZ As Double

Private hrc As Long
Public Sub Main()

 Dim frm As Form

 Dim cx As Double
 Dim cy As Double
 Dim h(200) As Double
 Dim i As Integer

 PrgRun = True
 Set frm = New Form1
 frm.ScaleMode = vbPixels

 Randomize Timer

 For i = 0 To 199
 h(i) = Rnd(1)
 Next

 DX = -1
 DY = -12

 If CreateGLWindow(frm, 640, 480, 16) Then
 Do
 glClear clrColorBufferBit Or clrDepthBufferBit
 glLoadIdentity
 glTranslatef DX, DZ, DY
 glRotatef WX, 0#, 1#, 0#
 glRotatef WY, 1#, 0#, 0#
 glBegin bmQuads

 For cx = -5 To 5
 For cy = -5 To 5
 glColor3f h(cx + 5 + 10 \* (cy + 5)), h(cx + 5 + 10 \* (cy + 5)), h(cx + 5 + 10 \* (cy + 5))
 glVertex3f cx, h(cx + 5 + 10 \* (cy + 5)), cy
 glColor3f h(cx + 5 + 10 \* (cy + 5 + 1)), h(cx + 5 + 10 \* (cy + 5 + 1)), h(cx + 5 + 10 \* (cy + 5 + 1))
 glVertex3f cx, h(cx + 5 + 10 \* (cy + 5 + 1)), cy + 1
 glColor3f h(cx + 5 + 1 + 10 \* (cy + 5 + 1)), h(cx + 5 + 1 + 10 \* (cy + 5 + 1)), h(cx + 5 + 1 + 10 \* (cy + 5 + 1))
 glVertex3f cx + 1, h(cx + 5 + 1 + 10 \* (cy + 5 + 1)), cy + 1
 glColor3f h(cx + 5 + 1 + 10 \* (cy + 5)), h(cx + 5 + 1 + 10 \* (cy + 5)), h(cx + 5 + 1 + 10 \* (cy + 5))
 glVertex3f cx + 1, h(cx + 5 + 1 + 10 \* (cy + 5)), cy
 Next
 Next

 glEnd
 SwapBuffers (frm.hDC)
 DoEvents

 Loop While PrgRun
 If hrc 0 Then
 wglMakeCurrent 0, 0
 wglDeleteContext (hrc)
 End If
 Unload frm
 Set frm = Nothing
 End
 End If
End Sub

Public Function CreateGLWindow(frm As Form, Width As Integer, Height As Integer, Bits As Integer) As Boolean
 Dim pfd As PIXELFORMATDESCRIPTOR
 Dim PixelFormat As GLuint

 pfd.cColorBits = Bits
 pfd.cDepthBits = 16
 pfd.dwFlags = PFD\_DRAW\_TO\_WINDOW Or PFD\_SUPPORT\_OPENGL Or PFD\_DOUBLEBUFFER
 pfd.iLayerType = PFD\_MAIN\_PLANE
 pfd.iPixelType = PFD\_TYPE\_RGBA
 pfd.nSize = Len(pfd)
 pfd.nVersion = 1

 PixelFormat = ChoosePixelFormat(frm.hDC, pfd)
 If PixelFormat 0 Then
 If SetPixelFormat(frm.hDC, PixelFormat, pfd) 0 Then
 hrc = wglCreateContext(frm.hDC)
 If hrc 0 Then
 If wglMakeCurrent(frm.hDC, hrc) 0 Then
 frm.Show
 glShadeModel smSmooth
 glClearColor 0#, 0#, 0#, 0#
 glClearDepth 1#
 glEnable glcDepthTest
 glDepthFunc cfLEqual
 glHint htPerspectiveCorrectionHint, hmNicest
 CreateGLWindow = True
 End If
 End If
 End If
 End If
End Function

Public Sub ReSizeGLScene(ByVal Width As GLsizei, ByVal Height As GLsizei)
 If Height = 0 Then
 Height = 1
 End If
 glViewport 0, 0, Width, Height
 glMatrixMode mmProjection
 glLoadIdentity
 gluPerspective 45#, Width / Height, 0.1, 100#
 glMatrixMode mmModelView
 glLoadIdentity
End Sub

Autsch, Asche auf mein Haupt!
Ich daechte das ich da schon einmal drauf geantwortet habe.
Also ne Mail diesbezueglich habe ich noch nicht bekommen :s

Hallo Alex,

meine Antwort ging gleich am 2.7 raus.

Mit wäre es echt viel lieber gewesen du hättest gesagt, ja die Antwortmail kam an :frowning:(

Weil nun bestätigt sich leider meine Vermutung daß ich da irgendwie ein Email-Problem habe, scheinbar nur mit gmx-Konten. Aber auch das ist letztlich unklar.
Bei mir steht die Antwort an dich brav im Ordner „gesendete Objekte“ von Outlook Exress. Der Mailer Dämon hat mir nicht geschriebent.
Ich gehe davon aus du hast auch deinen Spam-Ordner durchsucht.
Wiel ich da irgendwelche probleme seit einigen Wochen vermute habe ich mir natürlich selbst paar Testmails geschrieben, also von gmx.net zu gmx.net, kamen alle an.

Ich machs mal so, ich schicke das (meine damalige Antwort an dich) mal unnachgefragt an Rainer, er hat ja keine gmx-Adresse.

Hier posten kann ich das nicht denn Rainer müßte als korrekter Mod die Weitergabe der Zielkoordinaten des Berliner Reichstag an Bin Laden sofort löschen, aber privat macht er es ggfs. :smile:))

Moment bitte, … So, Mail an Rainer ist raus, mal schauen.

Gruß
Reinhard