| |
Fortgeschrittene ProgrammierungSteuerlemente hinzufügen während das Programm läuft | | | Autor: crinuy | Datum: 03.01.07 15:40 |
| Hallo allerseits,
ich habe ein kleines Problem mit Steuerelementen.
Und zwar möchte ich Daten aus einer Exceldatei in ein vbalGrid (vbaccelerator) einlesen. Soweit kein Problem.
Nun möchte ich aber gerne mit "Seiten" arbeiten. Sprich, ich habe im Fenster einen Button zum vor- und zurückblättern. Sobald 35 Zeilen aus der Exceldatei in das Grid gelesen wurden, soll quasi ein neues Grid erzeugt werden, in dem es dann mit den nächsten 35 zeilen weiter geht und so weiter.
Da ich ja nicht gerade weiss, wie viele Zeile die Exceldatei beinhaltet (ob 10,30, 100, 1000) kann ich ja nicht gerade einfach mal 10 Grids einlegen und die dann bei bedarf einblenden. Das wäre ja auch nicht wirklich schön programmiert.
Gibt es eine Möglichkeit, diese Grids während der Laufzeit dynamisch anzulegen? Oder gibt es eine vernünftige Alternative zu den Grids, womit das einigermassen geht?
Bin für jede Hilfe dankbar. | |
Re: Steuerlemente hinzufügen während das Programm läuft | | | Autor: AndyOG | Datum: 03.01.07 17:11 |
| Hi,
Private Sub Form_Load()
' Setz ein DataGrid auf deine Form und gib ihm den Index 0 (in den
' Eigenschaften)
DataGrid1(0).Visible = False ' Grid 0 verstecken wir fangen bei 1 an.
Dim i As Integer
Dim iIndex As Integer
For i = 1 To 30
iIndex = AddGrid ' Ein neues
' Grid erstellen (aktuellen Index in die Variable iIndex schreiben)
DataGrid1(iIndex).Caption = "Ich bin Grid nummer " & i ' Titel des
' Grids
DataGrid1(iIndex).Move i * 150, i * 70, 2000, 2000 ' Datagrid
' Positionieren
DataGrid1(iIndex).ZOrder 1 ' In den
' Hintergrund bringen
Next i
End Sub
Public Function AddGrid(Optional bVisible As Boolean = True) As Integer
Dim intCurIndex As Integer
intCurIndex = DataGrid1.Count
Load DataGrid1(intCurIndex) 'Lädt das neue Grid
DataGrid1(intCurIndex).Visible = bVisible 'Zeigt das neue Grid an
' Gibt der Index des gerade erstellten Datagrids zurück
AddGrid = intCurIndex
End Function
' Die Ereignisbehandlung
Private Sub DataGrid1_Click(Index As Integer)
MsgBox "Ich bin Grid nummer: " & Index
' Wie du siehst bekommst du automatisch über die Variable Index, den Index
' des geklickten Grid's
' Mit hilfe dieses Index's kannst du entsprechend reagieren.
' zB mit der Select-Anweisung
Select Case Index
Case 1: MsgBox "Und das hier soll ich auch noch sagen"
Case 2: MsgBox "bla"
Case 3: MsgBox "blabla"
Case 4: MsgBox "blablabla"
' Case ...:
End Select
End Sub Mit freundlichen Gr??en,
Andy G. | |
Re: Steuerlemente hinzufügen während das Programm läuft | | | Autor: crinuy | Datum: 04.01.07 09:48 |
| Super, das klappt perfekt. danke dir recht herzlich! | |
Re: Steuerlemente hinzufügen während das Programm läuft | | | Autor: DerBaer | Datum: 04.01.07 13:02 |
| Ist es auch möglich Elemente während der Laufzeit zu erstellen, die vorher NICHT als Arrey existiert haben? | |
Re: Steuerlemente hinzufügen während das Programm läuft | | | Autor: AndyOG | Datum: 05.01.07 14:02 |
| Hi,
eine vlt etwas dumme Frage aber ich würds gern wissen.
Für was ist in diesem Fall der Name des Labels("Name_des_Labels") gut wenn man es eh nur über das LabelObject oLabel ansprechen kann?
' Label deklarieren
Dim oLabel As Label
' Label der Form1 hinzufügen
Set oLabel = Form1.Controls.Add("VB.Label", "Name_des_Labels")
' [...] Mit freundlichen Gr??en,
Andy G. | |
Re: Steuerlemente hinzufügen während das Programm läuft | | | Autor: DerBaer | Datum: 06.01.07 08:48 |
| Und ist es auch möglich einen Code während der laufzeit zu schreiben, dass der label auch ereignisse hat, oder muss man vorher raten, welche labels noch kommen werden? | |
Re: Steuerlemente hinzufügen während das Programm läuft | | | Autor: Gateway | Datum: 06.01.07 12:32 |
| @DerBaer hab deinen post nicht so ganz verstanden aber ich glaub du möchtest die events des labels bearbeiten, oder?
Dann ganz einfach die deklaration ein wenig ändern:
Private withevents oLabel as label
....
Set oLabel = Form1.Controls.Add("VB.Label", "Name_des_Labels")
....
Private sub olabel_click
msgbox "hallo"
end sub Jetzt kann man die events des controls auch bearbeiten.
Wer Rechtschreibfehler findet kann sie behalten oder meinen Deutschlehrer verklagen.
In der Mitte von Schwierigkeiten liegen die M?glichkeiten. [Alber Einstein] | |
Re: Steuerlemente hinzufügen während das Programm läuft | | | Autor: DerBaer | Datum: 07.01.07 08:45 |
| Dank, das war genau das, was ich gebraucht habe.
Aber ist es auch möglich, während das programm läuft (also wenn das label erstellt wird) seinen Code zu erstellen? Sonst müsste man ja vorher wissen, welche elemente hinzugefügt werden. | |
| 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 |
|
|
sevZIP40 Pro DLL
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere 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
|
|