Autor Beitrag
Genei
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 20.12.07 01:11 
bekomme in den zeilen 46, 46, 49, 49, 65, 65, 65, 65, 66, 66, 66, 66 und 74 den fehler array-typ erforderlich.
habe schon gegrübelt komme aber nicht darauf wie ich ihn beheben kann.
mir würde schon ein kleines beispiel an einer zeile reichen, da ich denke, dass ich ihn dann auch auf die anderen zeilen übertragen kann.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, jpeg;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    procedure FormCreate(Sender: TObject);
    procedure Image1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  zweitekarte: boolean = true;
  karte1, karte2: integer;
  karte: array [1..3of string;
  position: array [1..6of integer;
  deckblatt1, deckblatt2: string;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var anzahl, k, zufall, nummer: integer;
    karte: array [1..6of string;
begin

randomize;
 while anzahl > 0 do
  begin
   zufall := random(anzahl)+1;
   nummer[anzahl] := position[zufall];
  for k := zufall to anzahl-1 do
   begin
    position[k] := position[k+1];
   end;
  anzahl := anzahl -1;
 end;

 image1.Picture.LoadFromFile('images/hansawappen.jpg');
 image2.Picture.LoadFromFile('images/hansawappen.jpg');
 image3.Picture.LoadFromFile('images/hansawappen.jpg');
 image4.Picture.LoadFromFile('images/hansawappen.jpg');
 image5.Picture.LoadFromFile('images/hansawappen.jpg');
 image6.Picture.LoadFromFile('images/hansawappen.jpg');

 karte[1]:= 'images/spieler1.jpg';
 karte[2]:= 'images/spieler2.jpg';
 karte[3]:= 'images/spieler3.jpg';

 position[1]:= 1; position[2]:= 2; position[3]:= 3;
 position[4]:= 3; position[5]:= 2; position[6]:= 1;
end;

procedure TForm1.image1Click(Sender: TObject);
var i, k: integer;
begin
zweitekarte:= not(zweitekarte);
i:= strtoint(timage(sender).name[6]); showmessage('position_'+inttostr(i)+' gedrückt');
timage(sender).Picture.LoadFromFile(karte[position[i]]);
deckblatt1:= timage(sender).name; showmessage('deckblatt1'+'wurde ausgewählt');

if zweitekarte
  then begin
   karte1:= i;
   deckblatt1:= timage(sender).Name;
  end
 else begin
  karte2:= i;
  deckblatt2:= timage(sender).name;
 end;

if zweitekarte
 then
  if position[karte1] <> position[karte2]
   then
    begin
    messagedlgpos('gesehn?', mtconfirmation, mbyesnocancel, 0400400);
     for k:=0 to componentcount-1 do
      if (timage(components[k]).name=deckblatt1) or (timage(components[k]).name=deckblatt2)
       then timage(components[k]).Picture.LoadFromFile('hansawappen.jpg');
      end
  // else
end;

end.



mfg..
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Do 20.12.07 01:26 
In der Zeile 46 steht z.B.

ausblenden Delphi-Quelltext
1:
nummer[anzahl] :=					


nummer ist nur ein Integer, allerdings versuchst du es als Array zu nutzen.

Den Rest habe ich nicht geprüft, wird aber auch sowas in der Richtung sein.

_________________
Popov
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Do 20.12.07 03:22 
nächster fehler.
anzahl ist als var in FormCreate erstellt.
Anzahl wurde kein wert vor der benutzung zugewiesen.
du arbeitest also mit einem wert der grad zufällig in dem speicherbereich stand auf den die var zugewiesen wurde.

das selbe in zeile 49
ausblenden Delphi-Quelltext
1:
position[k] := position[k+1];					


position wurde global deklariert. daher ist das array mit 0en vorinitialisiert.
da der inhalt aber nicht geändert wurde, schiebst du hier nur 0en durch die gegend.

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.