vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 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

Visual-Basic Einsteiger
Re: Startmenü 
Autor: alert
Datum: 14.07.02 18:46

Hi Dieter,
hier einmal der Quellcode des Projektes.
Gruß, Alert

'Startmenü!

'1 Textbox = txtEingabe
'1 Timer = Timer1
'1 Listbox = ListEinlesen
'1 Listbox = ListAusgabe
'1 Checkbox = chkGrossKlein
'1 CommonDialogControl = Dialog


Option Explicit
'Deklaration für Rahmen um die Form legen!
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Const GWL_EXSTYLE = (-20)
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

'Deklaration zum starten von Anwendungen!
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1

'Deklaration zum suchen in der Listbox!
Private Declare Function SendMessageStr Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Const LB_ERR = (-1)

Private Sub Form_Paint()
'Funktion für Rahmen um die Form legen!
Dim fx As Long
fx = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
SetWindowLong Me.hwnd, GWL_EXSTYLE, fx Or &H200
SetWindowPos Me.hwnd, 0&, 0&, 0&, 0&, 0&, &H23
End Sub

Private Sub Form_Load()
Laden 'Ruft Laden im "Sub Laden()" auf.
Übertragen 'Ruft Übertragen im "Sub Übertragen()" auf.
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Beenden 'Ruft Beenden im "Sub Beenden()" auf.
End Sub

Private Sub Laden()
Dim F As Byte
Dim Daten
On Error GoTo c 'Fehlerbehandlung.
SetAttr App.Path & "Daten.mru", vbNormal 'Schreibschutz deaktivieren.
F = FreeFile
Open App.Path & "Daten.mru" For Input As #F 'Öffnen der Datei "Daten.mru".
While Not EOF(1)
Line Input #F, Daten
frmAnwendung.ListEinlesen.AddItem Daten
Wend
Close 1
Exit Sub
c:
MsgBox "Dateien wurden nicht gefunden, es werden beim Beenden jedoch neue Dateien erstellt!", 48, "Bitte wenden Sie sich an den Hersteller."
End Sub

Private Sub Suchen()
'Datei auswählen.
Dim F As Integer
On Error Resume Next
With Dialog
.CancelError = True
.DialogTitle = "Wählen Sie eine Anwendung aus!"
.Filter = "Anwendung (*.exe)|*exe"
.ShowOpen
If .FileName <> "" Then
F = FreeFile
txtEingabe.Text = Dialog.FileName
Hinzufügen 'Ruft Hinzufügen im "Sub Hinzufügen()" auf.
End If
End With
End Sub

Private Sub Löschen()
On Error Resume Next
Dim I As Integer
With ListEinlesen
I = 0
Do Until I > .ListCount - 1
If .Selected(I) Then
.RemoveItem I
Else
I = I + 1
End If
Loop
End With
Übertragen 'Ruft Übertragen im "Sub Übertragen()" auf.
End Sub

Private Sub Speichern()
'Speichert die Einträge im gleichen Verzeichnis in die Datei: Daten.mru
Dim F As Integer
Dim I As Integer
On Error Resume Next
F = FreeFile
Open App.Path & "Daten.mru" For Output As #F
For I = 0 To frmAnwendung.ListEinlesen.ListCount - 1
Print #F, CStr(frmAnwendung.ListEinlesen.List(I))
Next I
Close #F
SetAttr App.Path & "Daten.mru", vbReadOnly ' Schreibschutz aktivieren.
End Sub

