![]() |
Eine Schleife für die Labels mit Variablenzuordnung(Array)?
Ich habe jetzt schon eine versuche hintermir, haber wie schaffe ich es unten den Text zsammenzufassen?
die Lange Form
Delphi-Quellcode:
Mein Fehlgeschlagener versuch, da ändert sich im Label gar nix:
Form1.Label192.Caption:= IntToStr(Counte[0]) ;
Form1.Label193.Caption:= IntToStr(Counte[1]) ; Form1.Label194.Caption:= IntToStr(Counte[2]) ; Form1.Label195.Caption:= IntToStr(Counte[3]) ; Form1.Label196.Caption:= IntToStr(Counte[4]) ; Form1.Label197.Caption:= IntToStr(Counte[5]) ; Form1.Label198.Caption:= IntToStr(Counte[6]) ; Form1.Label199.Caption:= IntToStr(Counte[7]) ; Form1.Label200.Caption:= IntToStr(Counte[8]) ; Form1.Label201.Caption:= IntToStr(Counte[9]) ;
Delphi-Quellcode:
begin
for x:=0 to 9 do for i:=192 to 201 do (FindComponent('form1.Label'+IntToStr(i)) as TLabel).Caption:=IntToStr(Counte[x]); |
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
Hi.
Die innere Schleife wird ja 10x durchlaufen... ;-) Besser so:
Delphi-Quellcode:
//edit: So ein blöder Programmierfehler... :wall:
for i:=0 to 9 do
(FindComponent('Label'+IntToStr(i + 192)) as TLabel).Caption:=IntToStr({ edit: NICHT Counte[x], sondern} Counte[i]); |
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
Nein, die Labels
funktionieren auch nicht bei
Delphi-Quellcode:
(FindComponent('form1.Label'+IntToStr(i)) as TLabel).Caption:=IntToStr(Counte[x]);
|
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
Könnte es vielleicht am Counte[x] liegen? Einfach mal mit i versuchen. Bei mir funktioniert es mit i.
MfG freak |
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
Also so sieht der Spass ganz aus, wo ich die Labels einzeln angegangen bin(siehe oben) hats geklappt
Delphi-Quellcode:
begin
for i:=0 to 9 do Counte[i]:=0; for pl0 := Form1.Anzeige.count-1 DownTo 0 do begin if StrToInt(Form1.Anzeige.Items[pl0]) in [0,10,20,30] then Counte[0] := 0 else Inc(Counte[0]); if StrToInt(Form1.Anzeige.Items[pl0]) in [1,11,21,31] then Counte[1] := 0 else Inc(Counte[1]); if StrToInt(Form1.Anzeige.Items[pl0]) in [2,12,22,32] then Counte[2] := 0 else Inc(Counte[2]); if StrToInt(Form1.Anzeige.Items[pl0]) in [3,13,23,33] then Counte[3] := 0 else Inc(Counte[3]); if StrToInt(Form1.Anzeige.Items[pl0]) in [4,14,24,34] then Counte[4] := 0 else Inc(Counte[4]); if StrToInt(Form1.Anzeige.Items[pl0]) in [5,15,25,35] then Counte[5] := 0 else Inc(Counte[5]); if StrToInt(Form1.Anzeige.Items[pl0]) in [6,16,26,36] then Counte[6] := 0 else Inc(Counte[6]); if StrToInt(Form1.Anzeige.Items[pl0]) in [7,17,27] then Counte[7] := 0 else Inc(Counte[7]); if StrToInt(Form1.Anzeige.Items[pl0]) in [8,18,28] then Counte[8] := 0 else Inc(Counte[8]); if StrToInt(Form1.Anzeige.Items[pl0]) in [9,19,29] then Counte[9] := 0 else Inc(Counte[9]); (FindComponent('form1.Label'+IntToStr(i+192)) as TLabel).Caption:=IntToStr(Counte[i]); end; end; @ freak4fun , nee das will auch nicht funken |
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
Hier mein Code.
Delphi-Quellcode:
Poste doch mal deinen Versuch, mit zusammenfassung.
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer; begin for i := 1 to 5 do (FindComponent('Label'+IntToStr(i)) as TLabel).Caption := IntToStr(47); end; MfG freak |
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
@freak4fun
Du hast rechts einen "stabilen Wert", was bei mir ja nicht der Fall ist, diese Array will nicht harmonieren mit meinem zeugs. |
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
Delphi-Quellcode:
else Inc(Counte[9]);
(FindComponent('form1.Label'+IntToStr(i+192)) as TLabel).Caption:=IntToStr(Counte[i]); end; Das i scheint mit undefiniert. Das ist kein Schleifenzähler mehr, einfach ein fester Wert. Was bekommst du denn als ergebnis? MfG freak |
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
meinst Du so
Delphi-Quellcode:
begin
i:=0 ; for i:=0 to 9 do Counte[i]:=0; aber wird i nicht durch
Delphi-Quellcode:
definiert?
for i:=0 to 9 do
|
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
Zitat:
MfG freak |
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
1. Wenn du dich schon in einer Methode von TForm1 befindest, kannst du Form1 weglassen. Dann bekommst du auch keine Probleme bei mehreren Instanzen.
2. "Counte": soll das nicht Counter heißen :wink: ? 3. Das lässt sich extrem verkürzen:
Delphi-Quellcode:
[edit]So sollte es stimmen:
var s: string;
begin for i := 0 to Anzeige.Count - 1 do begin s := Anzeige.Items[i]; case s[Length(s)] of '0'..'6': if StrToInt(s) < 40 then Inc(Counte(StrToInt(s[Length(s)]))) else Counte(StrToInt(s[Length(s)])) := 0; '7'..'9': if StrToInt(s) < 30 then Inc(Counte(StrToInt(s[Length(s)]))) else Counte(StrToInt(s[Length(s)])) := 0; end; end; for i := 0 to 9 do (FindComponent('Label'+IntToStr(i+192)) as TLabel).Caption:=IntToStr(Counte[i]);
Delphi-Quellcode:
Gut, das mit dem Boolean zu Integer ist etwas verkünstelt, ich war zu faul, noch ein case einzufügen :wink: .
for i := 0 to Anzeige.Count - 1 do
begin s := Anzeige.Items[i]; Index := StrToInt(s[Length(s)]); for ii := 0 to 9 do if (Index = ii) and (Counte[Index] < 30 + Integer(Index <= 6) * 10) then Inc(Counte[Index]) else Counte[Index] := 0; end; |
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
@Khabarakh
hab das probiertt, funkt nich
Delphi-Quellcode:
hab das probiert funkt nich
begin
for i := 0 to Form1.Anzeige.Count - 1 do begin s := Form1.Anzeige.Items[i]; case s[Length(s)] of '0'..'6': if StrToInt(s) < 40 then Inc(Counte[StrToInt(s[Length(s)])]) else Counte[StrToInt(s[Length(s)])] := 0; '7'..'9': if StrToInt(s) < 30 then Inc(Counte[StrToInt(s[Length(s)])]) else Counte[StrToInt(s[Length(s)])] := 0; end; end; for i := 0 to 9 do (FindComponent('Label'+IntToStr(i+192)) as TLabel).Caption:=IntToStr(Counte[i]); end;
Delphi-Quellcode:
P.S. können wir uns auf diese Zeile einigen, denn hier muss der Fehler liegen
var index,ii,i:integer;
begin for i := 0 to form1.Anzeige.Count - 1 do begin s := Form1.Anzeige.Items[i]; Index := StrToInt(s[Length(s)]); for ii := 0 to 9 do if (Index = ii) and (Counte[Index] < 30 + Integer(Index <= 6) * 10) then Inc(Counte[Index]) else Counte[Index] := 0; for x:= 0 to 9 do ( FindComponent('Label'+IntToStr(x+192)) as TLabel).Caption:=IntToStr(Counte[x]); end; end;
Delphi-Quellcode:
( FindComponent('Label'+IntToStr(x+192)) as TLabel).Caption:=IntToStr(Counte[x]);
Delphi-Quellcode:
P.S. hier hieß es nicht Counter weil ich hier den Counter schon als normale Variable vergeben habe
|
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
Zitat:
Was funktioniert denn nicht? Kommt eine Fehlermeldung? |
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
Liste der Anhänge anzeigen (Anzahl: 1)
@Sharky es gibt keine Fehlermelung
So hab jetzt mal mein Beispielprogramm so eingestellt das es genau den Fehler macht Die 10 Zahlen rechts unten sollen die Counter darstellen die eigenlich Zählen müssten |
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
Liste der Anhänge anzeigen (Anzahl: 1)
Hai,
warum hast Du denn die Methode Addmyitem bei deiner Form2 deklariert wenn Du sie doch nur in Form1 benutzt. Das problem liegt aber an dem FindComponent. Es findet die Labels nicht auf der Form1. Ich habe das ganze mal etwas umgeschrieben. Schaue Dir vor allem mal mein Set of Byte an ;-) |
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
@Sharky
Ich danke Dir, bin ja ect begeistert von dem Ergebnis, Das mit der 2 Unit war eine Fehlgeschlagene Probe, ich wollte sehen ob ich dadurch ´das Programm schneller wird |
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: Eine Schleife für die Labels mit Variablenzuordnung(Arra
Super sharky. :thumb:
MfG freak |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz