Autor Beitrag
Fatman
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 18.02.10 11:15 
BeitragVerfasst am: Heute um 10:12 Antworten mit Zitat Beitrag editieren Beitrag melden
Hey Leute passt hier net rein aber ich hab n Problem mit meinem Programm. Will Glücksrad programmieren mit folgendem Quelltext:
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:
procedure TForm1.PruefenClick(Sender: TObject);
var
za1, za2, za3, za4, za5, za6, zb1, zb2, zb3, zb4, zb5, zb6, zc1, zc2, zc3,
zc4, zc5, zc6, zhidden, rs: integer;

procedure vari(vara: integer);
var
za1, za2, za3, za4, za5, za6, zb1, zb2, zb3, zb4, zb5, zb6, zc1, zc2, zc3,
zc4, zc5, zc6: integer;
begin
if za1 = vara then
begin
a1.text := feld.text;
end;
if za2 = vara then
begin
a2.text := feld.text;
end;
if za3 = vara then
begin
a3.text := feld.text;
end;
if za4 = vara then
begin
a4.text := feld.text;
end;
if za5 = vara then
begin
a5.text := feld.text;
end;
if za6 = vara then
begin
a6.text := feld.text;
end;

if zb1 = vara then
begin
b1.text := feld.text;
end;
if zb2 = vara then
begin
b2.text := feld.text;
end;
if zb3 = vara then
begin
b3.text := feld.text;
end;
if zb4 = vara then
begin
b4.text := feld.text;
end;
if zb5 = vara then
begin
b5.text := feld.text;
end;
if zb6 = vara then
begin
b6.text := feld.text;
end;

if zc1 = vara then
begin
c1.text := feld.text;
end;
if zc2 = vara then
begin
c2.text := feld.text;
end;
if zc3 = vara then
begin
c3.text := feld.text;
end;
if zc4 = vara then
begin
c4.text := feld.text;
end;
if zc5 = vara then
begin
c5.text := feld.text;
end;
if zc6 = vara then
begin
c6.text := feld.text;
end;
end;

begin
zhidden := strtoint(hidden.text);

if zhidden = 0 then
begin
randomize;
rs := (random(9) + 1);
zhidden := rs;
hidden.text := inttostr(zhidden);
if (rs = 1then
begin
za1 := 9;
za2 := 3;
za3 := 8;

zb1 := 13;
zb2 := 1;
zb3 := 7;

zc1 := 5;
zc2 := 9;
zc3 := 19;

end;
if (rs = 2then
begin
za1 := 9;
za2 := 14;
za3 := 6;
za4 := 15;

zb1 := 9;
zb2 := 19;
zb3 := 20;

zc1 := 3;
zc2 := 15;
zc3 := 15;
zc4 := 12;

end;
if (rs = 3then
begin
za1 := 13;
za2 := 1;
za3 := 24;

zb1 := 11;
zb2 := 12;
zb3 := 5;
zb4 := 2;
zb5 := 20;

zc1 := 16;
zc2 := 1;
zc3 := 16;
zc4 := 9;
zc5 := 5;
zc6 := 18;
end;
if (rs = 4then
begin
za1 := 14;
za2 := 5;
za3 := 18;
za4 := 4;
za5 := 19;

zb1 := 12;
zb2 := 5;
zb3 := 18;
zb4 := 14;
zb5 := 5;
zb6 := 14;
zc1 := 1;
zc2 := 12;
zc3 := 12;
zc4 := 5;
zc5 := 9;
zc6 := 14;
end;
if (rs = 5then
begin
za1 := 2;
za2 := 15;
za3 := 8;
za4 := 14;
za5 := 5;
za6 := 14;
zb1 := 12;
zb2 := 1;
zb3 := 19;
zb4 := 19;
zb5 := 5;
zb6 := 14;
zc1 := 6;
zc2 := 21;
zc3 := 18;
zc4 := 26;
zc5 := 5;
zc6 := 14;
end;
if (rs = 6then
begin
za1 := 20;
za2 := 15;
za3 := 25;
za4 := 15;
za5 := 20;
za6 := 1;
zb1 := 26;
zb2 := 15;
zb3 := 15;
zb4 := 13;

zc1 := 26;
zc2 := 15;
zc3 := 15;
zc4 := 13;

end;
if (rs = 7then
begin
za1 := 9;
za2 := 3;
za3 := 8;

zb1 := 19;
zb2 := 9;
zb3 := 14;
zb4 := 7;
zb5 := 5;

zc1 := 20;
zc2 := 18;
zc3 := 1;
zc4 := 14;
zc5 := 3;
zc6 := 5;
end;
if (rs = 8then
begin
za1 := 2;
za2 := 1;
za3 := 14;
za4 := 1;
za5 := 14;
za6 := 1;
zb1 := 9;
zb2 := 19;
zb3 := 20;

zc1 := 6;
zc2 := 1;
zc3 := 12;
zc4 := 19;
zc5 := 3;
zc6 := 8;
end;
if (rs = 9then
begin
za1 := 10;
za2 := 1;
za3 := 8;
za4 := 18;
za5 := 5;

zb1 := 12;
zb2 := 1;
zb3 := 14;
zb4 := 7;

zc1 := 19;
zc2 := 3;
zc3 := 8;
zc4 := 21;
zc5 := 12;
zc6 := 5;
end;
if (rs = 10then
begin
za1 := 8;
za2 := 5;
za3 := 24;
za4 := 5;
za5 := 14;

zb1 := 5;
zb2 := 19;
zb3 := 19;
zb4 := 5;
zb5 := 14;

zc1 := 2;
zc2 := 15;
zc3 := 5;
zc4 := 7;
zc5 := 5;
zc6 := 12;
end;
end;

if feld.text = 'i' then
begin
testen.text := '9';
vari(9);
end;

if feld.text = 'e' then
begin
testen.text := '5';
vari(5);
end;

end;

end.


Die Zahlen stehen für die jeweiligen Buchstaben.
Die eingegebenen Buchstaben werden allerdings nur im ersten Feld angezeigt und zwar immer ein anderer :/
wäre nett wenn uns jmd hgelfen könnte oder uns sagt wie man das anders schreiben kann.
danke im voraus
euer ,
Fatman!

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: Do 18.02.10 12:45 
Du vergleichst hier mit Variablen, denen du noch keinen Wert zugewiesen hast.

In der Prozedure ist die markierte Variable za1 undefiniert, aber mit dieser wird verglichen.
Ich denke du willst mit der za1 darüber vergleichen, dann darfst du die selben variablen aber in der Prozedur nicht noch einmal lokal definieren.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.PruefenClick(Sender: TObject);
var
za1, za2, za3, za4, za5, za6, zb1, zb2, zb3, zb4, zb5, zb6, zc1, zc2, zc3,
zc4, zc5, zc6, zhidden, rs: integer;

  procedure vari(vara: integer);
  var
    za1, za2, za3, za4, za5, za6, zb1, zb2, zb3, zb4, zb5, zb6, zc1, zc2, zc3,
    zc4, zc5, zc6: integer;
  begin
    if za1 = vara then
    begin
      a1.text := feld.text;
    end;
    if za2 = vara then
    begin
Fatman Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 18.02.10 14:36 
Ok problem erkannt aber wie löse ich das ganze dass das programm läuft?^^
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Do 18.02.10 15:27 
Ich bin mir nicht sicher, ob ich der einzige bin, der deinen Quellcode nicht versteht... Wozu brauchst du die ganzen Variablen und wozu sind die gut (also was bedeuten sie)?
JoelH
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 806
Erhaltene Danke: 17

Win10
Delphi Alexandria 11.2 Patch 1
BeitragVerfasst: Do 18.02.10 16:09 
user profile iconFatman hat folgendes geschrieben Zum zitierten Posting springen:
Ok problem erkannt aber wie löse ich das ganze dass das programm läuft?^^


Befasse dich einfach mal mit Arrays, besonders den dynamischen.
Oder übergib der Procedure vari eben alle variablen.

ausblenden Delphi-Quelltext
1:
2:
procedure vari(vara, za1, za2, za3, za4, za5, za6, zb1, zb2, zb3, zb4, zb5, zb6, zc1, zc2, zc3,
zc4, zc5, zc6: integer);

_________________
mfg. Joel
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Do 18.02.10 16:18 
Dann lieber einen record oder einen Pointer auf die erste Variable, der dann nur erhöht wird (oder eben das Array).


Zuletzt bearbeitet von Jakob_Ullmann am Do 18.02.10 18:27, insgesamt 1-mal bearbeitet
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 18.02.10 16:19 
Suche bei Google CODE-FORMATIERUNG wäre schon mal ein guter Anfang :lol: Außerdem solltest du dir vielleicht mal Suche in: Delphi-Forum, Delphi-Library ARRAYS angucken.
Fatman Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 18.02.10 18:35 
user profile iconJakob_Ullmann hat folgendes geschrieben Zum zitierten Posting springen:
Ich bin mir nicht sicher, ob ich der einzige bin, der deinen Quellcode nicht versteht... Wozu brauchst du die ganzen Variablen und wozu sind die gut (also was bedeuten sie)?


die variablen stehen für die jeweiligen editfelder in denen die buchstaben angezeigt werden sollen
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Do 18.02.10 19:01 
user profile iconFatman hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconJakob_Ullmann hat folgendes geschrieben Zum zitierten Posting springen:
Ich bin mir nicht sicher, ob ich der einzige bin, der deinen Quellcode nicht versteht... Wozu brauchst du die ganzen Variablen und wozu sind die gut (also was bedeuten sie)?


die variablen stehen für die jeweiligen editfelder in denen die buchstaben angezeigt werden sollen


:shock:

Mein Gott, meinst du nicht, das lässt sich einfacher lösen, wenn du das Teil mit Canvas zeichnest? Aber sonst wäre das mit Arrays sehr viel besser (= weniger Code, übersichtlicher) getan, wenn du einfach schreibst:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
A := Ord('a') - 1;
for i := 1 to 3 do
  for j := 1 to 5 do
begin
  if vara = z[i][j] then
    TEdit(FindComponent( Chr(A + i) + IntToStr(j) )).Text := feld.Text;
end;