Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Casefälle....mehr als eine Aktion
van RanDahlE - So 02.12.07 12:09
Titel: Casefälle....mehr als eine Aktion
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| z:=4; case Random(z) of 0:(xxx.left:=96) and (xxx.Top:=64); 1:(xxx.left:=192) and (xxx.Top:=64); 2:(xxx.left:=296) and (xxx.Top:=64); 3:(xxx.left:=400) and (xxx.Top:=64); 4:(xxx.left:=96) and (xxx.Top:=152); . . . end; |
der sagt mir : Operator not applicable to this operand type
...im Grunde soll der nur durch Zufall ein Imageobjekt verschieben..kann mir wer sagen was ich da falsch mache oder mir ne Alternative aufzeigen?
Moderiert von
Christian S.: Delphi-Tags hinzugefügt
Fabian E. - So 02.12.07 12:25
van RanDahlE hat folgendes geschrieben: |
z:=4;
case Random(z) of
0:(xxx.left:=96) and (xxx.Top:=64);
1:(xxx.left:=192) and (xxx.Top:=64);
2:(xxx.left:=296) and (xxx.Top:=64);
3:(xxx.left:=400) and (xxx.Top:=64);
4:(xxx.left:=96) and (xxx.Top:=152);
.
.
.
end;
der sagt mir : Operator not applicable to this operand type
...im Grunde soll der nur durch Zufall ein Imageobjekt verschieben..kann mir wer sagen was ich da falsch mache oder mir ne Alternative aufzeigen? |
Der operator "and" ist ein logischer operator. er dient dir z.b. in if-abfragen dazu, mehrere Werte abzufragen :
Delphi-Quelltext
1: 2: 3:
| If (a = 5) and (b = 3) then blub... |
gruß
Horst_H - So 02.12.07 12:57
Hallo,
vielleicht ist mehr eine einfache Zuweisung gemeint und kein logischer Vergleich.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| case Random(z) of 0: begin xxx.left:=96; xxx.Top:=64; end; 1:begin..
end;Altenativ With XXX do begin case Random(z) of 0: begin left:=96; Top:=64; end; 1: begin ....
end; end; |
Zorro - Fr 07.12.07 18:43
Titel: Re: Casefälle....mehr als eine Aktion
van RanDahlE hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| z:=4; case Random(z) of 0:(xxx.left:=96) and (xxx.Top:=64); 1:(xxx.left:=192) and (xxx.Top:=64); 2:(xxx.left:=296) and (xxx.Top:=64); 3:(xxx.left:=400) and (xxx.Top:=64); 4:(xxx.left:=96) and (xxx.Top:=152); . . . end; |
der sagt mir : Operator not applicable to this operand type
|
Der "and" Operator dient NICHT dazu, mehrere Befehle zu verknüpfen - dazu gibts begin und end.
Greetz
Zorro
Atreyu - Fr 07.12.07 19:46
Genau, wenn man begin und end hat, wozu dann noch "and". Ich glaube, viele lassen sich von mehreren Zeilen einschüchtern, man ist oft im Glauben, alles hinter einer Case-Zuweisung müsste in einer Zeile passieren.
Sinspin - Fr 07.12.07 20:17
AND findet sich immer nur bei logischen Verknüpfungen.
So wie sie Beispielsweise in einer einfachen Verzweigung:
Delphi-Quelltext
1: 2:
| IF (a = 1) AND (b = 1) THEN c := 2; |
oder einen Schleifenabbruch:
Delphi-Quelltext
1: 2: 3: 4:
| WHILE (Sonne = 'scheint') AND (bernd = 'schläft') DO BEGIN Spielen; END; |
oder bei einer logischen Zuweisung:
Delphi-Quelltext
1:
| result := a AND b AND c; |
In deinem Fall würde das dann wohl eher so aussehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| z:=4; case Random(z) of 0 : begin xxx.left:=96; xxx.Top:=64; end; . . . end; |
Wobei das mit deinem "z := 4" eh nicht ganz klappt.
Denn der Bereich, in dem sich die von Random() gelieferte Zahl befindet geht von 0..3! Also von 0..z-1.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!