Thema Datum  Von Nutzer Rating
Antwort
Rot Objekte neu Positionieren
05.02.2016 15:05:28 zm3k
Solved
05.02.2016 16:26:48 Gast53790
NotSolved
05.02.2016 21:47:11 Gast72223
NotSolved
06.02.2016 00:37:08 Gast76230
NotSolved
06.02.2016 11:18:22 Gast54793
Solved

Ansicht des Beitrags:
Von:
zm3k
Datum:
05.02.2016 15:05:28
Views:
1179
Rating: Antwort:
 Nein
Thema:
Objekte neu Positionieren

Hello!

 

Ich habe ein Problem und zwar :

 

Ich kann mit einen Button dynamisch erzeugte Objekte erstellen, kurz gesagt ich gebe eine Zahl ein und und die Anzahl der Objekte werden erstellt.

Weiters kann ich die Objekte auch mittels einer Checkbox anklicken und diese dann über einen anderen Button löschen.

Nun zum eigentlichen Problem, ich möchte das die Objekte die nicht gelöscht wurden sich neu Positionieren bekomme das aber nicht hin.

Hier mal mein Code :

Public Sub CommandButton4_Click()
Dim e As Integer
Dim s As Integer
Dim löschnr() As Integer
Dim zähler As Integer


ReDim löschnr(1 To u) 
For e = 1 To u          'Variable u ist als Global deklariert und steht in einem Sub ist die Anzahl der erzeugten Elemente

If Me.CheckBox6 = True Then 'is ne checkbox ob objekte erstellt worden sind




Exit Sub
Else
If Controls("cb_gegner" & e) = True Then 'ist die checkbox die sagt ob die objekte in der reihe geköscht wertden sollen
löschnr(e) = e 'war eine idee die ignoert werden kann
MsgBox löschnr(e)  ' das selbe wie oben
Controls.Remove (gegnername & e)
Controls.Remove ("tb_angriff_ge_1" & e)
Controls.Remove ("tb_angriff_be_1" & e)
Controls.Remove ("tb_schaden_ge_1" & e)
Controls.Remove ("tb_schaden_be_1" & e)
Controls.Remove ("cb_gegner" & e)
Controls.Remove ("lb_würfel" & e)
Controls.Remove ("lb_würfel1" & e)
Controls.Remove ("1ertxt" & e)
Controls.Remove ("1er" & e)
Controls.Remove ("9er" & e)
Controls.Remove ("10er" & e)
End If
End If

Next e    'löschforgang funktionert 
e = e - 1
For s = 1 To u
 

On Error GoTo nächstesobj:  'da objekte nicht mehr da sind soll ein error kommen und übersprungen werden
 
'If Controls(gegnername & s).Name = Controls(gegnername & 1).Name Then
'GoTo nächstesobj1:
'End If
Controls(gegnername & s).Top = -12 'das soll die neue position sein da muss ich mich noch angeben welche höhe 
MsgBox Controls("tb_angriff_ge_1" & s).Top
Controls("tb_angriff_be_1" & s).Top = Top - 12
Controls("tb_schaden_ge_1" & s).Top = Top - 12
Controls("tb_schaden_be_1" & s).Top = Top - 12
Controls("cb_gegner" & s).Top = Top - 12   'checkbox ob gelscht werden soll
Controls("lb_würfel" & s).Top = Top - 12  'Angriffswurf
Controls("lb_würfel1" & s).Top = Top - 12 'schadenswurf
Controls("1ertxt" & s).Top = Top - 12
Controls("1er" & s).Top = Top - 12 + 4
Controls("9er" & s).Top = Top - 12
Controls("10er" & s).Top = Top - 12

Controls(gegnername & s).Name = gegnername & u - 1
Controls("tb_angriff_ge_1" & s).Name = "tb_angriff_ge_1" & u - 1
Controls("tb_angriff_be_1" & s).Name = "tb_angriff_be_1" & u - 1
Controls("tb_schaden_ge_1" & s).Name = "tb_schaden_ge_1" & u - 1
Controls("tb_schaden_be_1" & s).Name = "tb_schaden_be_1" & u - 1
Controls("cb_gegner" & s).Name = "cb_gegner" & u - 1  'checkbox ob gelscht werden soll
Controls("lb_würfel" & s).Name = "lb_würfel" & u - 1  'Angriffswurf
Controls("lb_würfel1" & s).Name = "lb_würfel1" & u - 1  'schadenswurf
Controls("1ertxt" & s).Name = "1ertxt" & u - 1
Controls("1er" & s).Name = "1er" & u - 1
Controls("9er" & s).Name = "9er" & u - 1
Controls("10er" & s).Name = "10er" & u - 1
nächstesobj:

zähler = zähler + 1   'war eine idee die zählt ob ein objekt gelöscht worden ist um später die höhe zu ermitteln doch so weit binh ich nicht gekommen

nächstesobj1:

Next s
u = u - 1

If e = u Then
Exit Sub

End If

End Sub

Vielleicht kann mir wer helfen ich bin mit meinen kleinen Wissen am Ende

 

Danke und LG zm3k


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Objekte neu Positionieren
05.02.2016 15:05:28 zm3k
Solved
05.02.2016 16:26:48 Gast53790
NotSolved
05.02.2016 21:47:11 Gast72223
NotSolved
06.02.2016 00:37:08 Gast76230
NotSolved
06.02.2016 11:18:22 Gast54793
Solved