Genau aus dem Grund, warum "map" nicht global sein sollte ( Es würde sich doch bestimmt bei Apfel, Futter und Co. ganz wohl fühlen? ), sondern in dem Scope/Gültigkeitsbereich deklariert sein sollte, damit diese Variable so nah wie möglich an der Verwendung liegt und sich somit schwerer eine andere "gleichnamige" Variable dazwischenschleichen kann, sollte man auch keine globalen Variablen verwenden.
Im Falle von "map" würde man dann das naheliegenste bekommen,
geneuso, wie du hier das naheliegenste Feld "Form1" abbekommen hast und nicht die böse globale Variable "Form1".
Zitat:
einfach Form1 lassen oder?
Nein, davon ist abzuraten.
Du bist schon in der Form, also greif auch direkt drauf zu.
Delphi-Quellcode:
procedure TForm1.Beenden1Click(Sender: TObject);
begin
snake_ende;
if MessageDlg('Möchtest du das Spiel schließen?', mtCustom, [mbYes, mbNo], 0) = mrYes then
Close;
end;
// oder
procedure TForm1.Beenden1Click(Sender: TObject);
begin
Self.snake_ende;
if MessageDlg('Möchtest du das Spiel schließen?', mtCustom, [mbYes, mbNo], 0) = mrYes then
Self.Close;
end;
Vergleich: Du kannst von der Stube direkt in die Küche gehn,
oder du kannst aber auch erst in den Keller und von dort mit dem Ersatzschlüssel durch die Hintertür zur Küche.
(Passe aber auf, daß du dort nicht den falschen Schlüssel, zur Nachbarwohnung erwischst ... genau sowas passiert mir globalen Generalschlüsseln ganz schnell mal)