AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Anfängerin muss (ähnliches wie) Frogger programmieren
Thema durchsuchen
Ansicht
Themen-Optionen

Anfängerin muss (ähnliches wie) Frogger programmieren

Ein Thema von Sophia_X · begonnen am 19. Dez 2004 · letzter Beitrag vom 23. Dez 2004
 
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#26

Re: Anfängerin muss (ähnliches wie) Frogger programmieren

  Alt 20. Dez 2004, 19:44
Zitat von Sophia_X:
@Oxmyx

Ich bewunder es, wie schnell ihr so was hinkriegt. Übung macht den Meister, ne? Mir persönlich macht programmieren ziemlich viel spaß, aber mir mangelt es noch zu sehr an Kenntnise. Durch so ein Spiel kann man echt viel lernen und man hat ein Erfolgserlebnis.

Dein Quelltext hilft mir sehr viel weiter. Darauf wäre ich nie gekommen. Was ich gar nicht so verstehe ist folgendes:
Delphi-Quellcode:
for i := 1 to 10 do begin
    ZeroMemory(@AutoName, sizeof(AutoName));
    strlfmt(@AutoName, 32, 'Auto%d', [i]);
Wusste gar nicht, dass es so ein @ gibt. Und das %
Das @ ist der Adress-Operator. Wenn man ein @ vor eine Variable schreibt, dann liefert dieser Operator die Speicheradresse dieser Variablen zurück.
AutoName ist ja ein "array[0..31] of Char", also ein Array mit 32 Char-Variablen drin. Da jede Char-Variable ein Zeichen enthalten kann, ist ein Array of Char also so etwas wie ein "string".
Mit der Funktion ZeroMemory lösche ich den Speicherbereich, an der dieser Zeichenstring steht. Weil es kann sein, dass dort noch irgendwas steht, und dass das Char-Array wirklich ganz leer (mit Nullen gefüllt) ist, überschreibe ich einfach den gesamten Speicherbereich, den das Array einnimmt, mit Nullen (nichts anderes macht die ZeroMemory-Funktion).
Die Funktion strlfmt formatiert einen String nach einem vorgegeben Format. Der erste Parameter ist der String, in den geschrieben werden soll. Der zweite Parameter ist die größe des Arrays (da ein "Char" ein Byte groß ist, und das Array 32 Chars enthält, ist die Größe des Arrays also 32 Byte). Der dritte Parameter ist das Format des Strings. Das %d ist ein Formatsymbol. Es besagt. dass an dieser Stelle etwas in den String eingefügt werden soll (das "d" hinter dem % besagt, dass ein Ganzzahl-Wert an dieser Stelle eingefügt werden soll). Der einzufügende Wert steht im vierten Parameter.
Nachdem die Funktion ausgeführt wurde, steht im ersten Schleifendurchlauf in AutoName "Auto1", im zweiten Schleifendurchlauf steht in AutoName "Auto2", etc., weil strlfmt immer die Zählvariable hinter "Auto" setzt. Dann sucht FindComponent im 1. Schleifendurchlauf nach "Auto1" (und das ist ja der Name eines TImage-Steuerelements!), im 2. Schleifendurchlauf nach "Auto2", etc.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz