Entwickler-Ecke
Sonstiges (Delphi) - Hilfe zum Verstehen eines (fremden) Quelltexts gesucht
BumBum - Fr 06.03.09 15:44
Titel: Hilfe zum Verstehen eines (fremden) Quelltexts gesucht
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 [
http://www.delphi-forum.de/viewtopic.php?t=68417&highlight=delphin] wo neben jeder Zeile mit "//" geschrieben ist was dieser Befehl bewirkt. :?: :wink: :roll:
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, 5, 2) + Copy(Result, 3, 2) + Copy(Result, 1, 2); end;
function HtmlToColor(AHtmlColor: string): TColor; begin Delete(AHtmlColor, 1, 1); Result := StrToInt('$' + Copy(AHtmlColor, 5, 2) + Copy(AHtmlColor, 3, 2) + Copy(AHtmlColor, 1, 2)); 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
Narses - 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 [
http://www.entwickler-ecke.de/richtlinien.html]:
| 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

oder

klicken und den Titel ändern. Danke Dir!
Vorschlag: "
Hilfe zum Verstehen eines (fremden) Quelltexts gesucht"
cu
Narses
jaenicke - 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:
Blackheart666 - Fr 06.03.09 16:20
jaenicke hat folgendes geschrieben : |
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 - Fr 06.03.09 16:25
Ich mag Bandwurmsätze eben. :) So besser? :D
BumBum - 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 - 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 - 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.
BumBum - 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
Narses: Neues Topic hier zusammengeführt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!