vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Steuerlemente 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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Steuerlemente hinzufügen während das Programm läuft 
Autor: Zardoz
Datum: 04.01.07 17:22

http://www.vbarchiv.net/faq/allg_dynamische_controls.php

Gruss,

Zardoz

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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]

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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