Listenfeld mit Optionsbox vorne dran

Hi,
es gibt doch ein Listenfeld mit Optionsboxen.
Ich fürchte, das ich das in nächster Zeit häufiger brauchen werde,
um Datenblöcke zusammenzufassen und in einer Liste auszuwählen.

Bsp.: Spalte A in Access 132050010001
132050010002 usw.

Letztendlich setzt sich diese Nummer immer aus 13205 00100 und 01-99 zusammen. Alles was 00100 heisst beinhaltet 1 Profil und einen Block.
Der nächste Block hat dann die Nummer 00200 usw.
Diese Datensätze sollen dann in einer Liste zusammengefasst werden und optional ausgegeben oder was auch immer mit gemacht werden.

Daher meine Frage, wo versteckt sich das Steuerelement.
Vielleicht hat ja jmd was kleines, wo bereits ein Bsp. für die Anlegung eines solchen Listenfeldes beinhaltet ist.

Geht ja eigentlich ganz easy mit Additem oder so.

Mfg Werner

Hallo Werner,

versteh’ ich nicht. ;-( Was ist eine ‚Optionsbox‘?
Ich kenne Options-Buttons, in einer Liste habe ich die aber noch nicht gesehen. Hast Du einen Screenshot?

Gruß, Rainer

Hi
Hi, muß ich mal nachschauen, habe aber sowas schon gesehen glaub ich.
Ich meine, das man ein Listenelement mit Haken versetzen kann und es dann ausgewählt ist.
Ich schau mal nach und melde mich nochmal wegen dem Screenshot.
Zum Anschauen der Registrierung bin ich noch nicht gekommen.
Dauerd vermutlich noch ca. 1 Woche.
Muß erstmal meine momenanen Ideen verbasteln, bevor ich sie wieder vergesse. Und schlafen und Arbeiten muß ich ja auch noch *g*

Mfg Werner

fehler
also ich meine natürlich jedes Element eines Listenfeldes einzeln mit Haken auswählen oder abwählen

Hallo Werner,

Ich meine, das man ein Listenelement mit Haken versetzen kann
und es dann ausgewählt ist.

Ist klar. :wink:

Ich schau mal nach und melde mich nochmal wegen dem
Screenshot.

Nicht mehr nötig.
Sieh mal Deine Samples durch, was Du suchst ist in ‚Datatree‘ erklärt. Ich habe vor längerer Zeit damit etwas gebastelt und fand’s recht schwierig. Ohne das Demoprogramm hätte ich’s nicht gepackt.

Und schlafen und Arbeiten muß ich ja auch noch *g*

Das werde ich mir auch wieder angewöhnen müssen, mein Urlaub (vier Wochen) ist um. :wink:

Gruß, Rainer

also ich meine natürlich jedes Element eines Listenfeldes
einzeln mit Haken auswählen oder abwählen

Deine Listbox hat die Eigenschaft „Style“ Setze dessen Wert auf 1 somit hast du die Kontrollkaestchen vor jedem Eintrag.

Um dann rauszufinden welcher Eintrag alles makiert wurde, verwende folgende prozedure

Private Sub List1\_Click()
 Dim i As Integer
 If List1.ListCount = 0 Then Exit Sub
 For i = 0 To List1.ListCount - 0
 If List1.Selected(i) Then
 'Eintrag ist makiert
 Else
 'Eintrag ist nicht makiert
 End If
 Next i
End Sub

Wobei hier die Liste den namen list1 hat :smile:

MFG Alex

Hi Alex,

hab’s mir gerade angesehen, … das ist mir noch nie aufgefallen. :wink:

Thanks!

Gruß, Rainer
PS. Ich geh mich jetzt erst mal ein paar Minuten schämen.

Hi Rainer,

macht doch nichts :smile: man kann net alles wissen :smile:

Aber mal was anderes, kennst du dich mit der programmierung von Webcams aus?

LG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Alex,

macht doch nichts :smile: man kann net alles wissen :smile:

… ich schäm mich trotzdem noch ein bißchen. :wink:

Aber mal was anderes, kennst du dich mit der programmierung
von Webcams aus?

Sorry, das habe ich mir leider noch gar nicht angesehen. Da wüßte ich noch nicht mal, wo ich anfangen müßte.

Gruß, Rainer

Dankeschön, Rainer weiss dafür andere Sachen *g*
Dankeschön,
wird mir so sehr gut helfen.
Jeder kennt sich halt ein wenig woanders aus, das is doch auch gut so.

Mfg Werner

gibts das auch mit unterschiedlichen Farben
Hi, dankeschön siehe Antwort weiter unten.

Gibt es auch eine Möglichkeit, die einzelnen Items farblich (Text oder Hintergrund, das wäre mir egal)unterschiedlich zu gestalten, indem ich vor dem Anlegen des Items noch eine Abfrage einbaue, wonach das Item (text oder Hintergrund), dann rot, grün oder blau sein soll.

Auf diese Weise könnte man die Daten noch übersichtlicher auflisten und dann auswählen.

Mfg Werner

Hallo Rainer,

shit :frowning: Also das Bild von der Cam bekommsch ja auf mein Monitor.
Nur kann ich net direkt auf das Bild zugreifen, da ich es mir über ein OCX anzeigen lasse und dies ein seperates Fenster öffnet und es keine Methode gibt darauf zuzugreifen.
Dies muesste ich aber und jedesmal wenn ein neues Frame geladen wird, braeuchte ich das alte zu versenden. Hast du eine Idee wo ich da suchen könnte ?

MFG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Werner,

das koennte man mit Subclassing realisieren, aber der Aufwand waere arg etrem und ob sich das lohnt ist fraglich .
Alternativ, was auch der einfachere Weg ist. Dies alles mit einem Treeview oder dem Listview Steuerelement zu realisieren :smile:
Dann koenntest du es noch mit OwnerDrawn-Modus vesuchen.

Ein bsp. dazu findest du hier :smile:

http://www.vbaccelerator.com/home/VB/Code/Controls/C…

Aber mal was anderes. Brauchst du die Checkboxen unbedingt?
Du kannst eine mehrfachauswahl auch ohne diese Boxen realisieren und dann koenntest du mit leichtigkeit deine Eintraege einfaerben. Also Schriftfarbe / Hintergrund / Bilder etc. pro seperaten Eintrag.

MFG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Alex,

Hast du
eine Idee wo ich da suchen könnte ?

noch nicht, aber jetzt hab’ ich 'n Grund, meine endlich mal zu installieren. :wink: Bisher habe ich damit nur fotografiert. …
Ob die Software ähnlich ist, ist da auch noch fraglich. Meine ist von ‚Tevion‘ (Aldi).

Gruß, Rainer

welche denn
Hi
OK das is dann wohl nix mit Farbe bzw. zu komplex für mich.

Aber mal was anderes. Brauchst du die Checkboxen unbedingt?
Du kannst eine mehrfachauswahl auch ohne diese Boxen
realisieren und dann koenntest du mit leichtigkeit deine
Eintraege einfaerben. Also Schriftfarbe / Hintergrund / Bilder
etc. pro seperaten Eintrag.

Wie kann man denn eine Mehrfachauswahl noch realisieren.
An was hast du dabei gedacht???

Mal ne andere Frage.
Ich würde gerne mein Mousewheel benutzen in meiner Anwendung.
Leider wird das über VB nicht angesteuert.
Da du hier scheinbar ein Crack bist, hast du dir da schon mal Gedanken drüber gemacht???

Mfg Werner

Hallo Rainer,

meine Gurke ist von Labtec.
So aber ich kann dir ha mal sagen, womit ich es schon probiert habe. Im Netzt findest du das Steuercontrol EZVID60.ocx. Damit kannst du Problemlos Die Bilder von der Cam Im Prog darstellen. Problem ist da nun wiederrum das du nicht nicht auf die Frames zugreifen kannst.
Dann habe ich es mit Video.ocx probiert. Ok das muesste man dann bezahlen, was ich eigentlich nicht wollte. Dieses OCX Hat die ganzen gewünschten Functionen. Aber irgendwie klappt das net und mein VB stürzt nach einem Versuch radikal ab und laesst sich dann nicht mehr starten.

Ich sitze nun schon seit Tagen an dem Contol EZVID60.ocx und suche da nach einer Lösung wie ich das realisieren kann.

Dabei stellt sich natürlich nun eine Frage! Wenn ich an jedes einzelne Frame komme, kann ich es mit einem codec x codieren und bekomme so die bildgroesse ( in Bytes) runter! Welches für den Versand dann über Winsok wiederrum gut ist.
Aber wenn du nun ein Chatsystem bastelst, sollte man schon 15 Bilder pro sekunde senden oder? Bei einer Bildgrösse von 8 KB waren das 120 KB pro Sekunde. Aber das macht kein Rechner mit.
Wie würdest du es denn realisieren? Könntest du dich mal mit der thematik auseinandersetzen, wenn du Zeit hast. Vlt findest du ansatzweise oder gar einen Loesungsweg.

MFG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Werner,

für alles gibt es eine Lösung :wink:

Zur Der Sache mit Mehrfachauswahl in Listboxen.
jede Listbox hat eine Eigenschaft „Multiselect“ Diese ist Standartmaessig auf 0 gestellt. Sprich, nur eine Auswahl zulaessig!
Du kannst aber ihr den Wert 1 oder 2 zuweisen.
Weisst du ihr den Wert 1 zu so wird jedes Element ausgewaehlt was du anklickst!
Bsp.: du klickst auf item 2, so wird es gewaehlt, nun klickst du auf item 5 so wird dies auch gewaehlt!( Also 2 und 5 sind makiert)

Setzt du aber die Eigenschaft Multiselect auf 2 ( Erweitert) so verhaelt sich die Box wie im Explorer.
Klick -> item wird selectiert. Klick aufs naechste item, vorhergehendes Item wird deselectiert und neues Item wird selectiert.
Klick auf item 2 ( item 2 ist selectiert) Weitere Elemente kannst du nur selectieren indem du die STRG oder SHIFT Taste gedrueckt haelst.

Eigentlich eine ganz simple Sache :wink:

So, da du sagst du koenntest auf die Checkboxen verzichten. lade dir mal das Steuerelement MBLISTEX aus dem Netz.

http://cuinl.tripod.com/downloads/activex/MBListEx.zip

Das hat die selbigen Eigenschaften wie eine normale Liste.
Du kannst jedoch aber noch Bilder in die Listen einpflegen und jedem Item verschieden Farben / Schriftarten etc. zuweisen. Hinzufügen tust du ein Eintrag mit

 ListEx1.SelBackColor = vbWhite
 ListEx1.SelForeColor = vbBlack
 ListEx1.AddItem "Eintrag 1", , vbBlue, vbGreen, , , , "Eintrag1", True
 ListEx1.AddItem "Eintrag 2", , vbYellow, vbRed, , , , "Eintrag2", True

Wie du siehst kannst du mit leichtigkeit verschiedene Farben zuweisen.
Für jedes sep. item, sowie wenn sie selektiert sind :wink:
Ein sehr starkes Steuerelement was ich immer verwende. Ok es kann noch einiges mehr, aber des ist erstmal unrelevant

Soviel zu dem Thema :smile:
Solltest du dort noch Fragen, so schreib einfach *zwinker*

So zu der Sache mit dem Mousewheel :smile:
Ich weiss nicht was du genau vor hast.
Aber ich habe mal was getippelt. Du kannst so darauf zugreifen wenn das Mausrad gedrueckt wurde und auch wenn es gescrollt wird, so wird ein ereignis ausgelöst. Aus diesen Functionen heraus kannst du dann ja dein programm steuern. Zum beispiel wenn das rad nach unten gescrollt das naechste element aus einer liste x auswaehlen oder.
Die Sache verwendet Subclassing, was bei mir öfters dazu führt das mein VB abschmiert :frowning: ( Was aber normal ist) Das heisst, vor jedem probelauf dein Project speichern, nicht das dann deine Arbeit umsonst war!
Erstelle einfach ein Modul mit folgendem Code

Public Declare Function SetWindowsHookEx Lib "user32" Alias \_
 "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, \_
 ByVal hmod As Long, ByVal dwThreadId As Long) As Long

Public Declare Function GetCurrentThreadId Lib "kernel32" () As Long

Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, \_
 ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long

Public Declare Function UnhookWindowsHookEx Lib "user32" \_
 (ByVal hHook As Long) As Long

Public Declare Function CallWindowProc Lib "user32" Alias \_
"CallWindowProcA" \_
 (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal MSG As Long, \_
 ByVal wParam As Long, ByVal lParam As Long) As Long

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" \_
 (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) \_
 As Long


Private Type POINTAPI
 X As Long
 Y As Long
End Type

Private Type MOUSEHOOKSTRUCT
 pt As POINTAPI
 hWnd As Long
 wHitTestCode As Long
 dwExtraInfo As Long
End Type

Private Const WM\_MOUSEWHEEL = &H20A
Private Const WM\_MBUTTONUP = &H208
Private Const WM\_MBUTTONDOWN = &H207
Private Const WM\_MBUTTONDBLCLK = &H209
Private Const WM\_LBUTTONDOWN = &H201
Private Const WM\_LBUTTONUP = &H202

Private Const MK\_LBUTTON = &H1
Private Const MK\_MBUTTON = &H10
Private Const MK\_RBUTTON = &H2

Public Const WH\_MOUSE = 7
Private Const WHEEL\_DELTA = 120

Public Const GWL\_WNDPROC = -4

Dim hook As Long
Dim nKeys As Long, Delta As Long, XPos As Long, YPos As Long
Dim OriginalWindowProc As Long

Public Enum mButtons
 LBUTTON = &H1
 MBUTTON = &H10
 RBUTTON = &H2
End Enum

Public Function MouseProc(ByVal nCode As Long, ByVal wParam As Long, lParam As MOUSEHOOKSTRUCT) As Long
 Select Case nCode
 Case Is 

In deinem Program musst du noch folgendes einbinden, damit das Subclassing klappt :smile:



    
    Private Sub Form\_Load()
     Init Me
    End Sub
    
    Private Sub Form\_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Ende
    End Sub
    
    Private Sub Form\_Unload(Cancel As Integer)
    Ende
    End Sub




hier machst du nichts weiter wie beim starten das Subclassing initialisieren und GANZ WICHTIG , beim beenden deines programmes, das subclassing wieder beenden!

So ich hoffe ich konnte dir ein wenig weiterhelfen.

MFG Alex

Hi Alex,

ich such mal am WE nach 'ner Lösung.

Im Moment bastel ich gerade an etwas anderem. …
Mein sohn ärgert sich über einen unserer Rechner und ich habe ihm gesagt: ‚prüf mal Speicher und Platte‘. Speicher war kein Problem, aber ein Tool, das Herstellerunabhängig die Platte prüft, war nicht zu finden. Also wollte ich mit VB wenigstens mal einen Schreib/Lesetest über die gesamte Platte durchführen.
Leichter gesagt als getan, inzwischen habe ich einen Weg gefunden, die Sektoren der Platte zu lesen/schreiben und bastel noch an der Adressierung.
Vor dem WE wird das aber noch fertig. Ob’s zum Prüfen taugt, weiß ich noch nicht, zum ‚schreddern‘ wird’s allemal zu gebrauchen sein. Dann noch testen, ob’s zur Datenrettung zu gebrauchen ist. … Mal sehen, was ich noch alles damit anfange. :wink:

