Autor Beitrag
Dave_Bowman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Sa 15.05.04 17:43 
Hallo,

mein Problem ist folgendes:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
type
  tStein = record
    X: smallint;
    Y: smallint;
    unten: boolean;
    laenge: smallint;
    mark: char;
  end;
  tAlleSteine = array[1..13] of tStein;

  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Steine: tAlleSteine;
  arSteine: array of tAlleSteine;


Später definiere (und fülle) ich noch 'ne Variable tempSteine als tAlleSteine, um dann nachzusehen, ob dieses Array tempSteine bereits in dem dynamischen Array von Arrays arSteine enthalten ist. Meiner Meinung nach hätte das doch mit
ausblenden Delphi-Quelltext
1:
if tempSteine = arSteine[i] then					

klappen müssen. Tut es aber nicht. Ich kriege den fehler, dass "dieser Operator auf diesen Operandentyp nicht anwendbar ist".

Was mache ich falsch? Kann mir jemand helfen, wie ich es besser mache?
Vielen Dank ...


Dave

Moderiert von user profile iconMotzi: Code- durch Delphi-Tags ersetzt.
Default112
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 76

Win XP
D6 Prof
BeitragVerfasst: So 16.05.04 11:39 
wenn ich das richtig sehe, hast du ein Array aus Arrays, das heisst du musst sie auch so behandeln:

ausblenden Delphi-Quelltext
1:
FOR x := 1 TO .. DO IF tempSteine[x] = arSteine[i[x]] THEN ..					


Ist nicht wirklich eine Lösung des Kernproblems, sollte aber funktioniere, gebe aber keine Garantie, is ausm Kopf :wink:
Dave_Bowman Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: So 16.05.04 12:28 
Vielen Dank schonmal für die Antwort, Default112. Das werde ich gleich mal ausprobieren.
Aber kann ich denn prinzipiell nicht auch Arrays direkt miteinander vergleichen? Oder muss ich hierfür immer "nur" deren Komponenten der Reihe nach vergleichen?

Hab es gerade mal ausprobiert:
ausblenden Delphi-Quelltext
1:
if tempSteine[1] = arSteine[i][1] then					

und es geht leider auch nicht. Inkompatible Typen (was ich ja nun gar nicht verstehe) und "Operator nicht anwendbar". Ich kapier das nicht. Sind doch die gleichen Typen! Oder übersehe ich was?

Dave
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: So 16.05.04 13:34 
Mit CompareMem kannst du Records vergleichen, solange sie keine Strings, Pointer, dynamische Arrays, Klassen u.ä. enthalten.