Autor Beitrag
Silence
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 58

Win XP Prof
Delphi 7
BeitragVerfasst: Sa 25.03.06 10:50 
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:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    XML: TXMLDocument;
    Label1: TLabel;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    procedure FormCreate(Sender: TObject);
    procedure Panel1Click(Sender: TObject);
    procedure Panel2Click(Sender: TObject);
    procedure Panel3Click(Sender: TObject);
    procedure Panel4Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    procedure zuweisen;
  end;

var
  Form1: TForm1;
  i: integer;

implementation


{$R *.dfm}

procedure zufall();
begin
 (* Generieren der Zufallszahl*)
 randomize;
 i := random(4);
end;

procedure TForm1.zuweisen();
begin
 form1.panel1.Visible := true;
 form1.panel2.Visible := true;
 form1.panel3.Visible := true;
 form1.panel4.Visible := true;
 form1.Panel1.Color := clBtnFace;
 form1.Panel2.Color := clBtnFace;
 form1.Panel3.Color := clBtnFace;
 form1.Panel4.Color := clBtnFace;
 form1.label1.Caption := form1.xml.DocumentElement.ChildNodes['content'].ChildNodes['frage' + inttostr(i)].ChildNodes['frage'].Text;
 form1.panel1.Caption := form1.xml.DocumentElement.ChildNodes['content'].ChildNodes['frage' + inttostr(i)].ChildNodes['a'].Text;
 form1.panel2.Caption := form1.xml.DocumentElement.ChildNodes['content'].ChildNodes['frage' + inttostr(i)].ChildNodes['b'].Text;
 form1.panel3.Caption := form1.xml.DocumentElement.ChildNodes['content'].ChildNodes['frage' + inttostr(i)].ChildNodes['c'].Text;
 form1.panel4.Caption := form1.XML.DocumentElement.ChildNodes['content'].ChildNodes['frage' + inttostr(i)].ChildNodes['d'].Text;
end;

procedure init();
begin
 form1.xml.FileName := 'data.xml';
 form1.xml.LoadFromFile(form1.xml.FileName);
 form1.xml.Active := true;
 form1.Caption := form1.xml.DocumentElement.ChildNodes['settings'].childnodes['title'].Text;
 form1.panel1.Visible := true;
 form1.panel2.Visible := true;
 form1.panel3.Visible := true;
 form1.panel4.Visible := true;
 end;

procedure falsch();
begin
 showmessage('Mäp, Verloren')
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 init();
 zufall();
 zuweisen();

 form1.Caption:= xml.DocumentElement.ChildNodes['settings'].childnodes['title'].Text;
end;

procedure TForm1.Panel1Click(Sender: TObject);
begin
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'a' THEN
begin
 panel1.Color := clgreen;

 panel1.Visible := true;
 panel2.Visible := false;
 panel3.Visible := false;
 panel4.Visible := false;

 showmessage('Pengo! Richtig!');

 zufall();
 zuweisen();
end;
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'b' THEN
begin
 panel2.Color := clgreen;
 panel1.Color := clred;
 panel2.Visible := true;
 panel1.Visible := false;
 panel3.Visible := false;
 panel4.Visible := false;

 falsch();

 zufall();
 zuweisen();
end;
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'c' THEN
begin
 panel3.Color := clgreen;
 panel1.Color := clred;

 panel3.Visible := true;
 panel2.Visible := false;
 panel1.Visible := false;
 panel4.Visible := false;

 falsch();

 zufall();
 zuweisen();
end;
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'd' THEN
begin
 panel4.Color := clgreen;
 panel1.Color := clred;

 panel4.Visible := true;
 panel2.Visible := false;
 panel3.Visible := false;
 panel1.Visible := false;

 falsch();

 zufall();
 zuweisen();
end;
end;

procedure TForm1.Panel2Click(Sender: TObject);
begin
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'a' THEN
begin
 panel1.Color := clgreen;
 panel2.Color := clred;

 panel1.Visible := true;
 panel2.Visible := false;
 panel3.Visible := false;
 panel4.Visible := false;

 falsch();

 zufall();
 zuweisen();
end;
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'b' THEN
begin
 panel2.Color := clgreen;

 panel2.Visible := true;
 panel1.Visible := false;
 panel3.Visible := false;
 panel4.Visible := false;

 showmessage('Pengo! Richtig!');

 zufall();
 zuweisen();
end;
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'c' THEN
begin
 panel3.Color := clgreen;
 panel2.Color := clred;

 panel3.Visible := true;
 panel2.Visible := false;
 panel1.Visible := false;
 panel4.Visible := false;

 falsch();

 zufall();
 zuweisen();
