vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

Fortgeschrittene Programmierung
Re: Frage zum Laden einer Form 
Autor: Boris
Datum: 10.03.03 15:41

Hy Cyrano!

generell musst du einmal im vorhinein wissen, wie lange das ganze dauern wird, da sonst die progressbar niemals stimmen kann.

dH du musst entweder einen Zeitraum wissen, oder wieviele datensätze aus der DB
gelesen werden oder oder oder....

dann hab ich die "Progressbar im Eigenbau" aus dem Tipps & Tricks genommen.
ich kann dir den code posten wenn du willst, aber ich glaub nicht dass du damit wirklich was anfangen kannst.

naja - hier ist er mal:

' Fortschritsanzeige
Private Sub ShowProgress(picProgress As PictureBox, _
  ByVal Value As Long, _
  ByVal Min As Long, _
  ByVal Max As Long, _
  Optional ByVal bShowProzent As Boolean = True)
 
  Dim pWidth As Long
  Dim intProz As Integer
  Dim strProz As String
 
  ' Farben
  Const progBackColor = vbRed
  Const progForeColor = vbBlack
  Const progForeColorHighlight = vbWhite
 
  ' Plausibilitätsprüfungen
  If Value < Min Then Value = Min
  If Value > Max Then Value = Max
 
  ' Prozentwert ausrechnen
  If Max > 0 Then
    intProz = Int(Value / Max * 100 + 0.5)
  Else
    intProz = 100
  End If
 
  With picProgress
    ' Prüfen, ob AutoReadraw=True
    If .AutoRedraw = False Then .AutoRedraw = True
 
    ' Inhalt löschen
    picProgress.Cls
 
    If Value > 0 Then
 
      ' Balkenbreite
      pWidth = .ScaleWidth / 100 * intProz
 
      ' Balken anzeigen
      picProgress.Line (0, 0)-(pWidth, .ScaleHeight), _
        progBackColor, BF
 
      ' Prozentanzeige
      If bShowProzent Then
        strProz = CStr(intProz) & " %"
        .CurrentX = (.ScaleWidth - .TextWidth(strProz)) / 2
        .CurrentY = (.ScaleHeight - .TextHeight(strProz)) / 2
 
        ' Vordergrundfarbe
        If pWidth >= .CurrentX Then
          .ForeColor = progForeColorHighlight
        Else
          .ForeColor = progForeColor
        End If
 
        picProgress.Print strProz
      End If
    End If
  End With
End Sub
dazu benötigst du eine PixtureBox (PicProgress).
das ist mal der generelle Code für die Progressbar.

hier ist jetzt der aufruf, bei dem sie dargestellt und aufgefüllt wird:

MsgBox ("Die Datensätze werden jetzt eingelesen und einzelnen Gruppen" & _
  "zugeteilt." & vbCrLf & vbCrLf & "Dieser Vorgang kann BIS ZU 2 MINUTEN" & _
  "dauern!" & vbCrLf & vbCrLf & "Bei Problemen wenden sie sich bitte an Hr." & _
  "Huemer Boris - IT / DW 62 / Boris.Huemer@aluplast.at"), vbOKOnly, ("Wichtige" & _
  "Information!!! Bitte lesen!!!")
    frmStatus.Picture2.Visible = False
    frmStatus.Picture1.Visible = True
   ' anbinden der Datenbank für Gruppe FERTIGUNG
  Dim DB As Database ' deklaration für Database
  Dim Rs As Recordset ' Deklaration für Recordset
 frmStatus.Picture2.Visible = True
    frmStatus.Picture1.Visible = False
  Set DB = DBEngine.OpenDatabase("m:\edv\extern\kontinv\Kont_Inv.mdb")
  ' datenbankanbindung wird angezapft
  Set Rs = DB.OpenRecordset("SELECT artikel FROM a_fert") ' Informationen über 
  ' die Abrfage werden deklariert
 
  If Rs.RecordCount > 0 Then ' Füllen der Listbox durch While Schleife
   ' Status-Form anzeigen
    Dim lngMax As Long
    Dim lngAkt As Long
    frmStatus.Picture2.Visible = True
    frmStatus.Picture1.Visible = False
    frmStatus.Picture2.Visible = False
    frmStatus.Picture1.Visible = True
    lngAkt = 0: lngMax = Rs.RecordCount
frmStatus.picProgress.Refresh
 frmStatus.Refresh
    Load frmStatus
    ShowProgress frmStatus.picProgress, 0, 0, 0
 
    frmStatus.Show
    DoEvents
 
    While Not Rs.EOF
 frmStatus.picProgress.Refresh
 frmStatus.Refresh
     list_fertigung.AddItem Rs(0)
      Rs.MoveNext ' Wechseln zum nächsten artikel
 
    Wend
  End If
 frmStatus.picProgress.Refresh
 frmStatus.Refresh
  Rs.Close
  DB.Close
  Set DB = Nothing
da ist jetzt natürlich mein zeugs dabei damit du siehst wie der progressbar-teil in den
rest der prozedur miteingebunden ist.

ich hab den ganzen code auch schon mal viel einfacher gesehen, allerdings hat
das überhaupt nicht gut funkioniert. dH er ist eine ewigkeit bei null gestanden, und dann irgendwann gleich auf 100% gesprungen, oder umgekehrt.....

aus diesem grund verwende ich die progressbar nicht mehr
und ich glaube mit der ansicht bin ich nicht der einzige.

cu
Bris

"640 KB Ram sind mehr als irgendein Programm jemals ben?tigen wird."
- (Bill Gates - 1981)

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Frage zum Laden einer Form350Cyrano10.03.03 15:22
Re: Frage zum Laden einer Form223Boris10.03.03 15:32
Re: Frage zum Laden einer Form217Cyrano10.03.03 15:33
Re: Frage zum Laden einer Form288Boris10.03.03 15:41

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-2025 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