Подскажите,
1. Как можно узнать значение переменной в определенный момент выполнения, например при пошаговом выполнении.
2. Как узнать, что вернет функция , например GetStringBlockCount или GetFilesList.
Значения переменных
- Alex
- Ас
- Сообщения: 2833
- Зарегистрирован: Вт апр 05, 2005 3:28 pm
- Откуда: Kaliningrad City
- Благодарил (а): 2 раза
- Поблагодарили: 91 раз
- Контактная информация:
1. xStartDesigner имеет отграниченные возможности по отладке/просмотру значений при отладке. Что возможно сейчас:
а) во вкладке Run script поставить Breakpoint на нужной строке. Делается это аналогично Delphi - кликом по серой полосе слева от текста, после клика строка выделяется красным цветом.
б) Если есть хоть один Breakpoint, то после нажатия F9, заполнения полей ввода и нажатия ОК программа остановит выполнение в выделенной строке.
в) Внизу окна во вкладке Run script есть два списка отображения. Левый показывает ошибки, сообщения или текст, передаваемый процедурой WriteLog. Правый отображает все локальные переменные скрипта. При двойном клике на нужно переменной отображается ее значение.
Ограничение: не отображаются значение переменных типа TObject (и всех наследников) и Record.
2. Отлаживать плагины можно с помощью функции WriteLog. В нее передается имя действия и текст.
Функция GetStringBlockCount возвращает количество блоков в тексте, разделенных указанным тектом-разделителем.
Пример:
Функция GetFilesList заполняет объект типа TStringList именами файлов. Формат:
Пример использования:
а) во вкладке 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(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;
...
-
- Ас
- Сообщения: 907
- Зарегистрирован: Чт май 08, 2008 2:48 pm
- Откуда: г. Москва, Россия
- Благодарил (а): 6 раз
- Поблагодарили: 16 раз
- Контактная информация:
Re: Значения переменных
Возможно ли в скрипте узнать значение переменной? Т.е. какая функция за это отвечает? Очень надо!)
С уважением, Андрей.
- Alex
- Ас
- Сообщения: 2833
- Зарегистрирован: Вт апр 05, 2005 3:28 pm
- Откуда: Kaliningrad City
- Благодарил (а): 2 раза
- Поблагодарили: 91 раз
- Контактная информация:
Re: Значения переменных
За это отвечает функция
Если известен точный тип, то можно использовать:
В качестве второго параметра функций можно использовать константу TASK_HASH.
Код: Выделить всё
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;
- Рейтинг: 33.33%
-
- Ас
- Сообщения: 907
- Зарегистрирован: Чт май 08, 2008 2:48 pm
- Откуда: г. Москва, Россия
- Благодарил (а): 6 раз
- Поблагодарили: 16 раз
- Контактная информация:
-
- Ас
- Сообщения: 907
- Зарегистрирован: Чт май 08, 2008 2:48 pm
- Откуда: г. Москва, Россия
- Благодарил (а): 6 раз
- Поблагодарили: 16 раз
- Контактная информация:
Re: Значения переменных
Кстати, я догадался, что так называется функция... Не мог понять, какой второй параметр нужен)))... И не понял, почему для функции GetVarsList не нужен TaskHash?
С уважением, Андрей.
- Alex
- Ас
- Сообщения: 2833
- Зарегистрирован: Вт апр 05, 2005 3:28 pm
- Откуда: Kaliningrad City
- Благодарил (а): 2 раза
- Поблагодарили: 91 раз
- Контактная информация:
Re: Значения переменных
В случае GetVarsList переменные извлекаются из редактируемой в текущей момент задачи, поэтому там TaskHash не нужен.