end;
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'd' THEN
begin
 panel4.Color := clgreen;
 panel2.Color := clred;

 panel4.Visible := true;
 panel2.Visible := false;
 panel3.Visible := false;
 panel1.Visible := false;

 falsch();

 zufall();
 zuweisen();
end;
end;

procedure TForm1.Panel3Click(Sender: TObject);
begin
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'a' THEN
begin
 panel1.Color := clgreen;
 panel3.Color := clred;

 panel1.Visible := true;
 panel2.Visible := false;
 panel3.Visible := false;
 panel4.Visible := false;

 falsch();

 zufall();
 zuweisen();
end;
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'b' THEN
begin
 panel2.Color := clgreen;
 panel3.Color := clred;

 panel2.Visible := true;
 panel1.Visible := false;
 panel3.Visible := false;
 panel4.Visible := false;

 falsch();

 zufall();
 zuweisen();
end;
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'c' THEN
begin
 panel3.Color := clgreen;

 panel3.Visible := true;
 panel2.Visible := false;
 panel1.Visible := false;
 panel4.Visible := false;

 showmessage('Pengo! Richtig!');

 zufall();
 zuweisen();
end;
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'd' THEN
begin
 panel4.Color := clgreen;
 panel3.Color := clred;

 panel4.Visible := true;
 panel2.Visible := false;
 panel3.Visible := false;
 panel1.Visible := false;

 falsch();

 zufall();
 zuweisen();
end;
end;

procedure TForm1.Panel4Click(Sender: TObject);
begin
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'a' THEN
begin
 panel1.Color := clgreen;
 panel4.Color := clred;

 panel1.Visible := true;
 panel2.Visible := false;
 panel3.Visible := false;
 panel4.Visible := false;

 falsch();

 zufall();
 zuweisen();
end;
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'b' THEN
begin
 panel2.Color := clgreen;
 panel4.Color := clred;

 panel2.Visible := true;
 panel1.Visible := false;
 panel3.Visible := false;
 panel4.Visible := false;

 falsch();

 zufall();
 zuweisen();
end;
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'c' THEN
begin
 panel3.Color := clgreen;
 panel4.Color := clred;

 panel3.Visible := true;
 panel2.Visible := false;
 panel1.Visible := false;
 panel4.Visible := false;

 falsch();

 zufall();
 zuweisen();
end;
if xml.DocumentElement.ChildNodes['content'].ChildNodes['frage'+ inttostr(i)].ChildNodes['richtig'].Text = 'd' THEN
begin
 panel4.Color := clgreen;

 panel4.Visible := true;
 panel2.Visible := false;
 panel3.Visible := false;
 panel1.Visible := false;

 showmessage('Pengo! Richtig!');

 zufall();
 zuweisen();
end;
end;

end.


oben steht der sourcecode. es geht um ein spiel das wer wird millionär nachgebaut ist. das problem ist das die erste frage immer richtig ausgelesen wird und die nächsten werden manchmal richtig ausgelesen. ich finde aber den fehler nicht. kann mir jemand behilflich sein?

Silence
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Sa 25.03.06 10:56 
hallo,

nach dem fehler habe ich noch nicht gesucht, aber gewöhne dir bitte an mit "with xy do" zu arbeiten, damit sparst du dir eine ganze menge arbeit!
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
begin
 with form1 do
  panel1.Visible := true;
  panel2.Visible := true;
  panel3.Visible := true;
  panel4.Visible := true;
  .... 
end;


so nun schau ich mal, ob ich einen fehler entdecke :P
cuejo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 142

Win XP
Delphi 7 Personal und 2005 PE
BeitragVerfasst: Fr 21.04.06 21:57 
Also ich habs jetzt zwar nur überflogen, aber mir ist direkt mal aufgefallen, dass du die zufall() mehrmals aufrufst. Das darfst du aber nicht, weil in dieser procedure Randomize; drinsteht. Randomize; darf man nur einmal aufrufen um, da mit random() sonst keine Zufallszahlen erzeugt werden. Am besten du schreibst Randomize; einfach in FormCreate. :wink:

_________________
Computer sind dumm, aber fleißig. Deshalb arbeite ich so gerne damit.
Amiga-Fan
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 534



BeitragVerfasst: Sa 22.04.06 01:04 
Zitat:
Programm will nur manchmal wie ich.


glaub mir, das ist völlig normal. :lol:

_________________
- Leg dich nie mit einem Berufsprogrammierer an
- Wahre Profis akzeptieren keine einfachen Lösungen