OberonCore https://forum.oberoncore.ru/ |
|
Ошибка при передаче параметра типа CHAR на форме из кнопки https://forum.oberoncore.ru/viewtopic.php?f=35&t=4948 |
Страница 1 из 1 |
Автор: | sasha-kulov [ Суббота, 25 Январь, 2014 20:24 ] | |||
Заголовок сообщения: | Ошибка при передаче параметра типа CHAR на форме из кнопки | |||
Сын пишет программу калькулятора, я помогаю. На форме в свойстве "Cвязан" кнопок (+ - . =) указываем процедуру Calc.Operation('-') или '+' ... При нажатии на кнопку получаем сообщение об ошибке "ошибка команды: несовместимый список параметров в Calc.Operation" Пример процедуры: PROCEDURE Operation*(o:CHAR); BEGIN CASE o OF '.': |'+': |'-': |'*': |'/': |'=': ELSE END; END Operation; Для проверки ситуации написал такой пример с командером: MODULE Sample; IMPORT StdLog; PROCEDURE Do*(ch:CHAR); BEGIN StdLog.Char(ch); END Do; END Sample. Командер"Sample.Do('A')" При вызове командера получаем подобное же сообщение: "ошибка команды: несовместимый список параметров в Sample.Do" При экспериментах попробовал в место Типа CHAR указывать SHORTCHAR вроде все получилось, но пример не сохранил, а на следующий день ни с CHAR ни с SHORTCHAR ничего не получаеться. Если бы не положительный результат с SHORTCHAR я бы успокоился и использовал бы целые константы, Но может кто подскажет, как все таки передать параметр CHAR ИЛИ SHORTCHAR в процедуру при нажатии кнопки на форме или командера. Спасибо.
|
Автор: | Пётр Кушнир [ Суббота, 25 Январь, 2014 20:28 ] |
Заголовок сообщения: | Re: Ошибка при передаче параметра типа CHAR на форме из кноп |
Цитата: Module StdInterpreter implements a plug-in service for BlackBox: an interpreter for some forms of Component Pascal procedure calls. The text string to be interpreted must conform to the following syntax: Command = Call { ";" Call }. Call = ModuleName "." ProcedureName [ "(" Parameter { "," Parameter } ")" ]. Parameter = Integer | String. Integer = Decimal | Hex. Decimal = [ "-" ] Digit { Digit }. Hex = [ "-" ] HexDigit { HexDigit } "H". String = " ' " { Char } " ' ". The calls are executed in the given sequence. Parameters corresponding to integers must be of type INTEGER. Parameters corresponding to strings must be value or IN parameters of type ARRAY OF CHAR. The called procedures must not return a value. Команды в кнопках имеют такие же правила, как и коммандеры, и могут принимать на вход строку/число. Соответственно, можно например написать Код: Operation* (IN o: ARRAY OF CHAR) , затем вызывать команды как обычно Код: (!)"Example.Operation('A')" В коде процедуры Operation обращаться к первому символу o[0].
|
Автор: | sasha-kulov [ Суббота, 25 Январь, 2014 20:45 ] |
Заголовок сообщения: | Re: Ошибка при передаче параметра типа CHAR на форме из кноп |
Команды в кнопках имеют такие же правила, как и коммандеры, и могут принимать на вход строку/число. Соответственно, можно например написать Код: Operation* (IN o: ARRAY OF CHAR) , затем вызывать команды как обычно Код: (!)"Example.Operation('A')" В коде процедуры Operation обращаться к первому символу o[0].[/quote]Спасибо понял. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |