Значения переменных

Обсуждения программы xStartDesigner

Значения переменных

Сообщение Bidgo » Вт мар 07, 2006 10:50 am

Подскажите,
1. Как можно узнать значение переменной в определенный момент выполнения, например при пошаговом выполнении.
2. Как узнать, что вернет функция , например GetStringBlockCount или GetFilesList.
Аватара пользователя
Bidgo
Пилотируем с автопилотом
 
Сообщения: 21
Зарегистрирован: Ср мар 01, 2006 3:10 pm
Откуда: Ukraine, Poltava
Поблагодарил раз:
Благодарностей: раз в форуме теме

Сообщение Alex » Чт мар 09, 2006 7:08 am

1. xStartDesigner имеет отграниченные возможности по отладке/просмотру значений при отладке. Что возможно сейчас:

а) во вкладке Run script поставить Breakpoint на нужной строке. Делается это аналогично Delphi - кликом по серой полосе слева от текста, после клика строка выделяется красным цветом.
б) Если есть хоть один Breakpoint, то после нажатия F9, заполнения полей ввода и нажатия ОК программа остановит выполнение в выделенной строке.
в) Внизу окна во вкладке Run script есть два списка отображения. Левый показывает ошибки, сообщения или текст, передаваемый процедурой WriteLog. Правый отображает все локальные переменные скрипта. При двойном клике на нужно переменной отображается ее значение.
Ограничение: не отображаются значение переменных типа TObject (и всех наследников) и Record.

2. Отлаживать плагины можно с помощью функции WriteLog. В нее передается имя действия и текст.

Функция GetStringBlockCount возвращает количество блоков в тексте, разделенных указанным тектом-разделителем.
Пример:
Код: Выделить всё
var i: integer;
begin
...
  i:=GetStringBlockCount('a;b;c',';');
  WriteLog('MyAction', IntToStr(i));
...


Функция GetFilesList заполняет объект типа TStringList именами файлов. Формат:
Код: Выделить всё
GetFilesList(FolderName, FileMask, ExcludeFilesMask: string; FilesList: TStringList; IncludeSubfolders: boolean);


Пример использования:
Код: Выделить всё
var fl: TStringList;
    i: integer;
begin
...
  fl:=TStringList.Create;
  try
    GetFilesList('c:\Distr', '*.*', '*.exe', fl, True); 
    for i:=0 to fl.Count-1 do
      WriteLog('MyAction', fl.Strings[i]);
  finally
    fl.Free;
  end;
...
Аватара пользователя
Alex
Ас
 
Сообщения: 2592
Зарегистрирован: Вт апр 05, 2005 11:28 am
Поблагодарил раз:
Благодарностей: раз в форуме теме

Re: Значения переменных

Сообщение avmaksimov » Пт дек 19, 2008 8:42 pm

Возможно ли в скрипте узнать значение переменной? Т.е. какая функция за это отвечает? Очень надо!)
С уважением, Андрей.
avmaksimov
Ас
 
Сообщения: 855
Зарегистрирован: Чт май 08, 2008 10:48 am
Откуда: г. Москва, Россия
Поблагодарил раз:
Благодарностей: раз в форуме теме

Re: Значения переменных

Сообщение Alex » Вс дек 21, 2008 10:27 am

За это отвечает функция
Код: Выделить всё
function GetVarValue(AVarName: string; ATaskHash: string): string;


Если известен точный тип, то можно использовать:
Код: Выделить всё
function GetVarValueInt(AVarName: string; ATaskHash: string): int64;
function GetVarValueDbl(AVarName: string; ATaskHash: string): double;
function GetVarValueBool(AVarName: string; ATaskHash: string): boolean;
function GetVarValueDate(AVarName: string; ATaskHash: string): TDateTime;


В качестве второго параметра функций можно использовать константу TASK_HASH.
Аватара пользователя
Alex
Ас
 
Сообщения: 2592
Зарегистрирован: Вт апр 05, 2005 11:28 am
Поблагодарил раз:
Благодарностей: раз в форуме теме

Re: Значения переменных

Сообщение avmaksimov » Вс дек 21, 2008 2:26 pm

Премного благодарен! :wink:
С уважением, Андрей.
avmaksimov
Ас
 
Сообщения: 855
Зарегистрирован: Чт май 08, 2008 10:48 am
Откуда: г. Москва, Россия
Поблагодарил раз:
Благодарностей: раз в форуме теме

Re: Значения переменных

Сообщение avmaksimov » Вс дек 21, 2008 2:48 pm

Кстати, я догадался, что так называется функция... Не мог понять, какой второй параметр нужен)))... И не понял, почему для функции GetVarsList не нужен TaskHash?
С уважением, Андрей.
avmaksimov
Ас
 
Сообщения: 855
Зарегистрирован: Чт май 08, 2008 10:48 am
Откуда: г. Москва, Россия
Поблагодарил раз:
Благодарностей: раз в форуме теме

Re: Значения переменных

Сообщение Alex » Вс дек 21, 2008 2:52 pm

В случае GetVarsList переменные извлекаются из редактируемой в текущей момент задачи, поэтому там TaskHash не нужен.
Аватара пользователя
Alex
Ас
 
Сообщения: 2592
Зарегистрирован: Вт апр 05, 2005 11:28 am
Поблагодарил раз:
Благодарностей: раз в форуме теме


Вернуться в Обсуждения

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1