German Views (Labels) in einer List

Paulsche

Well-Known Member
Licensed User
Longtime User
Views (Labels) in einer List bearbeiten

Hi, ich möchte im Programm das Ändern der Schriftfarbe von Feld-Labels und Daten-Labels per Variable ermöglichen.

Folgend würde es funktionieren, nur bräuchte ich mehrere Arrays, wo ich aber nicht weiß wie ich die zu einem Array zusammenfassen kann ohne es in einer Zeile unter bringen zu müssen.

Code: Copy
Dim lbl As Label
   Dim vw1(),vw2() As  View
   vw1 = Array As View(LBL00LetzteTankung,LBL00ExtTag,LBL00BeiTachostand,LBL00ExtKm,LBL00Literpreis)
   vw2 = Array As View(LBL00GefahreneTage,LBL00Tage,LBL00KMproTag,LBL00Ext2KM,LBL00ServiceTage)
   lbl = vw1(2)   ' Beispiel mit einem Label
   lbl.TextColor   = Colors.red

Array in einer Liste addieren wäre schöner, aber da bleibt Programm an roten Stelle hängen.
Code: Copy
Dim lst As List
   Dim lbl As Label
   lst.Initialize
   lst.Addall(Array As View(LBL00LetzteTankung,LBL00ExtTag,LBL00BeiTachostand,LBL00ExtKm,LBL00Literpreis))
   lst.Addall(Array As View(LBL00GefahreneTage,LBL00Tage,LBL00KMproTag,LBL00Ext2KM,LBL00ServiceTage))
   [COLOR="Red"]lbl = lst.Get(2)[/COLOR]   ' Beispiel mit einem Label
   lbl.TextColor   = Colors.Red

Was mache ich da falsch ?
Oder gibt es eine Möglichkeit in der Version 1 die Arrays (werden noch mehr werden) zu einem Array zu verknüpfen ?
 
Last edited:
Versuche ein mal folgenedes, Ich habe es nicht versucht.
Code: Copy
lst.Addall(Array As [COLOR=Red]Label[/COLOR](LBL00LetzteTankung,LBL00ExtTag,LBL00BeiTachostand,LBL00ExtKm,LBL00Literpreis))
lst.Addall(Array As [COLOR=Red]Label[/COLOR](LBL00GefahreneTage,LBL00Tage,LBL00KMproTag,LBL00Ext2KM,LBL00ServiceTage))
Beste Grüsse.
 
Hallo Paulsche,

ich denke so sollte es richtig sein:
Code: Copy
   Dim lst As List
   Dim lbl() As Label
   Dim lbl1 As Label
   lst.Initialize
   lst.Addall(Array As View(LBL00LetzteTankung,LBL00ExtTag,LBL00BeiTachostand,LBL00ExtKm,LBL00Literpreis))
   lst.Addall(Array As View(LBL00GefahreneTage,LBL00Tage,LBL00KMproTag,LBL00Ext2KM,LBL00ServiceTage))
   lbl = lst.Get(1)   ' Beispiel mit einem Label
   lbl1=lbl(2) 'LBL00KMproTag
   lbl1.TextColor   = Colors.Red

Ich habe aber selbst noch nicht probiert.

Ciao,
Filippo
 
hi, geht leider beides nicht, hm, denke dann geht es mit LIST nicht,
dann muss ich es irgendwie mit Arrays machen,

ODER

es gibt doch die Möglichkeit alle Views (nur Labels) in einer Schleife zu durchlaufen, aber kann man dabei die Labelnamen die z.B. mit "LBL00dat" beginnen abzufragen um die herauszufiltern ?

Hab nicht herausgefunden wie ich die Labelnamen abfragen kann.
 
Hallp Paulsche,
Folgender code funktioniert:
Code: Copy
Sub Globals
    Dim ll() As Label
    Dim lbl0, lbl1, lbl2, lbl3 As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
    lbl0.Initialize("lbl0")
    lbl1.Initialize("lbl1")
    lbl2.Initialize("lbl2")
    lbl3.Initialize("lbl3")
    
    ll = Array As Label(lbl0, lbl1, lbl2, lbl3)
    
    For i = 0 To ll.Length - 1
        Dim lbl As Label
        lbl.Initialize("")
        lbl = ll(i)
        Activity.AddView(lbl,10dip, 10dip + i * 60dip, 150dip, 50dip)
        lbl.Color = Colors.White
        lbl.Text = "Test " & i
        lbl.TextColor = Colors.Blue
    Next
End Sub

Sub lbl1_Click
    ll(0).TextColor = Colors.Red
    ll(2).TextColor = Colors.Red
End Sub
Beste Grüsse.
 
Danke Klaus,

ja, das ist ja die Version 1 von meinem Beispiel,
die for-next Schleife hatte ich halt weggelassen.
Mit Arrays funktioniert es ja, nur hab ich sehr viele Labels, so dass die
Declaration nicht in einer Zeile möglich ist,
daher muss ich dann mehrere Arrays nehmen, und dann halt für jedes eine
eigene Schleife benutzen.

Ich denke so werd ich das dann auch machen.

Danke euch für die schnellen Beispiele.
 
Last edited:
So hab ich es jetzt für die erste Maske gemacht und es funktioniert,
sind halt mehrere Schleifen.
Aber besser als jedes Label einzeln zu bearbeiten.

Code: Copy
Sub init_Design                                                   ' Schrift- und Hintergrundfarben setzen
   Dim lbl() As Label
   lbl = Array As Label(LBL00LetzteTankung,LBL00ExtTag,LBL00BeiTachostand,LBL00ExtKm,LBL00Literpreis,LBL00ExtEUR,LBL00Aktverbrauch,LBL00SchnittVerbrauch,LBL00ExtLiter100KM,LBL00Ext1Liter100KM)
   For i = 0 To lbl.Length -1
      Dim lab As Label
      lab            = lbl(i)
      lab.TextColor   = Colors.blue
   Next

   lbl   = Array As Label(LBL00GefahreneKM,LBL00Ext1KM,LBL00GefahreneTage,LBL00Tage,LBL00KMproTag,LBL00Ext2KM,LBL00ServiceKM,LBL00ServiceTage,LBL00Ext3KM,LBL00Tankvorgaenge,LBL00ExtStk,LBL00Ext1Tage,LBL00Tankart)
   For i = 0 To lbl.Length -1
      Dim lab As Label
      lab            = lbl(i)
      lab.TextColor   = Colors.blue
   Next

   lbl   = Array As Label(LBL00datLetzteTankung,LBL00datBeiTachostand,LBL00datLiterpreis,LBL00datAktVerbrauch,LBL00datSchnittVerbrauch,LBL00datGefahreneKM,LBL00datGefahreneTage,LBL00datKMproTag,LBL00datServiceTage,LBL00datServiceKM,LBL00datTankart,LBL00datTankvorgaenge)
   For i = 0 To lbl.Length -1
      Dim lab As Label
      lab            = lbl(i)
      lab.TextColor   = Colors.Green
   Next
   
End Sub
 
aaahh, Klaus, danke, wusste ich gar nicht :BangHead: !!!

Das hilft natürlich sehr. :icon_clap:
 
Back
Top