Autor Beitrag
Xearox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260
Erhaltene Danke: 3



BeitragVerfasst: Mi 13.01.10 18:45 
Hallo Leute, ich poste euch jetzt mal meinen gesamten Source Code...
Ich möchte euch bitten, wenn ihr die Zeit dafür habt, mir ein paar Tipps, hilfen oder kommentare zu geben,
wie ich den Code besser machen kann, bzw. wie ich den ambesten Umschreiben kann...
Es handelt sich um ein Project, welches ich schon öffentlich bei Evil Empire(Browsergame)
angekündigt habe, und auch von einigen Intressenten angeschaut wurde...laut meinem Server...


So nun hier der Code:

Form Als Text Form:
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:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
object Form1: TForm1
  Left = 0
  Top = 0
  BorderIcons = []
  Caption = 'Baukosten und Produktions Rechner'
  ClientHeight = 615
  ClientWidth = 852
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 8
    Top = 0
    Width = 838
    Height = 41
    Alignment = taCenter
    AutoSize = False
    Caption = 'Baukosten bei Evil-Empire Rechner U2'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -33
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentFont = False
  end
  object Label2: TLabel
    Left = 276
    Top = 47
    Width = 41
    Height = 19
    Caption = 'Metall'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -16
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentFont = False
  end
  object Label3: TLabel
    Left = 372
    Top = 47
    Width = 47
    Height = 19
    Caption = 'Kristall'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -16
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentFont = False
  end
  object Label4: TLabel
    Left = 468
    Top = 47
    Width = 62
    Height = 19
    Caption = 'Zivilisten'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -16
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentFont = False
  end
  object Label7: TLabel
    Left = 234
    Top = 47
    Width = 36
    Height = 19
    Caption = 'Stufe'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -16
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentFont = False
  end
  object Label5: TLabel
    Left = 564
    Top = 47
    Width = 61
    Height = 19
    Caption = 'Soldaten'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -16
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentFont = False
  end
  object Label8: TLabel
    Left = 660
    Top = 47
    Width = 87
    Height = 19
    Caption = 'Lagermenge'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -16
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentFont = False
  end
  object Label6: TLabel
    Left = 756
    Top = 47
    Width = 77
    Height = 19
    Caption = 'Produktion'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -16
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentFont = False
  end
  object MMetKosten: TMemo
    Left = 276
    Top = 72
    Width = 90
    Height = 540
    ReadOnly = True
    TabOrder = 0
  end
  object MKrisKosten: TMemo
    Left = 372
    Top = 72
    Width = 90
    Height = 540
    ReadOnly = True
    TabOrder = 1
  end
  object MZiviKosten: TMemo
    Left = 468
    Top = 72
    Width = 90
    Height = 540
    ReadOnly = True
    TabOrder = 2
  end
  object MStufe: TMemo
    Left = 240
    Top = 72
    Width = 30
    Height = 540
    ReadOnly = True
    TabOrder = 3
  end
  object Button1: TButton
    Left = 48
    Top = 312
    Width = 121
    Height = 25
    Caption = 'Anzeigen'
    TabOrder = 4
    OnClick = Button1Click
  end
  object MSoldisKosten: TMemo
    Left = 564
    Top = 72
    Width = 90
    Height = 540
    ReadOnly = True
    TabOrder = 5
  end
  object BClose: TButton
    Left = 48
    Top = 367
    Width = 121
    Height = 25
    Caption = 'Programm Beenden'
    TabOrder = 6
    OnClick = BCloseClick
  end
  object MLager: TMemo
    Left = 660
    Top = 72
    Width = 90
    Height = 540
    ReadOnly = True
    TabOrder = 7
  end
  object Button2: TButton
    Left = 48
    Top = 336
    Width = 121
    Height = 25
    Caption = 'Produktion'
    Enabled = False
    TabOrder = 8
  end
  object RadioGroup1: TRadioGroup
    Left = 8
    Top = 47
    Width = 220
    Height = 259
    Caption = 'Geb'#228'ude Auswahl'
    TabOrder = 9
  end
  object RMetMine: TRadioButton
    Left = 14
    Top = 72
    Width = 113
    Height = 17
    Caption = 'Metallmine'
    TabOrder = 10
  end
  object RKrisMine: TRadioButton
    Left = 14
    Top = 95
    Width = 113
    Height = 17
    Caption = 'Kristallmine'
    TabOrder = 11
  end
  object RAntiFabrik: TRadioButton
    Left = 14
    Top = 118
    Width = 113
    Height = 17
    Caption = 'Antimateriefabrik'
    TabOrder = 12
  end
  object RMetLager: TRadioButton
    Left = 14
    Top = 141
    Width = 113
    Height = 17
    Caption = 'Metalllager'
    TabOrder = 13
  end
  object RKrisLager: TRadioButton
    Left = 14
    Top = 164
    Width = 113
    Height = 17
    Caption = 'Kristalllager'
    TabOrder = 14
  end
  object RAntiLager: TRadioButton
    Left = 14
    Top = 187
    Width = 113
    Height = 17
    Caption = 'Antimaterielager'
    TabOrder = 15
  end
  object RWohnraum: TRadioButton
    Left = 14
    Top = 210
    Width = 113
    Height = 17
    Caption = 'Wohnraum'
    TabOrder = 16
  end
  object RKaserne: TRadioButton
    Left = 14
    Top = 233
    Width = 113
    Height = 17
    Caption = 'Kaserne'
    TabOrder = 17
  end
  object RForschungszentrum: TRadioButton
    Left = 14
    Top = 256
    Width = 113
    Height = 17
    Caption = 'Forschungszentrum'
    TabOrder = 18
  end
  object RRaumhafen: TRadioButton
    Left = 14
    Top = 279
    Width = 113
    Height = 17
    Caption = 'Raumhafen'
    TabOrder = 19
  end
  object RRuestungswerke: TRadioButton
    Left = 125
    Top = 72
    Width = 100
    Height = 17
    Caption = 'R'#252'stungswerke'
    TabOrder = 20
  end
  object RHandelszentrum: TRadioButton
    Left = 125
    Top = 95
    Width = 100
    Height = 17
    Caption = 'Handelszentrum'
    TabOrder = 21
  end
  object RMilizHQ: TRadioButton
    Left = 125
    Top = 118
    Width = 100
    Height = 17
    Caption = 'Milizhaptquartier'
    TabOrder = 22
  end
  object ROffiziersschule: TRadioButton
    Left = 125
    Top = 141
    Width = 100
    Height = 17
    Caption = 'Offiziesschule'
    TabOrder = 23
  end
  object RSensoren: TRadioButton
    Left = 125
    Top = 164
    Width = 100
    Height = 17
    Caption = 'Sensoren'
    TabOrder = 24
  end
  object RKlontanks: TRadioButton
    Left = 125
    Top = 187
    Width = 100
    Height = 17
    Caption = 'Klontanks'
    TabOrder = 25
  end
  object RMateriekonverter: TRadioButton
    Left = 125
    Top = 210
    Width = 100
    Height = 17
    Caption = 'Materiekonverter'
    TabOrder = 26
  end
  object RRoboterwerkstatt: TRadioButton
    Left = 125
    Top = 233
    Width = 100
    Height = 17
    Caption = 'Roboterwerkstatt'
    TabOrder = 27
  end
  object RSprungtor: TRadioButton
    Left = 125
    Top = 256
    Width = 100
    Height = 17
    Caption = 'Sprungtor'
    TabOrder = 28
  end
  object RadioGroup2: TRadioGroup
    Left = 2
    Top = 440
    Width = 97
    Height = 161
    Caption = 'Planeten Klasse'
    TabOrder = 29
  end
  object RadioButton1: TRadioButton
    Left = 8
    Top = 456
    Width = 80
    Height = 17
    Caption = 'A'
    TabOrder = 30
  end
  object RadioButton2: TRadioButton
    Left = 8
    Top = 479
    Width = 80
    Height = 17
    Caption = 'B'
    TabOrder = 31
  end
  object RadioButton3: TRadioButton
    Left = 8
    Top = 502
    Width = 80
    Height = 17
    Caption = 'C'
    TabOrder = 32
  end
  object RadioButton4: TRadioButton
    Left = 8
    Top = 525
    Width = 80
    Height = 17
    Caption = 'D'
    TabOrder = 33
  end
  object RadioButton5: TRadioButton
    Left = 8
    Top = 548
    Width = 80
    Height = 17
    Caption = 'E'
    TabOrder = 34
  end
  object RadioButton6: TRadioButton
    Left = 8
    Top = 571
    Width = 80
    Height = 17
    Caption = 'F'
    TabOrder = 35
  end
  object MProd: TMemo
    Left = 756
    Top = 72
    Width = 90
    Height = 540
    ReadOnly = True
    TabOrder = 36
  end
end


und nun mein gesamter Source Code

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:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    MMetKosten: TMemo;
    MKrisKosten: TMemo;
    MZiviKosten: TMemo;
    Label7: TLabel;
    MStufe: TMemo;
    Button1: TButton;
    MSoldisKosten: TMemo;
    Label5: TLabel;
    BClose: TButton;
    Label8: TLabel;
    MLager: TMemo;
    Button2: TButton;
    RadioGroup1: TRadioGroup;
    RMetMine: TRadioButton;
    RKrisMine: TRadioButton;
    RAntiFabrik: TRadioButton;
    RMetLager: TRadioButton;
    RKrisLager: TRadioButton;
    RAntiLager: TRadioButton;
    RWohnraum: TRadioButton;
    RKaserne: TRadioButton;
    RForschungszentrum: TRadioButton;
    RRaumhafen: TRadioButton;
    RRuestungswerke: TRadioButton;
    RHandelszentrum: TRadioButton;
    RMilizHQ: TRadioButton;
    ROffiziersschule: TRadioButton;
    RSensoren: TRadioButton;
    RKlontanks: TRadioButton;
    RMateriekonverter: TRadioButton;
    RRoboterwerkstatt: TRadioButton;
    RSprungtor: TRadioButton;
    RadioGroup2: TRadioGroup;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    RadioButton5: TRadioButton;
    RadioButton6: TRadioButton;
    Label6: TLabel;
    MProd: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure StufeAnzeigen;
    procedure Baukosten;
    procedure MemoLeeren;
    procedure BuildingChange;
    procedure BCloseClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  BuildingChange:Boolean;
  RessChangeMet:double;
  RessChangeKris:double;
  RessChangeZivis:double;
  RessChangeSoldis:double;
  LagerChange:double;
  Metall,Kristall,Zivis,Soldis,Lager:double;
const
  Stufe40=40//Gebäude Stufe wird Festgelegt!
//-------------Metall Mine------------------------------------------------------
  MMMetall=125;
  MMKristall=12;
  MMZivis=50;
  MMSoldis=0;
  MMLager=0;
//-------------Kristall Mine----------------------------------------------------
  KMMetall=10;
  KMKristall=100;
  KMZivis=75;
  KMSoldis=0;
  KMLager=0;
//-------------Anti Fabrik------------------------------------------------------
  AFMetall=25;
  AFKristall=125;
  AFZivis=100;
  AFSoldis=0;
  AFLager=0;
//-------------Metall Lager-----------------------------------------------------
  MLMetall=25;
  MLKristall=12;
  MLZivis=12;
  MLSoldis=0;
  MLLager=5000;
//-------------Kristall Lager---------------------------------------------------
  KLMetall=25;
  KLKristall=12;
  KLZivis=12;
  KLSoldis=0;
  KLLager=5000;
//-------------Anti Lager-------------------------------------------------------
  ALMetall=25;
  ALKristall=37;
  ALZivis=25;
  ALSoldis=0;
  ALLager=5000;
//-------------Wohnraum---------------------------------------------------------
  WMetall=75;
  WKristall=25;
  WZivis=12;
  WSoldis=0;
  WLager=5000;
//-------------Kaserne----------------------------------------------------------
  KMetall=250;
  KKristall=100;
  KZivis=125;
  KSoldis=0;
  KLager=500;
//-------------Forschungszentrum------------------------------------------------
  FMetall=125;
  FKristall=400;
  FZivis=250;
  FSoldis=0;
  FLager=0;
//-------------Raumhafen--------------------------------------------------------
  RaMetall=375;
  RaKristall=250;
  RaZivis=100;
  RaSoldis=37;
  RaLager=0;
//-------------Rüstungswerke----------------------------------------------------
  RuMetall=250;
  RuKristall=125;
  RuZivis=125;
  RuSoldis=50;
  RuLager=0;
//-------------Handelszentrum---------------------------------------------------
  HMetall=100;
  HKristall=50;
  HZivis=250;
  HSoldis=0;
  HLager=0;
//-------------MilizHQ----------------------------------------------------------
  MHQMetall=375;
  MHQKristall=125;
  MHQZivis=1250;
  MHQSoldis=50;
  MHQLager=0;
//-------------Offiziersschule--------------------------------------------------
  OMetall=3750;
  OKristall=3750;
  OZivis=2500;
  OSoldis=5000;
  OLager=0;
//-------------Sensoren---------------------------------------------------------
  SMetall=2500;
  SKristall=7500;
  SZivis=2500;
  SSoldis=1250;
  SLager=0;
//-------------Klontanks--------------------------------------------------------
  KTMetall=375;
  KTKristall=500;
  KTZivis=125;
  KTSoldis=0;
  KTLager=0;
//-------------Materiekonverter-------------------------------------------------
  MaMetall=1250;
  MaKristall=2500;
  MaZivis=2000;
  MaSoldis=0;
  MaLager=0;
//-------------Roboter Werkstatt------------------------------------------------
  RoMetall=3750;
  RoKristall=7500;
  RoZivis=2500;
  RoSoldis=0;
  RoLager=0;
//-------------Sprungtor--------------------------------------------------------
  SpMetall=500;
  SpKristall=250;
  SpZivis=125;
  SPSoldis=25;
  SPLager=0;
//------------------------------------------------------------------------------


implementation

{$R *.dfm}

procedure TForm1.MemoLeeren;
begin
  MMetKosten.Text:=('');
  MKrisKosten.Text:=('');
  MZiviKosten.Text:=('');
  MStufe.Text:=('');
  MSoldisKosten.Text:=('');
  MLager.Text:=('');
end;

procedure TForm1.Baukosten;
var
  MetKosten,KrisKosten,ZiviKosten,SoldisKosten,Lagermenge:double;
  kosten:integer;
  Stufe:integer;
  I:integer;
  MetKostenStr:String;
  KrisKostenStr:String;
  ZiviKostenStr:string;
  SoldisKostenStr:String;
  LagerStr:String;


begin
  Stufe:=1;
  MetKosten:=RessChangeMet;
  KrisKosten:=RessChangeKris;
  ZiviKosten:=RessChangeZivis;
  SoldisKosten:=RessChangeSoldis;
  Lager:=LagerChange;
  Metall:=RessChangeMet;
  Kristall:=RessChangeKris;
  Zivis:=RessChangeZivis;
  Soldis:=RessChangeSoldis;
  Lager:=LagerChange;
  MetKostenStr:=floattostr(RessChangeMet);
  KrisKostenStr:=floattostr(RessChangeKris);
  ZiviKostenStr:=floattostr(RessChangeZivis);
  SoldisKostenStr:=floattostr(RessChangeSoldis);
  LagerStr:=floattostr(LagerChange);
  MMetKosten.Text:=MMetKosten.Text+MetKostenStr+#13#10;  //hier wird die Stufe 1 gesetzt, und in der Schleife wird Stufe 2 bearbeitet
  MKrisKosten.Text:=MKrisKosten.Text+KrisKostenStr+#13#10;
  MZiviKosten.Text:=MZiviKosten.Text+ZiviKostenStr+#13#10;
  MSoldisKosten.Text:=MSoldisKosten.Text+SoldisKostenStr+#13#10;
  MLager.Text:=MLager.Text+LagerStr+#13#10;
//------------------------Metall Kosten-----------------------------------------
  for Stufe:=1 to 39 do
  begin
    MetKosten:=Trunc(Metall)*Trunc((Stufe+1)*Power(1.5,Stufe));
    MetKostenStr:=floattostr(metkosten);
    MMetKosten.Text:=MMetKosten.Text+MetKostenStr+#13#10;
  end;
//------------------------Kristall Kosten---------------------------------------
  for Stufe:=1 to 39 do
    begin
      KrisKosten:=Trunc(Kristall)*Trunc((Stufe+1)*Power(1.5,Stufe));
      KrisKostenStr:=floattostr(Kriskosten);
      MKrisKosten.Text:=MKrisKosten.Text+KrisKostenStr+#13#10;
    end;
//------------------------Zivi Kosten-------------------------------------------
  for Stufe:=1 to 39 do
    begin
      ZiviKosten:=Trunc(Zivis)*Trunc((Stufe+1)*Power(1.5,Stufe));
      ZiviKostenStr:=floattostr(ZiviKosten);
      MZiviKosten.Text:=MZiviKosten.Text+ZiviKostenStr+#13#10;
    end;
//------------------------Soldis Kosten-----------------------------------------
  for Stufe:=1 to 39 do
    begin
      SoldisKosten:=Trunc(Soldis)*Trunc((Stufe+1)*Power(1.5,Stufe));
      SoldisKostenStr:=floattostr(SoldisKosten);
      MSoldisKosten.Text:=MSoldisKosten.Text+SoldisKostenStr+#13#10;
    end;
//------------------------Lager Menge-------------------------------------------
  for Stufe:=1 to 39 do
    begin
      Lagermenge:=Trunc(Lager)*Trunc((Stufe+1)*Power(1.5,Stufe));
      LagerStr:=floattostr(Lagermenge);
      MLager.Text:=MLager.Text+LagerStr+#13#10;
    end;

end;

procedure TForm1.StufeAnzeigen;
var
  I:integer;
  Anzahl:integer;
  AnzahlStr:string;

begin
  Anzahl:=0;
  for I := 0 to Stufe40 - 1 do
  begin
    Anzahl:=Anzahl+1;
    AnzahlStr:=inttostr(Anzahl);
    MStufe.Text:=MStufe.Text+AnzahlStr+#13#10;

  end;
end;

procedure TForm1.BCloseClick(Sender: TObject);
begin
  //ShowMessage('Created by Xearox - Copyright 2009-2010');
  //ShowMessage('Quelle: Evil-Empire.biz');
  close;
end;

procedure TForm1.BuildingChange;
begin
  if RMetMine.Checked=true then
  begin
    RessChangeMet:=MMMetall;
    RessChangeKris:=MMKristall;
    RessChangeZivis:=MMZivis;
    RessChangeSoldis:=MMSoldis;
    LagerChange:=MMLager;
  end;
  if RKrisMine.Checked=true then
  begin
    RessChangeMet:=KMMetall;
    RessChangeKris:=KMKristall;
    RessChangeZivis:=KMZivis;
    RessChangeSoldis:=KMSoldis;
    LagerChange:=KMLager;
  end;
  if RAntiFabrik.Checked=true then
  begin
    RessChangeMet:=AFMetall;
    RessChangeKris:=AFKristall;
    RessChangeZivis:=AFZivis;
    RessChangeSoldis:=AFSoldis;
    LagerChange:=AFLager;
  end;
  if RMetLager.Checked=true then
  begin
    RessChangeMet:=MLMetall;
    RessChangeKris:=MLKristall;
    RessChangeZivis:=MLZivis;
    RessChangeSoldis:=MLSoldis;
    LagerChange:=MLLager;
  end;
  if RKrisLager.Checked=true then
  begin
    RessChangeMet:=KLMetall;
    RessChangeKris:=KLKristall;
    RessChangeZivis:=KLZivis;
    RessChangeSoldis:=KLSoldis;
    LagerChange:=KLLager;
  end;
  if RAntiLager.Checked=true then
  begin
    RessChangeMet:=ALMetall;
    RessChangeKris:=ALKristall;
    RessChangeZivis:=ALZivis;
    RessChangeSoldis:=ALSoldis;
    LagerChange:=ALLager;
  end;
  if RWohnraum.Checked=true then
  begin
    RessChangeMet:=WMetall;
    RessChangeKris:=WKristall;
    RessChangeZivis:=WZivis;
    RessChangeSoldis:=WSoldis;
    LagerChange:=WLager;
  end;
  if RKaserne.Checked=true then
  begin
    RessChangeMet:=KMetall;
    RessChangeKris:=KKristall;
    RessChangeZivis:=KZivis;
    RessChangeSoldis:=KSoldis;
    LagerChange:=KLager;
  end;
  if RForschungszentrum.Checked=true then
  begin
    RessChangeMet:=FMetall;
    RessChangeKris:=FKristall;
    RessChangeZivis:=FZivis;
    RessChangeSoldis:=FSoldis;
    LagerChange:=FLager;
  end;
  if RRaumhafen.Checked=true then
  begin
    RessChangeMet:=RaMetall;
    RessChangeKris:=RaKristall;
    RessChangeZivis:=RaZivis;
    RessChangeSoldis:=RaSoldis;
    LagerChange:=RaLager;
  end;
  if RRuestungswerke.Checked=true then
  begin
    RessChangeMet:=RuMetall;
    RessChangeKris:=RuKristall;
    RessChangeZivis:=RuZivis;
    RessChangeSoldis:=RuSoldis;
    LagerChange:=RuLager;
  end;
  if RHandelszentrum.Checked=true then
  begin
    RessChangeMet:=HMetall;
    RessChangeKris:=HKristall;
    RessChangeZivis:=HZivis;
    RessChangeSoldis:=HSoldis;
    LagerChange:=HLager;
  end;
  if RMilizHQ.Checked=true then
  begin
    RessChangeMet:=MHQMetall;
    RessChangeKris:=MHQKristall;
    RessChangeZivis:=MHQZivis;
    RessChangeSoldis:=MHQSoldis;
    LagerChange:=MHQLager;
  end;
  if ROffiziersschule.Checked=true then
  begin
    RessChangeMet:=OMetall;
    RessChangeKris:=OKristall;
    RessChangeZivis:=OZivis;
    RessChangeSoldis:=OSoldis;
    LagerChange:=OLager;
  end;
  if RSensoren.Checked=true then
  begin
    RessChangeMet:=SMetall;
    RessChangeKris:=SKristall;
    RessChangeZivis:=SZivis;
    RessChangeSoldis:=SSoldis;
    LagerChange:=SLager;
  end;
  if RKlontanks.Checked=true then
  begin
    RessChangeMet:=KTMetall;
    RessChangeKris:=KTKristall;
    RessChangeZivis:=KTZivis;
    RessChangeSoldis:=KTSoldis;
    LagerChange:=KTLager;
  end;
  if RMateriekonverter.Checked=true then
  begin
    RessChangeMet:=KMMetall;
    RessChangeKris:=KMKristall;
    RessChangeZivis:=KMZivis;
    RessChangeSoldis:=KMSoldis;
    LagerChange:=KMLager;
  end;
  if RRoboterwerkstatt.Checked=true then
  begin
    RessChangeMet:=RoMetall;
    RessChangeKris:=RoKristall;
    RessChangeZivis:=RoZivis;
    RessChangeSoldis:=RoSoldis;
    LagerChange:=RoLager;
  end;
  if RSprungtor.Checked=true then
  begin
    RessChangeMet:=SpMetall;
    RessChangeKris:=SpKristall;
    RessChangeZivis:=SpZivis;
    RessChangeSoldis:=SpSoldis;
    LagerChange:=SpLager;
  end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  MemoLeeren;
  BuildingChange;
  StufeAnzeigen;
  Baukosten;
end;

end.



Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 13.01.2010 um 17:58


Zuletzt bearbeitet von Xearox am Mi 13.01.10 22:01, insgesamt 1-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 13.01.10 18:59 
Moin!

Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:
1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]
Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Noch ein Hinweis: Bitte nur eine Frage pro Thread! Sollte das hier chaotisch werden, mache ich den Thread zu.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Mi 13.01.10 19:20 
Sind Radiobuttons nicht dafür da, dass man nur eine Möglichkeit auswählt?
Für alles andere sind doch Checkboxes da, oder irr ich?

Hab zwar keine Ahnung, was "Planeten Klassen" sind, aber mit

ausblenden Delphi-Quelltext
1:
chkGebaeude.enabled := (not chkPlanetenKlasse.checked);					


(wobei chk für Checkboxen steht - jedenfalls in meiner welt ;))

in der chkPlanetenKlasseOnChange kann ich schon mal sicherstellen, dass das eine das andere ausschließt..

Hmm..

Aber es sieht wohl so aus, daß ich mir deine Source wohl selber kompilieren müsste, um überhaupt zu verstehen,
was wie zusammenhängt. Ein Screenie wär vllt. gar nicht so verkehrt...


:r:

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
Xearox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260
Erhaltene Danke: 3



BeitragVerfasst: Mi 13.01.10 22:08 
@Narses, hoffe Topic ist besser und habe auch einen anderen thread auf gemacht...
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Do 14.01.10 07:26 
Hab das mal kurz überflogen, vieleicht solltest du dir auch mal Lines von TMemo anschauen

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
MMetKosten.Text:=('');
//MMetKosten.Clear;

Anzahl:=Anzahl+1;
//Inc(Anzahl);

if RAntiFabrik.Checked=true then 
//if RAntiFabrik.Checked then
baka0815
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 489
Erhaltene Danke: 14

Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
BeitragVerfasst: Do 14.01.10 08:46 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
//-------------Metall Mine------------------------------------------------------
  MMMetall=125;
  MMKristall=12;
  MMZivis=50;
  MMSoldis=0;
  MMLager=0;

Da dies ja immer dasselbe, ich würde dir hier also irgend 'ne Struktur empfehlen (also entweder Klasse oder Record - in diesem Fall ist ein Record vermutlich ausreichend).

ausblenden 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:
type
  TDing = record
    Metall: Integer;
    Kristall: Integer;
    Zivis: Integer;
    Soldis: Integer;
    Lager: Integer;
  end;

var
  MetallMine, KristallMine: TDing;

begin
  MetallMine.Metall := 125;
  MetallMine.Kristall := 12;
  MetallMine.Zivis := 50;
  MetallMine.Soldis := 0;
  MetallMine.Lager := 0;

  KristallMine.Metall := 10;
  KristallMine.Kristall := 100;
  KristallMine.Zivis := 75;
  KristallMine.Soldis := 0;
  KristallMine.Lager := 0;
end;


Sowas in der Art (ungetestet).
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 14.01.10 09:12 
Ich habe es nur kurz überflogen.
Schau dir auch noch die Tipps der anderen User an.

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:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    MMetKosten: TMemo;
    MKrisKosten: TMemo;
    MZiviKosten: TMemo;
    Label7: TLabel;
    MStufe: TMemo;
    Button1: TButton;
    MSoldisKosten: TMemo;
    Label5: TLabel;
    BClose: TButton;
    Label8: TLabel;
    MLager: TMemo;
    Button2: TButton;
    RadioGroup1: TRadioGroup;
    RMetMine: TRadioButton;
    RKrisMine: TRadioButton;
    RAntiFabrik: TRadioButton;
    RMetLager: TRadioButton;
    RKrisLager: TRadioButton;
    RAntiLager: TRadioButton;
    RWohnraum: TRadioButton;
    RKaserne: TRadioButton;
    RForschungszentrum: TRadioButton;
    RRaumhafen: TRadioButton;
    RRuestungswerke: TRadioButton;
    RHandelszentrum: TRadioButton;
    RMilizHQ: TRadioButton;
    ROffiziersschule: TRadioButton;
    RSensoren: TRadioButton;
    RKlontanks: TRadioButton;
    RMateriekonverter: TRadioButton;
    RRoboterwerkstatt: TRadioButton;
    RSprungtor: TRadioButton;
    RadioGroup2: TRadioGroup;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    RadioButton5: TRadioButton;
    RadioButton6: TRadioButton;
    Label6: TLabel;
    MProd: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure StufeAnzeigen;
    procedure Baukosten;
    procedure MemoLeeren;
    procedure BuildingChange;
    procedure BCloseClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    BuildingChange:Boolean;
    RessChangeMet:double;
    RessChangeKris:double;
    RessChangeZivis:double;
    RessChangeSoldis:double;
    LagerChange:double;
    Metall,Kristall,Zivis,Soldis,Lager:double;
  end;

var
  Form1: TForm1;
// Globale Variablen in die Form-Klasse verschoben.

const
  Stufe40=40//Gebäude Stufe wird Festgelegt!
//-------------Metall Mine------------------------------------------------------
  MMMetall=125;
  MMKristall=12;
  MMZivis=50;
  MMSoldis=0;
  MMLager=0;
//-------------Kristall Mine----------------------------------------------------
  KMMetall=10;
  KMKristall=100;
  KMZivis=75;
  KMSoldis=0;
  KMLager=0;
//-------------Anti Fabrik------------------------------------------------------
  AFMetall=25;
  AFKristall=125;
  AFZivis=100;
  AFSoldis=0;
  AFLager=0;
//-------------Metall Lager-----------------------------------------------------
  MLMetall=25;
  MLKristall=12;
  MLZivis=12;
  MLSoldis=0;
  MLLager=5000;
//-------------Kristall Lager---------------------------------------------------
  KLMetall=25;
  KLKristall=12;
  KLZivis=12;
  KLSoldis=0;
  KLLager=5000;
//-------------Anti Lager-------------------------------------------------------
  ALMetall=25;
  ALKristall=37;
  ALZivis=25;
  ALSoldis=0;
  ALLager=5000;
//-------------Wohnraum---------------------------------------------------------
  WMetall=75;
  WKristall=25;
  WZivis=12;
  WSoldis=0;
  WLager=5000;
//-------------Kaserne----------------------------------------------------------
  KMetall=250;
  KKristall=100;
  KZivis=125;
  KSoldis=0;
  KLager=500;
//-------------Forschungszentrum------------------------------------------------
  FMetall=125;
  FKristall=400;
  FZivis=250;
  FSoldis=0;
  FLager=0;
//-------------Raumhafen--------------------------------------------------------
  RaMetall=375;
  RaKristall=250;
  RaZivis=100;
  RaSoldis=37;
  RaLager=0;
//-------------Rüstungswerke----------------------------------------------------
  RuMetall=250;
  RuKristall=125;
  RuZivis=125;
  RuSoldis=50;
  RuLager=0;
//-------------Handelszentrum---------------------------------------------------
  HMetall=100;
  HKristall=50;
  HZivis=250;
  HSoldis=0;
  HLager=0;
//-------------MilizHQ----------------------------------------------------------
  MHQMetall=375;
  MHQKristall=125;
  MHQZivis=1250;
  MHQSoldis=50;
  MHQLager=0;
//-------------Offiziersschule--------------------------------------------------
  OMetall=3750;
  OKristall=3750;
  OZivis=2500;
  OSoldis=5000;
  OLager=0;
//-------------Sensoren---------------------------------------------------------
  SMetall=2500;
  SKristall=7500;
  SZivis=2500;
  SSoldis=1250;
  SLager=0;
//-------------Klontanks--------------------------------------------------------
  KTMetall=375;
  KTKristall=500;
  KTZivis=125;
  KTSoldis=0;
  KTLager=0;
//-------------Materiekonverter-------------------------------------------------
  MaMetall=1250;
  MaKristall=2500;
  MaZivis=2000;
  MaSoldis=0;
  MaLager=0;
//-------------Roboter Werkstatt------------------------------------------------
  RoMetall=3750;
  RoKristall=7500;
  RoZivis=2500;
  RoSoldis=0;
  RoLager=0;
//-------------Sprungtor--------------------------------------------------------
  SpMetall=500;
  SpKristall=250;
  SpZivis=125;
  SPSoldis=25;
  SPLager=0;
//------------------------------------------------------------------------------


implementation

{$R *.dfm}

procedure TForm1.MemoLeeren;
begin
// kann man so machen, aber ich hätte z.B. MMetKosten.Clear verwendet
  MMetKosten.Text:=('');
  MKrisKosten.Text:=('');
  MZiviKosten.Text:=('');
  MStufe.Text:=('');
  MSoldisKosten.Text:=('');
  MLager.Text:=('');
end;

procedure TForm1.Baukosten;
var
  MetKosten,KrisKosten,ZiviKosten,SoldisKosten,Lagermenge:double;
  kosten:integer;
  Stufe:integer;
  I:integer;
  MetKostenStr:String;
  KrisKostenStr:String;
  ZiviKostenStr:string;
  SoldisKostenStr:String;
  LagerStr:String;


begin
  Stufe:=1;
  MetKosten:=RessChangeMet;
  KrisKosten:=RessChangeKris;
  ZiviKosten:=RessChangeZivis;
  SoldisKosten:=RessChangeSoldis;
  Lager:=LagerChange;
  Metall:=RessChangeMet;
  Kristall:=RessChangeKris;
  Zivis:=RessChangeZivis;
  Soldis:=RessChangeSoldis;
  Lager:=LagerChange;
  MetKostenStr:=floattostr(RessChangeMet);
  KrisKostenStr:=floattostr(RessChangeKris);
  ZiviKostenStr:=floattostr(RessChangeZivis);
  SoldisKostenStr:=floattostr(RessChangeSoldis);
  LagerStr:=floattostr(LagerChange);
  MMetKosten.Text:=MMetKosten.Text+MetKostenStr+#13#10;  //hier wird die Stufe 1 gesetzt, und in der Schleife wird Stufe 2 bearbeitet
  MKrisKosten.Text:=MKrisKosten.Text+KrisKostenStr+#13#10;
  MZiviKosten.Text:=MZiviKosten.Text+ZiviKostenStr+#13#10;
  MSoldisKosten.Text:=MSoldisKosten.Text+SoldisKostenStr+#13#10;
  MLager.Text:=MLager.Text+LagerStr+#13#10;

// Es reicht eine Schleife
  for Stufe:=1 to 39 do
  begin
//------------------------Metall Kosten-----------------------------------------
    MetKosten:=Trunc(Metall)*Trunc((Stufe+1)*Power(1.5,Stufe));
    MetKostenStr:=floattostr(metkosten);
    MMetKosten.Text:=MMetKosten.Text+MetKostenStr+#13#10;
//------------------------Kristall Kosten---------------------------------------
    KrisKosten:=Trunc(Kristall)*Trunc((Stufe+1)*Power(1.5,Stufe));
    KrisKostenStr:=floattostr(Kriskosten);
    MKrisKosten.Text:=MKrisKosten.Text+KrisKostenStr+#13#10;
//------------------------Zivi Kosten-------------------------------------------
    ZiviKosten:=Trunc(Zivis)*Trunc((Stufe+1)*Power(1.5,Stufe));
    ZiviKostenStr:=floattostr(ZiviKosten);
    MZiviKosten.Text:=MZiviKosten.Text+ZiviKostenStr+#13#10;
//------------------------Soldis Kosten-----------------------------------------
    SoldisKosten:=Trunc(Soldis)*Trunc((Stufe+1)*Power(1.5,Stufe));
    SoldisKostenStr:=floattostr(SoldisKosten);
    MSoldisKosten.Text:=MSoldisKosten.Text+SoldisKostenStr+#13#10;
//------------------------Lager Menge-------------------------------------------
    Lagermenge:=Trunc(Lager)*Trunc((Stufe+1)*Power(1.5,Stufe));
    LagerStr:=floattostr(Lagermenge);
    MLager.Text:=MLager.Text+LagerStr+#13#10;
  end;
end;

procedure TForm1.StufeAnzeigen;
var
  I:integer;
  Anzahl:integer;
  AnzahlStr:string;

begin
  Anzahl:=0;
  for I := 0 to Stufe40 - 1 do
  begin
    Anzahl:=Anzahl+1;
    AnzahlStr:=inttostr(Anzahl);
    MStufe.Text:=MStufe.Text+AnzahlStr+#13#10;

  end;
end;

procedure TForm1.BCloseClick(Sender: TObject);
begin
  //ShowMessage('Created by Xearox - Copyright 2009-2010');
  //ShowMessage('Quelle: Evil-Empire.biz');
  close;
end;

procedure TForm1.BuildingChange;
begin
// In einer Bedingungsabfrage muss man nicht prüfen, ob ein Wert "true" ist. Wenn er das ist, kann man ihn direkt abfragen
  if RMetMine.Checked then
  begin
    RessChangeMet:=MMMetall;
    RessChangeKris:=MMKristall;
    RessChangeZivis:=MMZivis;
    RessChangeSoldis:=MMSoldis;
    LagerChange:=MMLager;
  end;
  if RKrisMine.Checked then
  begin
    RessChangeMet:=KMMetall;
    RessChangeKris:=KMKristall;
    RessChangeZivis:=KMZivis;
    RessChangeSoldis:=KMSoldis;
    LagerChange:=KMLager;
  end;
  if RAntiFabrik.Checked then
  begin
    RessChangeMet:=AFMetall;
    RessChangeKris:=AFKristall;
    RessChangeZivis:=AFZivis;
    RessChangeSoldis:=AFSoldis;
    LagerChange:=AFLager;
  end;
  if RMetLager.Checked then
  begin
    RessChangeMet:=MLMetall;
    RessChangeKris:=MLKristall;
    RessChangeZivis:=MLZivis;
    RessChangeSoldis:=MLSoldis;
    LagerChange:=MLLager;
  end;
  if RKrisLager.Checked then
  begin
    RessChangeMet:=KLMetall;
    RessChangeKris:=KLKristall;
    RessChangeZivis:=KLZivis;
    RessChangeSoldis:=KLSoldis;
    LagerChange:=KLLager;
  end;
  if RAntiLager.Checked then
  begin
    RessChangeMet:=ALMetall;
    RessChangeKris:=ALKristall;
    RessChangeZivis:=ALZivis;
    RessChangeSoldis:=ALSoldis;
    LagerChange:=ALLager;
  end;
  if RWohnraum.Checked then
  begin
    RessChangeMet:=WMetall;
    RessChangeKris:=WKristall;
    RessChangeZivis:=WZivis;
    RessChangeSoldis:=WSoldis;
    LagerChange:=WLager;
  end;
  if RKaserne.Checked then
  begin
    RessChangeMet:=KMetall;
    RessChangeKris:=KKristall;
    RessChangeZivis:=KZivis;
    RessChangeSoldis:=KSoldis;
    LagerChange:=KLager;
  end;
  if RForschungszentrum.Checked then
  begin
    RessChangeMet:=FMetall;
    RessChangeKris:=FKristall;
    RessChangeZivis:=FZivis;
    RessChangeSoldis:=FSoldis;
    LagerChange:=FLager;
  end;
  if RRaumhafen.Checked then
  begin
    RessChangeMet:=RaMetall;
    RessChangeKris:=RaKristall;
    RessChangeZivis:=RaZivis;
    RessChangeSoldis:=RaSoldis;
    LagerChange:=RaLager;
  end;
  if RRuestungswerke.Checked then
  begin
    RessChangeMet:=RuMetall;
    RessChangeKris:=RuKristall;
    RessChangeZivis:=RuZivis;
    RessChangeSoldis:=RuSoldis;
    LagerChange:=RuLager;
  end;
  if RHandelszentrum.Checked then
  begin
    RessChangeMet:=HMetall;
    RessChangeKris:=HKristall;
    RessChangeZivis:=HZivis;
    RessChangeSoldis:=HSoldis;
    LagerChange:=HLager;
  end;
  if RMilizHQ.Checked then
  begin
    RessChangeMet:=MHQMetall;
    RessChangeKris:=MHQKristall;
    RessChangeZivis:=MHQZivis;
    RessChangeSoldis:=MHQSoldis;
    LagerChange:=MHQLager;
  end;
  if ROffiziersschule.Checked then
  begin
    RessChangeMet:=OMetall;
    RessChangeKris:=OKristall;
    RessChangeZivis:=OZivis;
    RessChangeSoldis:=OSoldis;
    LagerChange:=OLager;
  end;
  if RSensoren.Checked then
  begin
    RessChangeMet:=SMetall;
    RessChangeKris:=SKristall;
    RessChangeZivis:=SZivis;
    RessChangeSoldis:=SSoldis;
    LagerChange:=SLager;
  end;
  if RKlontanks.Checked then
  begin
    RessChangeMet:=KTMetall;
    RessChangeKris:=KTKristall;
    RessChangeZivis:=KTZivis;
    RessChangeSoldis:=KTSoldis;
    LagerChange:=KTLager;
  end;
  if RMateriekonverter.Checked then
  begin
    RessChangeMet:=KMMetall;
    RessChangeKris:=KMKristall;
    RessChangeZivis:=KMZivis;
    RessChangeSoldis:=KMSoldis;
    LagerChange:=KMLager;
  end;
  if RRoboterwerkstatt.Checked then
  begin
    RessChangeMet:=RoMetall;
    RessChangeKris:=RoKristall;
    RessChangeZivis:=RoZivis;
    RessChangeSoldis:=RoSoldis;
    LagerChange:=RoLager;
  end;
  if RSprungtor.Checked then
  begin
    RessChangeMet:=SpMetall;
    RessChangeKris:=SpKristall;
    RessChangeZivis:=SpZivis;
    RessChangeSoldis:=SpSoldis;
    LagerChange:=SpLager;
  end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  MemoLeeren;
  BuildingChange;
  StufeAnzeigen;
  Baukosten;
end;

end.
Quake User
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Fr 15.01.10 01:57 
1. Der Code einer Funktion sollte nur 1/2 - max 1 Seite lang sein. Du solltest Klassen von AUfgaben in einzelnen Funktionen (oder Proceduren) zusammenfassen. Zu begin könnte das bspw. eine "procerure init" sein.

2. wie schon von anderen Usern empfohlen, solltest Du statt der vielen Variablen, die sich zu einer Klasse zusammenfassen lassen, eine Klasse verwenden.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 15.01.10 02:49 
Ich geb keine konstruktive Kritik ab sonder mal ein Lob:

Ich find es super das deine Codeformatierung so toll geklappt hat und das die Benennung der Variablen einwandfrei ist, was ich so auf den ersten Blick gesehen habe. Respekt! :zustimm:

Quelltextkommentare sind schon teilweise vorhanden, dürften aber denk ich noch mehr und erklärender werden.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Xearox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260
Erhaltene Danke: 3



BeitragVerfasst: Fr 15.01.10 06:12 
user profile iconrizla hat folgendes geschrieben Zum zitierten Posting springen:
Sind Radiobuttons nicht dafür da, dass man nur eine Möglichkeit auswählt?
Für alles andere sind doch Checkboxes da, oder irr ich?

Hab zwar keine Ahnung, was "Planeten Klassen" sind, aber mit

ausblenden Delphi-Quelltext
1:
chkGebaeude.enabled := (not chkPlanetenKlasse.checked);					


(wobei chk für Checkboxen steht - jedenfalls in meiner welt ;))

in der chkPlanetenKlasseOnChange kann ich schon mal sicherstellen, dass das eine das andere ausschließt..

Hmm..

Aber es sieht wohl so aus, daß ich mir deine Source wohl selber kompilieren müsste, um überhaupt zu verstehen,
was wie zusammenhängt. Ein Screenie wär vllt. gar nicht so verkehrt...


:r:


Es gibt verschiedene Planeten Klassen.
Z.b. Werden bei einem A Planeten mehr Antimaterie Produktziert als bei den Anderen Planeten.
Bei einem B Planeten wird mehr Kristall produktziert.
Bei einem C Planeten wird mehr Kristall produktziert.
Bei einem D plani wird Kristall, Metall und Antimaterie in einem guten verhältnis Produktziert, aber weniger, als wenn man einen A,B oder C plani hat.
Ein E plani kann man vergessen, weil der eher was Positives hat...
Ein F plani hat die beste Geburtenrate, und man kann daher schneller Zivis produktzieren, denn um so mehr Zivis man ha, um so mehr werden pro stunde hergestellt...
Xearox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260
Erhaltene Danke: 3



BeitragVerfasst: Fr 15.01.10 10:35 
user profile iconbaka0815 hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
//-------------Metall Mine------------------------------------------------------
  MMMetall=125;
  MMKristall=12;
  MMZivis=50;
  MMSoldis=0;
  MMLager=0;

Da dies ja immer dasselbe, ich würde dir hier also irgend 'ne Struktur empfehlen (also entweder Klasse oder Record - in diesem Fall ist ein Record vermutlich ausreichend).

ausblenden 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:
type
  TDing = record
    Metall: Integer;
    Kristall: Integer;
    Zivis: Integer;
    Soldis: Integer;
    Lager: Integer;
  end;

var
  MetallMine, KristallMine: TDing;

begin
  MetallMine.Metall := 125;
  MetallMine.Kristall := 12;
  MetallMine.Zivis := 50;
  MetallMine.Soldis := 0;
  MetallMine.Lager := 0;

  KristallMine.Metall := 10;
  KristallMine.Kristall := 100;
  KristallMine.Zivis := 75;
  KristallMine.Soldis := 0;
  KristallMine.Lager := 0;
end;


Sowas in der Art (ungetestet).



Kann mir das jemand genauer erklären?
Kenne mich damit nicht aus...

bzw. was muss ich dafür nach lesen, um das zu lernen...

Oder wenn es geht, mir ein Bespiel, also ein komplettes beispiel aus meinem Code einfügen, wie ich am besten das mit dem Record einabaue und dieses auch weiter unten benutzen kann, da ich nicht wirklich druch steige, wie ich das mache
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Fr 15.01.10 11:06 
Also ich würde eher so etwas in der Art wie das da vorschlagen.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
type
  TDingTypes = (dtMM, dtKM, dtAF);
  TDing = record
    Metall: Integer;
    Kristall: Integer;
    Zivis: Integer;
    Soldis: Integer;
    Lager: Integer;
  end;

const
  DingConsts: array [TDingTypes] of TDing = (
    (Metall: 125;   Kristall:  12;  Zivis:  50;  Soldis: 0;  Lager: 0; ),   // dtMM
    (Metall:  10;   Kristall: 100;  Zivis:  75;  Soldis: 0;  Lager: 0; ),   // dtKM
    (Metall:  25;   Kristall: 125;  Zivis: 100;  Soldis: 0;  Lager: 0; )    // dtAF
  );


TDing und TDingTyes muss selbst noch umbenannt werden. Also in was passendes. TDingTypes gibt die unterschiedlichen Typen an die du hast. In DingConsts werden für jeden Typen die Konstanten hinterlegt. Dadurch kannst du die Konstanten recht einfach zusammenstampfen. Du musst natürlich TDingTypes und DingConts selbst noch erweitern.

Beim Zugriff darauf musst du nur noch den passenden Typen auswählen und dann mithilfe des Typens auf das Array zugreifen. Das könntest auch direkt mit dtMM machen.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var
  Ding: TDingType;
begin
  if RMetMine.Checked=true then
    Ding := dtMM
  else
  if RKrisMine.Checked=true then
    Ding := dtKM
  else
  if RAntiFabrik.Checked=true then
    Ding := dtAF;

  RessChangeMet := DingConsts[Ding].Metall;
  RessChangeKris := DingConsts[Ding].Kristall;
  RessChangeZivis := DingConsts[Ding].Zivis;
  RessChangeSoldis := DingConsts[Ding].Soldis;

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
Xearox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260
Erhaltene Danke: 3



BeitragVerfasst: So 24.01.10 08:43 
So, nun bin ich auch mal wieder zurück...
Ich habe mein Programm auf insgesamt 6 Units aufgeteilt...
Warum 6? Weil ich einige Lange Prozeduren habe, und diese übersichtshalber in einer eigenen Unit verfrachtet habe...
Hier nun aber die Unit mit den Variabeln und Konstanten...
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:
unit Unit2;

interface

type
  MinenArrayType = Array [1..31..5of double;
  LagerArrayType = Array [1..41..5of double;
  PlaniArrayType = Array [1..61..7of double;

var
  MinenTyp : MinenArrayType;
  LagerTyp : LagerArrayType;
  PlaniTyp : PlaniArrayType;

const
Stufe40=40//Gebäude Stufe wird Festgelegt!





//-------------Kaserne----------------------------------------------------------
  KMetall=250;
  KKristall=100;
  KZivis=125;
  KSoldis=0;
  KLager=500;
//-------------Forschungszentrum------------------------------------------------
  FMetall=125;
  FKristall=400;
  FZivis=250;
  FSoldis=0;
  FLager=0;
//-------------Raumhafen--------------------------------------------------------
  RaMetall=375;
  RaKristall=250;
  RaZivis=100;
  RaSoldis=37;
  RaLager=0;
//-------------Rüstungswerke----------------------------------------------------
  RuMetall=250;
  RuKristall=125;
  RuZivis=125;
  RuSoldis=50;
  RuLager=0;
//-------------Handelszentrum---------------------------------------------------
  HMetall=100;
  HKristall=50;
  HZivis=250;
  HSoldis=0;
  HLager=0;
//-------------MilizHQ----------------------------------------------------------
  MHQMetall=375;
  MHQKristall=125;
  MHQZivis=1250;
  MHQSoldis=50;
  MHQLager=0;
//-------------Offiziersschule--------------------------------------------------
  OMetall=3750;
  OKristall=3750;
  OZivis=2500;
  OSoldis=5000;
  OLager=0;
//-------------Sensoren---------------------------------------------------------
  SMetall=2500;
  SKristall=7500;
  SZivis=2500;
  SSoldis=1250;
  SLager=0;
//-------------Klontanks--------------------------------------------------------
  KTMetall=375;
  KTKristall=500;
  KTZivis=125;
  KTSoldis=0;
  KTLager=0;
//-------------Materiekonverter-------------------------------------------------
  MaMetall=1250;
  MaKristall=2500;
  MaZivis=2000;
  MaSoldis=0;
  MaLager=0;
//-------------Roboter Werkstatt------------------------------------------------
  RoMetall=3750;
  RoKristall=7500;
  RoZivis=2500;
  RoSoldis=0;
  RoLager=0;
//-------------Sprungtor--------------------------------------------------------
  SpMetall=500;
  SpKristall=250;
  SpZivis=125;
  SPSoldis=25;
  SPLager=0;
//-------------Planeten Klassen-------------------------------------------------



var
  BuildingChange:Boolean;
  RessChangeMet:double;
  RessChangeKris:double;
  RessChangeZivis:double;
  RessChangeSoldis:double;
  BonusChange:double;
  MBonus,MBonusChange,KBonus,KBonusChange,ABonus,ABonusChange,ZBonus,ZBonusChange:Double;
  LagerChange:double;
  Metall,Kristall,Zivis,Soldis,Lager:double;
  Bonus:double;
  MetKosten,KrisKosten,ZiviKosten,SoldisKosten,Lagermenge,GesamtLager:double;
  MRessProd,KRessProd,ARessProd:double;
  kosten:integer;
  I:integer;
  MetKostenStr:String;
  KrisKostenStr:String;
  ZiviKostenStr:string;
  SoldisKostenStr:String;
  RessProdStr:string;
  LagerStr:String;
  MetProd,KrisProd,AntiProd:double;

implementation

begin

//-------------Metall Mine------------------------------------------------------
  MinenTyp[1,1]:=125;
  MinenTyp[1,2]:=12;
  MinenTyp[1,3]:=50;
  MinenTyp[1,4]:=0;
  MinenTyp[1,5]:=0;
//-------------Kristall Mine----------------------------------------------------
  MinenTyp[2,1]:=10;
  MinenTyp[2,2]:=100;
  MinenTyp[2,3]:=75;
  MinenTyp[2,4]:=0;
  MinenTyp[2,5]:=0;
//-------------Anti Fabrik------------------------------------------------------
  MinenTyp[3,1]:=25;
  MinenTyp[3,2]:=125;
  MinenTyp[3,3]:=100;
  MinenTyp[3,4]:=0;
  MinenTyp[3,5]:=0;
//-------------Metall Lager-----------------------------------------------------
  LagerTyp[1,1]:=25;
  LagerTyp[1,2]:=12;
  LagerTyp[1,3]:=12;
  LagerTyp[1,4]:=0;
  LagerTyp[1,5]:=5000;
//-------------Kristall Lager---------------------------------------------------
  LagerTyp[2,1]:=25;
  LagerTyp[2,2]:=12;
  LagerTyp[2,3]:=12;
  LagerTyp[2,4]:=0;
  LagerTyp[2,5]:=5000;
//-------------Anti Lager-------------------------------------------------------
  LagerTyp[3,1]:=25;
  LagerTyp[3,2]:=37;
  LagerTyp[3,3]:=25;
  LagerTyp[3,4]:=0;
  LagerTyp[3,5]:=5000;
//-------------Wohnraum---------------------------------------------------------
  LagerTyp[4,1]:=75;
  LagerTyp[4,2]:=25;
  LagerTyp[4,3]:=12;
  LagerTyp[4,4]:=0;
  LagerTyp[4,5]:=5000;
//-------------Planeten---------------------------------------------------------
//-------------Klasse A Planet--------------------------------------------------
PlaniTyp[1,1]:=  800;
PlaniTyp[1,2]:=  500;
PlaniTyp[1,3]:= 100;
PlaniTyp[1,4]:=  80;
PlaniTyp[1,5]:=  80;
PlaniTyp[1,6]:= 80;
PlaniTyp[1,7]:= 0;
//-------------Klasse B Planet--------------------------------------------------
PlaniTyp[2,1]:=  800;
PlaniTyp[2,2]:= 500;
PlaniTyp[2,3]:=100;
PlaniTyp[2,4]:=  100;
PlaniTyp[2,5]:= 125;
PlaniTyp[2,6]:= 100;
PlaniTyp[2,7]:=  1;
//-------------Klasse C Planet--------------------------------------------------
PlaniTyp[3,1]:=800;
PlaniTyp[3,2]:= 500;
PlaniTyp[3,3]:=100;
PlaniTyp[3,4]:=  125;
PlaniTyp[3,5]:=  100;
PlaniTyp[3,6]:= 100;
PlaniTyp[3,7]:=  0;
//-------------Klasse D Planet--------------------------------------------------
PlaniTyp[4,1]:=800;
PlaniTyp[4,2]:=500;
PlaniTyp[4,3]:=100;
PlaniTyp[4,4]:=  110;
PlaniTyp[4,5]:=  110;
PlaniTyp[4,6]:= 80;
PlaniTyp[4,7]:=  2;
//-------------Klasse E Planet--------------------------------------------------
PlaniTyp[5,1]:=800;
PlaniTyp[5,2]:=500;
PlaniTyp[5,3]:=100;
PlaniTyp[5,4]:=  100;
PlaniTyp[5,5]:=  100;
PlaniTyp[5,6]:= 70;
PlaniTyp[5,7]:=  3;
//-------------Klasse F Planet--------------------------------------------------
PlaniTyp[6,1]:=800;
PlaniTyp[6,2]:=500;
PlaniTyp[6,3]:=100;
PlaniTyp[6,4]:=  90;
PlaniTyp[6,5]:=  90;
PlaniTyp[6,6]:= 60;
PlaniTyp[6,7]:=  5;
//------------------------------------------------------------------------------
end.



Ist jedoch noch nicht ganz geändert...
Meine Frage ist jedoch, kann ich das so machen, oder kann ich das ganze noch kleiner machen?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 24.01.10 11:41 
Was die Konstanten angeht hat user profile iconLossy eX ja schon eine sehr viel kürzere und übersichtlichere Methode vorgeschlagen. Gleiches gilt für deine Arrays, das geht mit konstanten Arrays ebenfalls viel kürzer.
ausblenden Delphi-Quelltext
1:
2:
const
  MyArray: array[0..3of Integer = (1234);


Globale Variablen sollte man vermeiden wann immer es geht, das bringt nur Unübersichtlichkeit und unnötige Fehlerquellen.

user profile iconXearox hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.BuildingChange;
begin
  if RMetMine.Checked=true then
  begin
Solche Vergleiche mit True können ganz böse ins Auge gehen und sind auch vollkommen unlogisch...
Mehr dazu steht hier.