Необязательные параметры функций

Здесь обсуждается всё, что касается макросов.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Необязательные параметры функций

Post by HaRT »

Skirda wrote:
HaRT wrote:PS Легко ли в макроязыке реализовывать необязательные параметры (хотя бы только в конце списка)?
уже, начиная с 2340
Есть предложение сделать необязательным второй параметр функции clip (значение по умолчанию — пустая строка), а то ведь бессмысленно его туда передавать, когда он заведомо будет проигнорирован.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Необязательные параметры функций

Post by Skirda »

HaRT wrote:Есть предложение сделать необязательным второй параметр функции clip (значение по умолчанию — пустая строка), а то ведь бессмысленно его туда передавать, когда он заведомо будет проигнорирован.
Нарисуй на мантис, чтобы не забылось :-)
We are the Borg. You will be assimilated.
So Say We All!
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Необязательные параметры функций

Post by HaRT »

Skirda wrote:Нарисуй на мантис, чтобы не забылось
№ 526.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Необязательные параметры функций

Post by HaRT »

Предлагаю сделать необязательным параметр функции WaitKey; значение по умолчанию — 0 (ждать неограниченно долго).

Мантис: № 527.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Необязательные параметры функций

Post by Skirda »

HaRT wrote:Предлагаю сделать необязательным параметр функции WaitKey; значение по умолчанию — 0 (ждать неограниченно долго).

Мантис: № 527.
Я там личин... запись оставил :crazy:
просьба проверить макросы
We are the Borg. You will be assimilated.
So Say We All!
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Необязательные параметры функций

Post by HaRT »

Skirda wrote:просьба проверить макросы
Пользуюсь той сборкой — вроде никаких новых проблем.

Кстати, хорошо бы задокументировать необязательность параметра функции GetHotkey.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Необязательные параметры функций

Post by HaRT »

Skirda
Есть предложение изменить значение по умолчанию второго (а заодно и первого) параметра функции MsgBox с 0 на "", чтобы вызов, например, “MsgBox ( "Fail" )” не выводил “0” в качестве сообщения. А пока приходится это обходить явным дописыванием “""” в качестве второго параметра.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Необязательные параметры функций

Post by Skirda »

HaRT, не понял.
ты хочешь у MsgBox... чтобы все параметры были...

Code: Select all

N=msgbox(["Title"[,"Text"[,flags]]])
Так?
We are the Borg. You will be assimilated.
So Say We All!
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Необязательные параметры функций

Post by HaRT »

Skirda wrote:Так?
Не совсем. Я предлагаю вот что:
1. Чтобы все параметры были необязательными — это уже и сейчас есть.
2. Чтобы параметры Title и Text по умолчанию были не 0 (число ноль), а "" (пустая строка), а то сейчас вызов MsgBox() (т.е. без параметров) выдаёт

Code: Select all

+= 0 ==+
|  0   |
|  Ok  |
+======+ 
А хочется

Code: Select all

+======+
|  Ok  |
+======+ 
Это нужно для того, чтобы любой из них можно было оставить пустым и не получить ненужных артефактов.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Необязательные параметры функций

Post by HaRT »

Skirda
Обнаружилась какая-то странность с функцией GetHotkey.
Вызываю из панелей поочерёдно два макроса:

Code: Select all

F12 $If ( "0" == GetHotkey() ) Esc Y $Else Esc N $End
и
F12 %h = GetHotkey(); $If ( "0" == %h ) Esc Y $Else Esc N $End
Ожидаю в обоих случаях получить Y. На деле же первый из них даёт N, а второй — Y. Если использовать GetHotkey(0), то всё в порядке в обоих случаях.
Что там на самом деле происходит и зачем так?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Необязательные параметры функций

Post by Skirda »

HaRT wrote:Что там на самом деле происходит и зачем так?
ну как бы у GetHotkey не может быть парамерта по умолчанию, соответственно в стеке мусор и...
We are the Borg. You will be assimilated.
So Say We All!
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Необязательные параметры функций

Post by HaRT »

Skirda wrote:у GetHotkey не может быть парамерта по умолчанию
Тогда прошу сделать по умолчанию 0, т.к. это как раз означает “текущий элемент”.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Необязательные параметры функций

Post by Skirda »

HaRT, сделал.
We are the Borg. You will be assimilated.
So Say We All!
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Необязательные параметры функций

Post by HaRT »

Skirda
Спасибо. После какого номера сборки проверять?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Необязательные параметры функций

Post by Skirda »

2416/532
We are the Borg. You will be assimilated.
So Say We All!
Post Reply

Return to “Обсуждение макросов”