Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2009, 00:55   #1
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию Функции Lua

Если знает кто, как передать из Delphi в скрипт функцию, чтобы работало? Передавать переменные и считывать их значения получилось, но хочется иметь еще и свои функции Lua в скриптах, которые при обращенни к ним выполняли код Delphi и возвращали результат скрипту, в переменную скрипта для дальнейших вычислений скриптом. Спасибо.
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Старый 11.09.2009, 00:58   #2
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Вроде как нельзя.. Да и непонятен замысел вобще.
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 11.09.2009, 01:07   #3
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию

Код:
// Сообщение
function LuaAlert(L: Plua_State): Integer; cdecl;
var
  I, N, K, FF: Integer;
  S: String;
  F: TSplitResult;
begin
  N := lua_gettop(L);
  for I := 1 to N do
  begin
    if (lua_isnumber(L, I) > 0) then
    begin
      K := round(lua_tonumber(L, I));
      Alert(K);
      Result := 0;
      Exit;
    end;
    S := lua_tostring(L, I);
    if (Pos(S, '|') > -1) then
    begin
      Randomize;
      F := Split(S, '|');
      FF := Random(High(F) + 1);
      if IsNumber(F[FF]) then Alert(StrToInt(F[FF])) else Alert(F[FF]);
      Result := 0;
      Exit;
    end;
  end;
  if (S = '') then Exit;
//  Alert(S);
  Result := 0;
end;
После регистрации в скрипте пишу Alert("что-то") и все пашет, сообщение выскакивает, как если бы было вызвано из программы. А вот мне нужно переменной в скрипте A передать значение ф-ции? Как такое сделать?

Для чего нужно? Скажем скрипт должен считать данные из зашифрованого файла в некую переменную в скрипте. Как подобное можно провернуть, если расшифровать файл может только сама программа? Может есть другой путь?
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты

Последний раз редактировалось Stilet; 11.09.2009 в 07:58.
apromix вне форума Ответить с цитированием
Старый 11.09.2009, 07:48   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Вам это надо?
Код:
function incA(lua_VM:Plua_State):Integer; cdecl;
var a:double;
begin
a:=lua_tonumber(lua_VM, 1);//Читаем первый аргумент функции
inc(a);//Прибавляем один
lua_pushnumber(luaVM, a);//Возвращаем значение функции
Result:= 1;
end;

lua:
a=incA(a)
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 11.09.2009, 10:30   #5
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию

Помогло. Огромное всем спасибо
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чем отличается описание функции от определения функции в С++? Go6a Помощь студентам 4 18.07.2009 18:07
функции в С Viamy Помощь студентам 0 02.06.2009 10:44
Функции. Передача массива в качестве параметра функции. Wia Помощь студентам 2 17.03.2009 14:57
Delphi и скрипты LUA apromix Общие вопросы Delphi 0 07.12.2008 21:17
Функции xxxPascalxxx Помощь студентам 2 28.12.2007 18:04