2015-11-06 1 views
2

У меня есть простой вопрос, но им стек на данный момент, и мне было интересно, если кто-то может помочь мне,MessageBox отображения текста и значение переменной в мощности Builder

я хочу, чтобы отобразить с MessageBox в PowerBuilder внутри поле статического текста, а затем значения переменного, хорошо я могу показать легко значение, как, что,

Messagebox('Message', NbrRows) 

Но я хочу, чтобы показать внутри коробки до значения переменной NbrRows текста, ' Всего событий до сих пор », а затем значение переменной. Я знаю, что syndax в MessageBox, как, что, например, с символом восклицательного

MessageBox("Result", Abs(NbrRows), Exclamation!, OKCancel!, 2) 

пожалуйста, любая помощь будет очень ценна,

спасибо заранее

+0

Я попытался также, Messagebox («Message», «Всего событий до сих пор» + NbrRows), но не работает ... :( – dc03kks

ответ

3

MessageBox() встроенный функция может принимать разные типы данных для своего второго параметра (сообщения), но если вам нужно сразу смешивать разные типы, pbscript не поддерживает конкатенацию string с другим типом, например long или boolean, например "foo" + 42. Для этого вам необходимо преобразовать другие типы текста с помощью функции string():

MessageBox('Message', 'Total events so far' + string(NbrRows)) 
//or if some other processing needed with the value 
MessageBox('Message', 'Total events so far' + string(Abs(NbrRows))) 

Учтите, что нулевое значение будет распространяться на все выражение в том случае, когда может быть нулевым, в результате чего без сообщения на все , Использование формата [general] с string() полезный трюк, который заменит нулевое значение с пустой строкой:

MessageBox('Message', 'Total events so far' + string(Abs(NbrRows), '[general]')) 
+0

Seki u just rule thank so much !!!!! очень полезно, и очень хороший трюк, действительно оцененный !!! еще раз спасибо !!! – dc03kks

+2

Собственно, второй параметр в MessageBox перегружен, поэтому он будет принимать логические значения, удваивает (и все, что будет отдано в два раза), longlong (ditto), а также строки. Чтобы увидеть это, перейдите в браузер в среде IDE, выберите вкладку «Система», выберите системные функции в левой панели, разверните Функции в правой панели и прокрутите вниз до списка сообщений в списке. Nice cheat for debuggi нг. Terry

+0

благодарит @Terry за разъяснение возможности использовать один из перегруженных 'MessageBox()'. Я изменил свой ответ за то, что не учил неправильной вещи. На самом деле я так часто использую сообщения с смешанными типами в одном сообщении, что забываю о возможности использовать 'MessageBox' напрямую с другим типом, чем' string'. Для кода отладки/отслеживания я считаю, что использование 'OutputDebugString()' гораздо удобнее, чем окна сообщений. – Seki

Смежные вопросы