Autor Beitrag
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 24.04.10 17:45 
user profile iconStarido hat folgendes geschrieben Zum zitierten Posting springen:
Bevor ich jetzt hier alles falsch mache, habe mich an den arrays versucht und dies ist dabei herausgekommen bei einer funktion die zuvor über 200 Zeilen ging

Siehst Du ;-) So einfach kann das sein ;-)

user profile iconStarido hat folgendes geschrieben Zum zitierten Posting springen:
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:
procedure TFormel1Manager.Zeitenberechnungen;
begin

 for i:=1 to 21 do begin
  if Reifenvertrag[i] = 0 then begin
   RT[i]:=S2*60;
  end;

  if Reifenvertrag[i] = 1 then begin
   RT[i]:=S1*60;
  end;

  Motor[i]:=Motor[i]-S1*2-random(8);
  Benzinmenge[i]:=Benzinmenge[i]-3;
  Zeiten[i]:=Fahrerstaerken[i]+Teamstaerken[i];
  RundeGetroffen[i]:=random(12)+11;
  Zeiten[i]:=Zeiten[i]*RundeGetroffen[i]-Fronteinstellung[i]-Heckeinstellung[i];
  Zeiten[i]:=Zeiten[i]-Reifenkompalibität[i]-Benzinmenge[i]-Wettereinfluss[i];
  Zufallsereigniss[i]:=random(500);

  if Aktion.Caption = 'Rennen!' then begin
   Zeitunterschied[i]:=Zeitunterschied[i]+Zeiten[i];
  end;

  if Motor[i] < 1 then begin
   Zeit[i]:=1;
  end;

 end;                                                                           //Gefahrene Runde

end;


Beachte bei der Einrückung, dass Du nicht nach Anzahl abgeschlossener Blöcke, sondern dern Anzahl offener Blöcke einrückst. Hab das mal für deinen Code kurz umgebaut.

Bliebe aber immer noch die Geschichte mit dem Zugriff auf die VCL: Statt ständig abzufragen
ausblenden Delphi-Quelltext
1:
  if Aktion.Caption = 'Rennen!' then begin					

solltest Du einmalig am Anfang deiner Prozedur den Wert auslesen:
ausblenden Delphi-Quelltext
1:
2:
3:
var GradAmRennen: Boolean;

GradAmRennen = Aktion.Caption = 'Rennen!';


Und dann aus
ausblenden Delphi-Quelltext
1:
  if Aktion.Caption = 'Rennen!' then begin					

ein einfaches
ausblenden Delphi-Quelltext
1:
  if GradAmRennen then begin					

machen. Hintergrund dabei ist, dass String-Vergleiche extrem langsam sind, während Boolean- und Ganzzahl-Vergleiche in der Regel schneller bearbeitet werden können. Zudem wird beim Zugriff auf Properties (wie der Caption) immer noch eine Methode aufgerufen, was zusätzlich Zeit kostet. Daher möchte man i.d.R. solchen Aufwand so selten wie möglich betreiben und zeitaufwändige Aufrufe aus einer Schleife fernhalten (und stattdessen zwischengespeicherte Ergebnisse nutzen).

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Starido Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Sa 24.04.10 17:54 
Okay ich werde das gleichmal mit einbringen, danke für den tipp,

eine Sache habe ich gerade noch und zwar ein Fehler beim bisher einzigsten String Array

Klasse besitzt keine Standarteigenschaft
ausblenden Delphi-Quelltext
1:
TeMemo.Lines.Add('Team: '+(Teamname[i])+'');					


Habe versucht ihm eine eigenschaft zuzuordnen aber habe da glaube ich etwas verwechselt
ausblenden Delphi-Quelltext
1:
Teamname := ('Name1','Name2','Name3','Name4','Name5','Name6','Name7','Name8','Name9','Name10',);					


Das ist wohl nicht gemeint.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 24.04.10 18:58 
Wie hast Du Teamname deklariert?

Die Zuweisung in der Form ist nur für das Initialisieren von Konstanten möglich IIRC. Und selbst dann darf das letzte Komma nicht mitgeschrieben werden.

Außerdem: Möglichst keine unnötigen Klammern in Befehlen schreiben, z.B. bei deiner String-Verkettung. Das irritiert unnötig.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.