我想知道如何在SDL中的while循环中检测按键或释放键.现在,我知道你可以使用像OnKeyPressed,OnKeyReleased,OnKeyHit等SDL获取事件,但我想知道如何构建像'KeyPressed'这样的函数,它返回一个布尔值,而不是一个事件.例:
while not KeyHit( KEY_ESC )
{
//Code here
}
Run Code Online (Sandbox Code Playgroud) 我想知道这是否可以在Delphi中使用(或者如果有一个干净的方法):
type
TSomething = record
X, Y : Integer;
end;
Run Code Online (Sandbox Code Playgroud)
GetSomething( x, y ) - >返回带有这些值的记录.
...然后你有这个函数TSomething作为参数,你想默认它
function Foo( Something : TSomething = GetSomething( 1, 3 );
Run Code Online (Sandbox Code Playgroud)
编译器在这里发出错误,但我不确定是否有办法绕过它!
可以这样做吗?
好吧,所以我有这个课,让我们说CMain,包含一个CFruit课程.我想要做的是运行基于CFruit类型的函数(如果它是CPear或CApple等).所以我想做这样的事情:
type CMain = class
myFruit : CFruit;
function GetFruit() : CFruit;
procedure SetFruit( Fruit : CFruit );
end;
procedure CMain.SetFruit( Fruit : CFruit );
begin
if Fruit.IsPear then .. else etc;
end;
Run Code Online (Sandbox Code Playgroud)
......很明显,编译器阻止我这样做,因为CFruit只是CPear和CApple的父母.有什么可行的方法可以做到这一点吗?(制作海滩上的CMain是不可能的).谢谢.
我在Delphi 2010中有这个简单的控制台应用程序,当我按下"X"按钮(当我关闭它时)我希望它能做某事(运行一段代码),但我似乎无法找到如何分配一个接近的事件.嗨帮助,谢谢.
我有CObject作为主类,CRock,CDesk,CComputer作为CObject的派生.我想编写一个读取类枚举的函数(整数可能像OBJECT_COMPUTER)并返回特定类型.
例:
function createObject( iType : Integer ) : CObject;
begin
case iType of
OBJECT_ROCK : Result := CRock.Create();
OBJECT_DESK : Result := CDesk.Create();
end;
end;
Run Code Online (Sandbox Code Playgroud)
所以我可以像这样使用它:myRock:= createObject(OBJECT_ROCK);
现在我的问题是返回的对象是主类父类,我不能在'myRock'上使用Rock函数而没有从CObject到CRock的类型转换'createObject(OBJECT_ROCK)'我不希望每个都有3个函数子类.有任何想法吗?提前致谢.
假设我有一个像这样的"test.lua"文件:
myVar = 5
Food = function()
end
Run Code Online (Sandbox Code Playgroud)
如果我通过loadfile或Lua API(用C++或其他)加载文件并运行它,变量将保存在全局命名空间_G下; 但是,我想分开使用它们,比如_test.myVar和_G.myVar.(原因是我希望只有该文件中的变量列表).谢谢.