我正在努力学习德尔福,而我正在制作游戏。我曾经知道一点Pascal,但我对Delphi一无所知。几年前我在Pascal制作了这款游戏。它包含这样一行:
writeln(turn,' ',input,' ',die[turn],' ',wou[turn]);
基本上它意味着显示用户输入的计算结果,这些数字之间有一些空格(所有这些变量都是除“输入”之外的数字,这是一个字符串)。
我试图在Delphi中以类似方式显示结果。虽然最好使用表格,但我不知道如何使用表格,所以我尝试使用列表框。但是items.add程序不像Pascal的writeln
那样工作,因此我现在卡住了。
我是一名新的初学者,所以请让我容易理解。
答案 0 :(得分:7)
使用SysUtils
单元中的Format
功能。它返回一个字符串,您可以在任何可以使用字符串的地方使用它:
// Given these values for turn, input, die[turn], and wou[turn]
turn := 1;
input := 'Whatever';
die[turn] := 0;
wou[turn] := 3;
procedure TForm1.UpdatePlayerInfo;
var
PlayerInfo: string;
begin
PlayerInfo := Format('%d %s %d %d', [turn, input, die[turn], wou[turn]]);
// PlayerInfo now contains '1 Whatever 0 3'
ListBox1.Items.Add(PlayerInfo); // Display in a listbox
Self.Caption := PlayerInfo; // Show it in form's title bar
ShowMessage(PlayerInfo); // Display in a pop-up window
end;
当然,您可以在没有中间字符串变量的情况下直接转到ListBox
:
ListBox1.Items.Add(Format('%d %s %d %d', [turn, input, die[turn], wou[turn]]));
%d
调用的第一部分中的%s
和Format
为格式字符串,其中%d
表示整数的占位符, %s
表示字符串的占位符。该文档讨论了格式字符串here。
答案 1 :(得分:1)
另一种可能性是String Concatenation(添加多个字符串以形成单个新字符串):
// Given these values for turn, input, die[turn], and wou[turn]
turn := 1;
input := 'Whatever';
die[turn] := 0;
wou[turn] := 3;
ListBox1.Items.Add(IntToStr(turn)+' '+input+' '+IntToStr(die[turn])+' '+IntToStr(wou[turn]));
即。将各种元素加在一起:
IntToStr(turn) // The Integer variable "turn" converted to a string
+' ' // followed by a single space
+input // followed by the content of the string variable "input"
+' ' // followed by a single space
+IntToStr(die[turn]) // element no. "turn" of the integer array "die" converted to a string
+' ' // followed by a single space
+IntToStr(wou[turn]) // element no. "turn" of the integer array "wou" converted to a string
形成一个连续的字符串值,并将该值传递给ListBox的Items属性的“Add”方法。