- Registriert
- Sep. 2005
- Beiträge
- 467
Hallo,
ich habe ein Problem und finde einfach die Ursache dafür nicht. Ich habe eine relativ simple Schleife, die einwandfrei funktioniert, jedoch möchte ich die Schleife in einer Funktion haben, damit ich sie einfach später im Programm benutzen kann wann ich möchte. Ich habe keinerlei Veränderungen an der Schleife vorgenommen, sondern sie einfach nur in eine Funktion deklariert, aber es funktioniert einfach nicht mehr sobald ich das mache, ich habe:
So funktioniert es, wenn ich dann aber die Schleife in eine Funktion schreibe:
dann geht es auf einmal nicht mehr. Und zwar habe ich versucht mir durch Write-Host immer zwischenwerte zu liefern und der erste Durchlauf der Schleife läuft noch durch, aber beim 2ten Durchgang gibt es dann immer bei der Zeile
folgende Fehlermeldung:
"Fehler beim Aufrufen der Methode, da [System.Windows.Forms.Label] keine Methode mit dem Namen "op_Addition" enthält.
In C:\Powershell\test.ps1:55 Zeichen:9
+ $labelarray1 += $a
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (op_Addition:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound"
Diese Variable ist ein array und ich habe das auch an verschiedenen Stellen im Script so deklariert: $script:labelarray1 = @()
Es ist aber egal wo ich das mache, es funktioniert trotzdem nicht. Es muss aber irgendwas mit dem Array zu tun haben, da es ja anscheinend erst beim hinzufügen eines weiteren Objekts Probleme macht.
Ich verstehe halt nicht warum es ohne Funktion einwandfrei geht und in der Funktion dann nicht mehr, ohne das irgendwo sonst was geändert wurde.
ich habe ein Problem und finde einfach die Ursache dafür nicht. Ich habe eine relativ simple Schleife, die einwandfrei funktioniert, jedoch möchte ich die Schleife in einer Funktion haben, damit ich sie einfach später im Programm benutzen kann wann ich möchte. Ich habe keinerlei Veränderungen an der Schleife vorgenommen, sondern sie einfach nur in eine Funktion deklariert, aber es funktioniert einfach nicht mehr sobald ich das mache, ich habe:
Code:
for ($i = 0; $i -lt $valhddTemp.Count; $i++)
{
$top=$top+20
$a = $labelHDD[$i]
$a = New-Object "System.Windows.Forms.Label"
$a.Top = $top
$a.Left = 137
$a.TextAlign = "MiddleLeft"
$a.Height = 20
$a.Width = 55
$labelarray1 += $a
$form.Controls.Add($labelarray1[$i])
}
So funktioniert es, wenn ich dann aber die Schleife in eine Funktion schreibe:
Code:
function createlabel
{
schleife
}
dann geht es auf einmal nicht mehr. Und zwar habe ich versucht mir durch Write-Host immer zwischenwerte zu liefern und der erste Durchlauf der Schleife läuft noch durch, aber beim 2ten Durchgang gibt es dann immer bei der Zeile
Code:
$labelarray1 += $a
"Fehler beim Aufrufen der Methode, da [System.Windows.Forms.Label] keine Methode mit dem Namen "op_Addition" enthält.
In C:\Powershell\test.ps1:55 Zeichen:9
+ $labelarray1 += $a
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (op_Addition:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound"
Diese Variable ist ein array und ich habe das auch an verschiedenen Stellen im Script so deklariert: $script:labelarray1 = @()
Es ist aber egal wo ich das mache, es funktioniert trotzdem nicht. Es muss aber irgendwas mit dem Array zu tun haben, da es ja anscheinend erst beim hinzufügen eines weiteren Objekts Probleme macht.
Ich verstehe halt nicht warum es ohne Funktion einwandfrei geht und in der Funktion dann nicht mehr, ohne das irgendwo sonst was geändert wurde.
Zuletzt bearbeitet: