Entwickler-Ecke
Programmierwerkzeuge - Warnings werden Grundlos(?) angezeigt
hallo - Do 18.08.05 18:02
Titel: Warnings werden Grundlos(?) angezeigt
Hallo,
also einige komische Warnings werden im Quelltext bei mir angezeigt:
| Zitat: |
| [Warning] unit1.pas(1220): Comparison always evaluates to True |
Der Quelltext:
Delphi-Quelltext
1: 2: 3:
| ... if (numlock>=0)AND(numlock<=2)then ... |
Also numlock ist vom Typ byte! Das wird im Quelltext Global definiert, und ändert such eben nach der zeit.
Aber warum ist es dann immer true? Byte geht ja von 0 bis 255. Und bei 5 zB. würde es false ergeben...
Und nochwas:
| Zitat: |
| [Hint] unit1.pas(1326): Value assigned to 'TForm1.keysvalues' never used |
Der Quelltext schaut in ungefähr so aus:
Quelltext
1: 2: 3: 4: 5:
| ... result:=TStringList; ... result:=kv; ... |
So wird die Funktion aufgerufen:
z.B.
Was ist da nicht used?
Die beiden Fehler sind mit etwas unklar...
SMO - Do 18.08.05 18:11
Titel: Re: Warnings werden Grundlos(?) angezeigt
hallo hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3:
| ... if (numlock>=0)AND(numlock<=2)then ... |
Also numlock ist vom Typ byte! Das wird im Quelltext Global definiert, und ändert such eben nach der zeit.
Aber warum ist es dann immer true? Byte geht ja von 0 bis 255. Und bei 5 zB. würde es false ergeben... |
Die Warnung bezieht sich nicht auf die Zeile als ganzes sondern nur den ersten Vergleich. Wie du selbst sagst, ein Byte geht von 0..255, ist also immer größer oder gleich 0. Damit ist
(numlock>=0) überflüssig.
if (numlock<=2)then genügt.
| Zitat: |
Und nochwas:
| Zitat: | | [Hint] unit1.pas(1326): Value assigned to 'TForm1.keysvalues' never used |
Der Quelltext schaut in ungefähr so aus:
Quelltext 1: 2: 3: 4: 5:
| ... result:=TStringList; ... result:=kv; ... | |
Das sollte doch klar sein. Du weist Result einen Wert zu (TStringList... was meinst du eigentlich damit?), der im Weiteren nicht benutzt wird. Dann überschreibst du Result mit einem neuen Wert (kv). Die erste Zuweisung kannst du dir also genausogut sparen.
Delete - Do 18.08.05 18:14
Titel: Re: Warnings werden Grundlos(?) angezeigt
[quote="
hallo"]
Delphi-Quelltext
1: 2: 3:
| ... if (numlock>=0)AND(numlock<=2)then ... |
Guck dir mal den Kompilerschalte {$B} an.
Quelltext
1: 2: 3: 4: 5:
| ... result:=TStringList; ... result:=kv; ... |
Delphi-Quelltext
1: 2: 3: 4:
| result := 5; ...; ...; result := 10; |
Die erste Zuweisung ist überflüssig, da die Funktion wohl nie mit dem Wert 5 verlassen wird, da du zum Schluss immer 10 zu weist.
hallo - Do 18.08.05 18:14
Oh, da hab ich das falsch abgetippt: es ´Muss TStringList.create; heißen...
Aber ohne create gibt es eine Access Violation!
Das erste wurde mir aber klar! DANKE!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!