Private Sub Übertragen()
'Übertragen von ListEinlesen.List und abschneiden des Pfades
' sowie der Dateiendung nach ListAusgabe.List.
Dim I As Integer
Dim lPos As Long
Dim sFile As String
ListAusgabe.Clear
With ListEinlesen
For I = 0 To .ListCount - 1
sFile = .List(I)
' Pfad abschneiden
lPos = InStrRev(sFile, "\")
If lPos > 0 Then sFile = Mid$(sFile, lPos + 1)
'Extension abschneiden
lPos = InStrRev(sFile, ".")
If lPos > 0 Then sFile = Left$(sFile, lPos - 1)
'und ab in die ListAusgabe.List Box
ListAusgabe.AddItem sFile
Next I
End With
End Sub

Private Sub Hinzufügen()
'Hinzufügen eines neuen Eintrags.
Dim strText As String
strText = Trim(txtEingabe.Text)
If EintragVorhanden(ListEinlesen, strText) Then
txtEingabe.Text = "Der Eintrag ist bereits vorhanden!"
Else
ListEinlesen.AddItem strText
txtEingabe.Text = "Der Eintrag wurde zur Liste hinzugefügt!"
End If
Übertragen 'Ruft Übertragen im "Sub Übertragen()" auf.
End Sub

Private Function EintragVorhanden(ListEinlesen As Control, _
eintrag As String) As Boolean
'Prüfen ob der Eintrag bereits in der Liste vorhanden ist.
Dim I As Integer
EintragVorhanden = False
If chkGrossKlein.Value = 0 Then
For I = 0 To ListEinlesen.ListCount - 1
If UCase(ListEinlesen.List(I)) = UCase(eintrag) Then
EintragVorhanden = True
ListEinlesen.ListIndex = I
Exit For
End If
Next I
Else
For I = 0 To ListEinlesen.ListCount - 1
If ListEinlesen.List(I) = eintrag Then
EintragVorhanden = True
ListEinlesen.ListIndex = I
Exit For
End If
Next I
End If
End Function

Private Function ListFindText(lstListBox As ListBox, strFindText As String, Optional ByVal intFromIndex As Long = -1, Optional ByVal blnSelect As Boolean = True) As Long
'Funktion für die Suche in einer Listbox!
Dim lngMsg As Long
Dim lngIndex As Long
Dim blnExact As Boolean
Const LB_FINDSTRING = &H18F
Const LB_SELECTSTRING = &H18C
Const LB_FINDSTRINGEXACT = &H1A2
Select Case blnExact
Case False
Select Case blnSelect
Case True
lngMsg = LB_SELECTSTRING
Case False
lngMsg = LB_FINDSTRING
End Select
ListFindText = SendMessageStr(lstListBox.hwnd, lngMsg, intFromIndex, strFindText)
Case True
With lstListBox
lngIndex = SendMessageStr(.hwnd, LB_FINDSTRINGEXACT, intFromIndex, strFindText)
If blnSelect Then
.ListIndex = lngIndex
End If
End With
ListFindText = lngIndex
End Select
End Function

Private Sub Beenden()
Speichern 'Ruft Speichern im "Sub Speichern()" auf.
Unload Me
End 'Ende
End Sub

Private Sub ChangeColor(X As Control)
X.Enabled = True
X.BackColor = &HC0FFFF
X.SetFocus
End Sub

Sub txtEingabe_GotFocus()
txtEingabe.SelStart = 0
txtEingabe.SelLength = Len(txtEingabe.Text)
Call ChangeColor(txtEingabe)
End Sub

Sub txtEingabe_LostFocus()
txtEingabe.SelLength = Len(txtEingabe.Text)
txtEingabe.BackColor = &H80000005
End Sub

Private Sub ListAusgabe_DblClick()
On Error GoTo Fehler
Call ShellExecute(Me.hwnd, "Open", ListEinlesen.Text, "", "", 1)
Exit Sub
Fehler:
'Wenn ein Fehler auftritt, kommt diese Fehlermeldung:
MsgBox "Bitte wählen Sie eine Anwendung aus", vbInformation, "Fehler"
End Sub

Private Sub Timer1_Timer()
Dim iFirstIndexListAusgabe As Integer
Static sListEinlesenPreview As Integer
Static sListAusgabePreview As Integer

iFirstIndexListAusgabe = ListAusgabe.TopIndex
If iFirstIndexListAusgabe <> sListAusgabePreview Then
ListEinlesen.TopIndex = iFirstIndexListAusgabe
sListAusgabePreview = iFirstIndexListAusgabe
End If

If ListAusgabe.ListIndex <> ListEinlesen.ListIndex Then
ListEinlesen.ListIndex = ListAusgabe.ListIndex
End If
End Sub

'mnuMenü!
Private Sub mnuSuchen_Click()
Suchen 'Ruft Suchen im "Sub Suchen()" auf.
End Sub

Private Sub mnuLöschen_Click()
Löschen 'Ruft Löschen im "Sub Löschen()" auf.
End Sub

Private Sub mnuBeenden_Click()
Beenden 'Ruft Beenden im "Sub Beenden()" auf.
End Sub

Private Sub mnuReadme_Click()
ShellExecute Me.hwnd, "Open", App.Path & IIf(Right$(App.Path, 1) <> "\", "\", "") & "Readme.txt", _
vbNullString, App.Path, vbNormalFocus
End Sub
'mnuMenü!

Private Sub txtSuchen_Change()
'Aufruf für die Suche in einer Listbox!
'Name der Listbox und der Textbox sind anzupassen.
Call ListFindText(ListAusgabe, txtSuchen.Text, -1, True)
End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Startmenü68alert14.07.02 11:55
Re: Startmenü254ModeratorDieter14.07.02 14:10
Re: Startmenü38alert14.07.02 17:35
Re: Startmenü44alert14.07.02 18:46
Re: Startmenü248ModeratorDieter14.07.02 19:12
Re: Startmenü30alert14.07.02 19:18
Re: Startmenü54alert14.07.02 19:21
Re: Startmenü255ModeratorDieter14.07.02 19:36

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