![]() |
LUA will die Funktion nicht ausführen.
Soo,
ich habe mir ein Tutorial dazu angesehen, fast alles genauso gemacht, aber der Text erscheint nicht :[ Hier mal der Delphi Code:
Delphi-Quellcode:
Soo
unit scripting;
interface uses LUA; procedure InitScripts; procedure CloseScripts; procedure LoadScript(Scriptname: String); procedure PublishFunctions; // ### Here comes the Functions accessable from lua ### function DisplayText(L: Lua_State):integer;cdecl; Var Lua_Instance: Lua_State; implementation uses Unit1; procedure InitScripts; begin Lua_Instance := Lua_Open; LuaOpen_Base(Lua_Instance); end; procedure CloseScripts; begin Lua_Close(Lua_Instance); Lua_Instance := nil; end; procedure LoadScript(Scriptname: String); var Sucess: Integer; begin Sucess := Lua_DoFile(Lua_Instance, PChar(Scriptname)); if Sucess = 2 then Form1.DisplayText(1,0,0,2,'The loading of the Script "' + Scriptname + '" failed!'); end; procedure PublishFunctions; begin lua_pushcfunction( Lua_Instance, DisplayText); lua_setglobal( Lua_Instance, 'DisplayText' ); end; function DisplayText(L: Lua_State):integer;cdecl; var ArgCount: Integer; Red,Blue,Green,Thickness : Single; Text: String; begin argCount := Lua_GetTop(L); // Anzahl Parameter if argCount = 5 then begin Red := Lua_ToNumber(L,1); Green := Lua_ToNumber(L,2); Blue := Lua_ToNumber(L,3); Thickness := Lua_ToNumber(L,4); Text := Lua_ToString(L,5); Form1.DisplayText(Red,Green,Blue,Thickness,Text); end; Lua_Pop(L, argCount); Result := 0; end; end. Der Inhalt der LUA is lediglich
Code:
Jedoch wird der Text nicht angezeigt.
DisplayText(1,0,0,1,"Hello World");
Führ ich die DisplayText von Hand aus geht es. Ich habe nur Zitat:
|
Re: LUA will die Funktion nicht ausführen.
Sicher, dass das nicht so geht:
Delphi-Quellcode:
Bei allen Beispielen, die ich gefunden habe, gab es negative Parameter.
Red := Lua_ToNumber(L, -5);
Green := Lua_ToNumber(L, -4); Blue := Lua_ToNumber(L, -3); Thickness := Lua_ToNumber(L, -2); Text := Lua_ToString(L, -1); MfG, Bug |
Re: LUA will die Funktion nicht ausführen.
Hallo, ich habe es nun gelöst :]
Und zwar, Das mit dem negativen scheint nicht das Problem zu sein, denn egal ob negativ od. positiv es kommt das gleiche raus. Ich hatte lediglich vergessen, die Funktion PublishFunctions aufzurufen, welche die Funktion dem Script übergibt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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