Thema: Delphi Minesweeper

Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#34

AW: Minesweeper

  Alt 24. Mär 2015, 21:06
Ich wollte mit
A:=StrToInt(Panel.Name[3]); (falls das funktioniert hätte) A aus dem Namen des Panels bestimmen,
aber das Problem ist, dass der Name des Panels an der Stelle (zB P_4_7) auch zweistellig sein kann. (P_10_13)
Dein bisheriger Code ist:
Delphi-Quellcode:
Panel.Name := 'P_' + IntToStr(x) + '_' + IntToStr(y);
...
Ändere das in:
Delphi-Quellcode:
Panel.Name := Format('P_%.2d_%.2d', [x, y]);
...
Das Teil %.2d formatiert die Zahl im String so, dass sie (zumindest bis 99) immer zweistellig ist. Bei Zahl 10 ist die Ausgabe 10. Bei Zahl 5 ist die Ausgabe 05. Also zweistellig.

Der String oben wird also immer von Format P_00_00 sein.

Mit Copy('P_00_00', 3, 2) kannst du das erste Zahlenpaar ermitteln. Mit Copy('P_00_00', 6, 2) das zweite Paar.

Nur wie gesagt, das klappt solange der Wert unter 100 ist. Ansonsten den Code ändern in %.3d. Dann ist die Zahl dreistellig bis 999.
  Mit Zitat antworten Zitat