Autor Beitrag
BumBum
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Fr 06.03.09 15:44 
Hallo,

ich bin ein Delphileihe und kenne mich nicht besonders gut damit aus. Ich schaffe es vielleicht unter mühe und not einen Taschenrechner zu programmieren. :oops: :!:

Ich habe ein cooles Rennen zum download im Internet gefunden, und möchte dieses gerne ein bischen aus Spaß ändern. :!: 8)

Wäre euch sehr verbunden wenn ihr mir das Programm also den Quellcode "erklären" könntet wie in dem Beitrag: [Delphi, Win32] Delphin V1.00 wo neben jeder Zeile mit "//" geschrieben ist was dieser Befehl bewirkt. :?: :wink: :roll:


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:
procedure TForm1.FormResize(Sender: TObject);
var
   i: Integer;
begin
     SgData.Width := ClientWidth;
     SgData.DefaultColWidth := SgData.Width div SgData.ColCount;

     SgData.Height := SgData.RowCount * SgData.DefaultRowHeight;

     for i := Low(Auto) to High(Auto) do
     begin
          Auto[i].PbSpeed.Boundsrect := SgData.Cellrect(8, i + 1);
          Auto[i].PbThrottle.Boundsrect := SgData.Cellrect(9, i + 1);
     end;
end;

function GetCarBgd(Ground: TBitmap; Form: array of TPoint; Color: TColor): Integer;
var
i: Integer;
begin
     result := 0;
     for i := Low(form) to High(form) do
     if Ground.Canvas.Pixels[form[i].x, form[i].y] = color then
         inc(result);
end;

function ColorToHtml(AColor: TColor): string;
begin
 Result := IntToHex(ColorToRgb(AColor), 6);
 Result := '#' + Copy(Result, 52) + Copy(Result, 32) + Copy(Result, 12);
end;

function HtmlToColor(AHtmlColor: string): TColor;
begin
 Delete(AHtmlColor, 11);
 Result := StrToInt('$' + Copy(AHtmlColor, 52) + Copy(AHtmlColor, 32) + Copy(AHtmlColor, 12));
end;

procedure Rotate(car: TAuto; m: TPoint; dir: double);
var
   i: Integer;
   Sinus, Cosinus: Extended;
begin
     SinCos(degtorad(dir), sinus, cosinus);
     for i := 0 to High(car.form) do
     begin
         Car.Form[i].x := Round(Car.StdForm[i].x*cosinus + car.StdForm[i].y*sinus + m.x);
         Car.Form[i].y := Round(-Car.StdForm[i].x*sinus + car.StdForm[i].y*cosinus + m.y);
     end;
end;

procedure TForm1.SgDataDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
i: Integer;
begin
     for i := 0 to High(Auto) do
         if ARow = i + 1 then
            begin
                 SgData.Canvas.Brush.Color := Auto[i].Color;
                 SgData.Canvas.FillRect(Rect);
                 SgData.Canvas.Font.Color := (not ColorToRGB(Auto[i].Color)) and $00FFFFFF;
            end;
     SgData.Canvas.TextOut(Rect.Left + 2, Rect.Top + 1, SgData.Cells[ACol, ARow]);
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
     SgData.Selection := TGridRect(Rect(-1,-1,-1,-1));
end;

end.


versteh ich komplett nicht


Zuletzt bearbeitet von BumBum am Di 17.03.09 21:52, insgesamt 3-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: Fr 06.03.09 15:54 
Moin und :welcome: im Forum!

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!

Vorschlag: "Hilfe zum Verstehen eines (fremden) Quelltexts gesucht"

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 06.03.09 16:08 
Die Frage ist eigentlich was genau du nicht verstehst, denn den ganzen Quelltext zu erklären dauert ja ewig.

Vor allem, weil wir keine Ahnung von deinem Kenntnisstand haben. Da verwirren dann zu ausführliche Erklärungen eher, machen aber trotzdem viel Mühe erstmal.

Stell doch lieber konkrete Fragen, wenn dir an einer Stelle etwas unklar ist. :wink:


Zuletzt bearbeitet von jaenicke am Fr 06.03.09 16:25, insgesamt 2-mal bearbeitet
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Fr 06.03.09 16:20 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Die Frage ist eigentlich was genau du nicht verstehst, ich meine den ganzen Quelltext zu erklären dauert ja ewig, vor allem, weil wir keine Ahnung von deinem Kenntnisstand haben. Da verwirren dann zu ausführliche Erklärungen eher, machen aber vor allem auch viel Mühe erstmal.

Stell doch lieber konkrete Fragen, wenn dir an einer Stelle etwas unklar ist. :wink:

Die Satzstellung ist aber auch so verwirrend, das ich etliche Anläufe brauchte um den Sinn zu verstehen. :wink:
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 06.03.09 16:25 
Ich mag Bandwurmsätze eben. :) So besser? :D
BumBum Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Fr 06.03.09 18:28 
Ja ich hab ja desswegen geschrieben ich kann die Grundtypen und so .. kann also einen zB Taschenrechner oder so programmieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 06.03.09 20:50 
Ja, das sind 450 Zeilen Quelltext, die kann man nicht so einfach schnell erklären...

Wenn du nicht einmal in der Lage bist zu dem Quelltext und deinen Verständnisproblemen konkrete Fragen zu stellen, dann ist solch ein Projekt für dich wohl noch eine Nummer zu groß. :nixweiss:
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1335
Erhaltene Danke: 118

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Fr 06.03.09 21:10 
Das Spiel scheint ja ziemlich einfach gestickt zu sein. Ich würde sagen, mach es einfach so wie ich damals auch : probier ein bisschen rum und schau was passiert. Wenn du dann einen Quelltextabschnitt verstanden hast schreibst du einen Kommentar dran was er macht.
Das ist im übrigen die allerbeste Art um etwas zu lernen (es selber ausprobieren).

Nebenbei, sogar ich habe was gelernt : SinCos kannte ich noch nicht.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
BumBum Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 10.03.09 22:08 
Meine Fragen lauten :

Wo ist definiert wie die Autos aussehen? 8)

Wo ist definiert wo die Autos starten? :idea:

Wo ist die Lenkung definiert? :?: ( im spiel muss man immer so oft klicken statt dauerhaft gas zugeben)

Wie kann man dieses SgData wegbekommen ohne das programm zu beschädigen? :oops:
(SgData wird auch im Spiel unten immer angezeit worin dann die Zeit, Geschwindigkeit, Runden usw steht)

Ich danke euch vielmals im vorraus, dass ihr mir helft !!! :!: :!: :roll:

Moderiert von user profile iconNarses: Neues Topic hier zusammengeführt