| |
Fragen & Antworten rund um sev-KomponentensevDataGrid - zur Laufzeit erstellen | | | Autor: lanzarote | Datum: 03.04.14 17:12 |
| Hallo,
kann man ein Grid-Control nicht zur Laufzeit erstellen? Folgende Anweisung lässt der Compiler nicht durch: Set grdDaten = New SevGrid Meldung: "Ungültige Verwendung des Schlüsselworts New"
Der Code steht in der Methode einer Klasse, d.h. es gibt kein Formular mit einem Grid-Control. Ich möchte anschließend dem zur Laufzeit erstellten Grid ein Recordset zuweisen und schließlich einen Excel-Export mit DoExport erstellen.
Gruß Dieter R. | |
Re: sevDataGrid - zur Laufzeit erstellen | | | Autor: Franki | Datum: 04.04.14 01:55 |
| Hallo Dieter,
deine Frage kann ich dir nicht beantworten, da ich deine Vorgehensweise noch nie versucht habe. Aber warum möchtest du das so machen?
Wenn der User das SevGrid sowieso mangels Formular nie zu sehen bekommt, dann ist es ja völlig überflüssig.
Die Basis ist ein Recordset aus einer DB, das Ziel eine Exceldatei.
Das geht doch auch auf direktem Weg ohne den Umweg über ein für den User unsichtbares Grid. Du hast ja Zugriff auf die Quelle und das Ziel der Daten.
Ein Grid ist ja eigentlich dafür da dem User etwas zu zeigen, bzw. ihm die Möglichkeit zu bieten da Veränderungen, Einstellungen usw. vornehmen zu können. Die Daten im Grid würden wenn es unsichtbar ist 1:1 weiter gereicht werden, also ist das Grid überflüssig an dieser Stelle.
Also Frage: Warum brauchst du das, bzw. was genau möchtest du machen?
Gruß
Frank
| |
Re: sevDataGrid - zur Laufzeit erstellen | | | Autor: lanzarote | Datum: 04.04.14 10:05 |
| Hallo Frank,
ich möchte es eben einheitlich zu meinen Formularen mit sichtbarem Grid machen. Dort wird die Referenz auf das Grid einfach an eine Routine übergeben, die dann den Excel-Export durchführt.
Wozu einen neuen Excel-Export programmieren, wenn ich auch diese Routine nutzen kann. Ich muss eben nur zuvor ein Grid erstellen, wo ich eigentlich noch keines habe.
PS: wüßte auch nicht genau, wie ich den Excel-Export von Hand programmiere ...
Gruß Dieter R. | |
Re: sevDataGrid - zur Laufzeit erstellen | | | Autor: Charles_007 | Datum: 04.04.14 11:17 |
| Hallo Dieter,
Ich hab wenig Ahnung wie VB im Detail so tickt, aber ein Control braucht doch immer einen Owner, in VB also ein Formular. Frage: Welche Parameterliste hat denn der GridControl Constructor ?
Gruß
Karl-Heinz
| |
Re: sevDataGrid - zur Laufzeit erstellen | | | Autor: lanzarote | Datum: 04.04.14 12:43 |
| Hallo Karl-Heinz,
den find ich nicht. Wahrscheinlich kann das Grid nicht zur Laufzeit erstellt werden, denn sobald ich in der Entwicklungsumgebung das Schlüsselwort NEW eingebe, erscheinen ja die möglichen Objekte zur Auswahl. Und da ist das sevGrid nicht dabei. Ich habe es eben von Hand hinter NEW geschrieben.
Werde jetzt wohl ein Dummy-Grid in mein Formular einfügen (unsichtbar) und dann die Referenz an die Routine übergeben. Nichts besseres sehe ich im Moment nicht.
Gruß Dieter R. | |
Re: sevDataGrid - zur Laufzeit erstellen | | | Autor: Franki | Datum: 05.04.14 00:34 |
| Hallo,
ich habe das mal eben probiert.
VB gestartet, unter Komponenten das SevGrid hinzugefügt, dann in der IDE von VB auf Projekt/Klassenmodus hinzufügen und dann per Hand getippt:
Set grdDaten = New
und schon erscheint per IntelliSense die Auswahl auf das Sevgrid. Das lautet dann komplett:
Set grdDaten = New sevDataGrid2.Init Weiter habe ich jetzt nicht getestet, vielleicht ist da ja ein Ansatz für dich
Gruß
Frank
| |
Re: sevDataGrid - zur Laufzeit erstellen | | | Autor: lanzarote | Datum: 05.04.14 10:00 |
| Hallo Frank,
leider nicht. Bei deinem Ansatz gibt's dann die Meldung: "Laufzeitfehler 13: Typen unverträglich".
Trotzdem Dank für deine Bemühungen. Ich hab's jetzt mit dem Dummy-Grid im Formular gelöst, das ich durchreiche.
Gruß Dieter R. | |
Re: sevDataGrid - zur Laufzeit erstellen | | | Autor: benne | Datum: 06.05.14 16:55 |
| Hi,
warum nimmst du nicht ein Formular und stellst es auf unsichtbar?
Dann kann die ganze Berechnung im Hintergrund erfolgen.
Gruß
Benne
| |
Re: sevDataGrid - zur Laufzeit erstellen | | | Autor: Anthe | Datum: 24.05.14 17:07 |
| Das geht zB so:
Option Explicit
Dim WithEvents x As sevTextBox.sevText
Dim WithEvents y As sevDataGrid2.sevGrid
Private Sub Command1_Click()
Set x = Me.Controls.Add("sevTextBox.sevText", "x", Me)
x.Left = 10
x.Top = 10
x.Visible = True
Set y = Me.Controls.Add("sevDataGrid2.sevGrid", "y", Me)
y.Top = 200
y.Left = 10
y.Visible = True
End Sub
Private Sub x_GotFocus()
MsgBox "Ich TextBox."
End Sub
Private Sub y_Click(Button As Integer, Shift As Integer)
MsgBox "Ich Grid."
End Sub
| |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevPopUp 2.0
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|