Am WE ist aber erst mal die Webcam dran.

Da zum Thema Datentransfer. … denk doch mal darüber nach, ob es Simm macht, JPGs zu übertragen, oder ob man schnell genug die Differenz zum alten Bild berechnen kann und nur die Veränderung sendet. Bei einer Webcam werden die Unterschiede von Bild zu Bild sicher nicht so groß sein. … am WE experimentiere ich dann ein wenig. :wink:

Gruß, Rainer

Hi
Hi nochmal,
das mit dem Steuerelement klingt gut, kann aber als Nichtuser nicht darauf zugreifen. Kannst du es mir per Mail schicken bitte.
Ich werde damit auf jeden Fall arbeiten, weil ich Farben in meinem Fall glaub ich ganz gut brauchen kann.

Zum Fall Mousewheel habe ich ein Bsp gefunden, was angeblich für alle Listenfelder funktionieren soll.
Werde es mal einbauen und testen.
Bei Interesse kann ich es dir mailen.
So kann ich vielleicht auch mal was im gegenzug für dich (euch) tun.

Mfg Werner

Hallo Werner,

mail mache ich gleich fertig :wink:
Hmm, das Bsp. was ich dir geschickt habe, tut das eigentlich auch. Du brauchst ja nur beim Maus Scroll je nach richtung mit

formname.Listname.Listindex =formname.Listname.Listindex + oder - 1 zu machen, aber halt zuvor prüfen ob das Listende erreicht ist :wink:

MFG Alex