Re: Ограничения в Tcl/Tk - существуют-ли?
Здравствуйте! Переменная устанавливалась с помощью set, попробовал и variable, unset не используется: … (file tk.tcl line 1750) Мммм, а остальные 1747 строчек надо угадать? В столь большом файле очень много ошибок сделать можно. И поставленная не туда фигурная скобка, к сожалению, может запортить разбор всего файла. Постеснялся засорять письмо - вот ссылка на файлик 44: pack [button .button1 -text Считать -command { 45: variable jd [exec swetest -b$date -ut$time -fJ -head -p0] 46: variable jd1 [expr [exec swetest -b$date -ut$time -fJ -head -p0]-1.0/86400.0] 47: variable jd2 [expr [exec swetest -b$date -ut $time -fJ -head -p0]+1.0/86400.0] … 1745: }] [expr {$h1 - 0.0}] $ma2 $ma3} {lappend ma9 12}}] С 44 по 1745 строку идёт команда [button .button1 …], а конкретнее скрипт в параметре -command у неё. Дальнейший код, на котором и вылетает ошибка, исполняется *до* исполнения скрипта, навешенного на кнопку, потому он и не видит значения переменной h1, задаваемого внутри скрипта на кнопке. Совет: используйте функции, форматируйте код отступами. Будет гораздо легче читать код и искать ошибки. Александр! Благодарю за добрый совет! Сделаю всё более аккуратно и внутри кнопки. -- Кабанов Евгений Константинович - http://kabanov.tel -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20150123104540.325b2f6b329033846002b...@kabanov.tel
Re: Ограничения в Tcl/Tk - существуют-ли?
On Wed, 21 Jan 2015 20:56:40 +0300 Кабанов Евгений Константинович evg...@kabanov.tel wrote: Здравствуйте! Переменная устанавливалась с помощью set, попробовал и variable, unset не используется: … (file tk.tcl line 1750) Мммм, а остальные 1747 строчек надо угадать? В столь большом файле очень много ошибок сделать можно. И поставленная не туда фигурная скобка, к сожалению, может запортить разбор всего файла. Постеснялся засорять письмо - вот ссылка на файлик 44: pack [button .button1 -text Считать -command { 45: variable jd [exec swetest -b$date -ut$time -fJ -head -p0] 46: variable jd1 [expr [exec swetest -b$date -ut$time -fJ -head -p0]-1.0/86400.0] 47: variable jd2 [expr [exec swetest -b$date -ut$time -fJ -head -p0]+1.0/86400.0] … 1745: }] [expr {$h1 - 0.0}] $ma2 $ma3} {lappend ma9 12}}] С 44 по 1745 строку идёт команда [button .button1 …], а конкретнее скрипт в параметре -command у неё. Дальнейший код, на котором и вылетает ошибка, исполняется *до* исполнения скрипта, навешенного на кнопку, потому он и не видит значения переменной h1, задаваемого внутри скрипта на кнопке. Совет: используйте функции, форматируйте код отступами. Будет гораздо легче читать код и искать ошибки. -- Alexander Galanin -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20150121215200.094a1f2ae42e932b31168...@galanin.nnov.ru
Re: Ограничения в Tcl/Tk - существуют-ли?
Здравствуйте! Переменная устанавливалась с помощью set, попробовал и variable, unset не используется: … (file tk.tcl line 1750) Мммм, а остальные 1747 строчек надо угадать? В столь большом файле очень много ошибок сделать можно. И поставленная не туда фигурная скобка, к сожалению, может запортить разбор всего файла. Постеснялся засорять письмо - вот ссылка на файлик https://yadi.sk/d/S_QjPK4Be9LTZ Tcl в этом скрипте обрабатывает данные, формируемые программой swe-basic-data и swe-standard-data; используется библиотека libswe0 и libswe-dev. -- Кабанов Евгений - http://kabanov.tel -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20150121211032.e66ee4618d008e944ee80...@kabanov.tel
Re: Ограничения в Tcl/Tk - существуют-ли?
Здравствуйте! Переменная устанавливалась с помощью set, попробовал и variable, unset не используется: … (file tk.tcl line 1750) Мммм, а остальные 1747 строчек надо угадать? В столь большом файле очень много ошибок сделать можно. И поставленная не туда фигурная скобка, к сожалению, может запортить разбор всего файла. Постеснялся засорять письмо - вот ссылка на файлик https://yadi.sk/d/S_QjPK4Be9LTZ -- Кабанов Евгений - http://kabanov.tel -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20150121205640.3e5b098c00fd6a56959ce...@kabanov.tel
Re: Ограничения в Tcl/Tk - существуют-ли?
On Wed, 21 Jan 2015 18:05:22 +0300 Кабанов Евгений Константинович evg...@kabanov.tel wrote: Переменная устанавливалась с помощью set, попробовал и variable, unset не используется: … (file tk.tcl line 1750) Мммм, а остальные 1747 строчек надо угадать? В столь большом файле очень много ошибок сделать можно. И поставленная не туда фигурная скобка, к сожалению, может запортить разбор всего файла. -- Alexander Galanin -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20150121204301.1669a555a6087dee38414...@galanin.nnov.ru
Re: Ограничения в Tcl/Tk - существуют-ли?
Здравствуйте! Вопрос возник по результатам сбоя в работе скрипта (can't read h1: no such variable while executing). Это самое h1 неоднократно участвует в Ошибка тут no such variable, а while executing значит, что дальше будет напечатан стек вызовов. Возможно, переменной чуть ранее кто-то сделал unset. Или она не видна: импортирована из неправильного пространства имён или просто задана в одной функции, а читается в другой, но при этом они не помещены в общее пространство имён вызовом variable h1. Переменная устанавливалась с помощью set, попробовал и variable, unset не используется: variable h1 [exec swetest -b$date -house$longitude,$latitude4,k -ut $time -head -p -fPl | grep house 1 | sed s/house 1//g | sed s/\ //g] всё равно пишет can't read h1: no such variable while executing if {$h1 $h2 $h1 $ve1 $ve1 $h2} {lappend ve9 1} elseif { $h2 $h1 $h1 $ve1 $ve1 360.0} {lappend ve9 1} elseif { $... (file tk.tcl line 1750) Ошибиться конечно же мог, но не могу понять, почему сбой не сразу, а только на 8-ом или 9-ом расчёте - всё идентично в коде, код для следующего расчёта берётся от предыдущего и первые восемь расчётов безупречны... -- Кабанов Евгений - http://kabanov.tel -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20150121180522.f7d70dfeb66ad4d4eade7...@kabanov.tel
Re: Ограничения в Tcl/Tk - существуют-ли?
On Tue, 20 Jan 2015 18:38:09 +0300 Кабанов Евгений Константинович evg...@kabanov.tel wrote: Вопрос возник по результатам сбоя в работе скрипта (can't read h1: no such variable while executing). Это самое h1 неоднократно участвует в Ошибка тут no such variable, а while executing значит, что дальше будет напечатан стек вызовов. Возможно, переменной чуть ранее кто-то сделал unset. Или она не видна: импортирована из неправильного пространства имён или просто задана в одной функции, а читается в другой, но при этом они не помещены в общее пространство имён вызовом variable h1. -- Alexander Galanin
Ограничения в Tcl/Tk - существуют-ли?
Здравствуйте! Существуют-ли в Tcl/Tk какие-либо ограничения на размер строк, число строк кода, количество переменных и т.д. и т.п.? Вопрос возник по результатам сбоя в работе скрипта (can't read h1: no such variable while executing). Это самое h1 неоднократно участвует в расчётах и вдруг такая ошибка. Особенно непонятно это потому, что абсолютно идентичные куски кода использовали эту переменную много раз до этого и всё было в порядке. Прошу направить в нужном направлении. -- Кабанов Евгений - http://kabanov.tel -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20150120183809.a12e3cfa955c2c28fbdfa...@kabanov.tel
tcl/tk
Плз. пните в нужную сторону. Задача такая, мне нужно что-либо выполнить, посмотреть результат, записать в лог, вывести на экран (графически). Все это можно реализовать. Например, пингануть тачку, посмотреть результат, показать, что она пингуется и записать в лог. Не охота писать с нуля. Может уже кто-то видел нечто готовое? ЗЫ Т.к. сейчас упорно изучаю tcl/tk, то именно на нем хочу реализовать. -- Saludos! Sergio
Re: tcl/tk
On Fri, 07 Apr 2006 10:59:53 +0400 Sergey Jusupov wrote: SJ Плз. пните в нужную сторону. SJ Задача такая, мне нужно что-либо выполнить, посмотреть результат, SJ записать в лог, вывести на экран (графически). Все это можно SJ реализовать. SJ Например, пингануть тачку, посмотреть результат, показать, что она SJ пингуется и записать в лог. SJ Не охота писать с нуля. Может уже кто-то видел нечто готовое? SJ ЗЫ Т.к. сейчас упорно изучаю tcl/tk, то именно на нем хочу реализовать. Package: scotty Description: The Scotty and Tkined Network Management Tools. Scotty is a set of Tcl extensions to retrieve status information about TCP/IP networks. The extensions include commands to send icmp packets a la ping, to lookup hostnames, to query the portmapper and mount daemons. Also included are generic tcp/udp extensions as well as commands to query the domain name service for a, ptr, hinfo, mx and soa records and commands to query ntp server. log messages can be written by using the syslog command. The perhaps most interesting extension is an interface to the SNMPv1, SNMPv2C and SNMPv3 protocols. Tkined is a small but nice network management station. Правда, в sarge его уже нет. Есть в oldstable. Ну, а если не tcl/tk, то наверное nagios. -- to my, trociny -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: tcl/tk
On Fri, 07 Apr 2006 10:59:53 +0400 Sergey Jusupov [EMAIL PROTECTED] wrote: Глянь на tkined. Плз. пните в нужную сторону. Задача такая, мне нужно что-либо выполнить, посмотреть результат, записать в лог, вывести на экран (графически). Все это можно реализовать. Например, пингануть тачку, посмотреть результат, показать, что она пингуется и записать в лог. Не охота писать с нуля. Может уже кто-то видел нечто готовое? ЗЫ Т.к. сейчас упорно изучаю tcl/tk, то именно на нем хочу реализовать. -- Saludos! Sergio
Re: tcl/tk
Sergey Jusupov [EMAIL PROTECTED] writes: Плз. пните в нужную сторону. Задача такая, мне нужно что-либо выполнить, посмотреть результат, записать в лог, вывести на экран (графически). Все это можно реализовать. Например, пингануть тачку, посмотреть результат, показать, что она пингуется и записать в лог. Не охота писать с нуля. Может уже кто-то видел нечто готовое? ЗЫ Т.к. сейчас упорно изучаю tcl/tk, то именно на нем хочу реализовать. expect? (http://expect.nist.gov/) Cheers Kirill -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: tcl/tk
Sergey Jusupov wrote: Плз. пните в нужную сторону. Задача такая, мне нужно что-либо выполнить, посмотреть результат, записать в лог, вывести на экран (графически). Все это можно реализовать. Например, пингануть тачку, посмотреть результат, показать, что она пингуется и записать в лог. Не охота писать с нуля. Может уже кто-то видел нечто готовое? ЗЫ Т.к. сейчас упорно изучаю tcl/tk, то именно на нем хочу реализовать. Там писать нечего, # возвращает 1 в случае успешного выполнения, иначе - 0 proc ping {address} { catch {[exec ping -q -c 5 $address]} return [expr {[lindex $::errorCode 0] eq NONE ? 1 : 0}] } proc makePing {address timeout} { if {[ping $address]} { # отпинговать удалось } else { # отпинговать не удалось } after $timeout [info level 0] $address $timeout } а остальное интерфейс :) Но это не вопрос данного списка рассылки, правильный список рассылки находился на 45.free.net, не уверен что он еще жив. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: fonts in tcl/tk
Sergey Jusupov - debian-russian@lists.debian.org @ Fri, 10 Feb 2006 10:56:39 +0300: SJ Что нужно сделать, чтобы в tk программах шрифт нормальный SJ отображался? У меня он кривой до невозможности :( Показать им недефолтный через ресурсы. Иногда - не через ресурсы :-( SJ Сорри, а это как? SJ Где конфиг этого tcl/tk? :( Ресурсы - это конфиг X-сервера. man X. -- Artem Chuprina RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED] Praemonitus premunitus -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
fonts in tcl/tk
Привет! Что нужно сделать, чтобы в tk программах шрифт нормальный отображался? У меня он кривой до невозможности :( -- Hasta luego! Sergio
Re: fonts in tcl/tk
Sergey Jusupov - debian-russian@lists.debian.org @ Thu, 09 Feb 2006 18:47:09 +0300: SJ Что нужно сделать, чтобы в tk программах шрифт нормальный SJ отображался? У меня он кривой до невозможности :( Показать им недефолтный через ресурсы. Иногда - не через ресурсы :-( -- Artem Chuprina RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED] If it's there and you can see it---it's real If it's not there and you can see it---it's virtual If it's there and you can't see it---it's transparent If it's not there and you can't see it---you erased it! IBM poster explaining virtual memory, circa 1978 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: fonts in tcl/tk
Artem Chuprina пишет: Sergey Jusupov - debian-russian@lists.debian.org @ Thu, 09 Feb 2006 18:47:09 +0300: SJ Что нужно сделать, чтобы в tk программах шрифт нормальный SJ отображался? У меня он кривой до невозможности :( Показать им недефолтный через ресурсы. Иногда - не через ресурсы :-( Сорри, а это как? Где конфиг этого tcl/tk? :( -- Hasta luego! Sergio
Re: TCL/TK
On 2003.06.26 at 13:04:11 -0700, Curtis Vaughan wrote: Is there something that needs to be done to have tcl/tk support Russian? Что надо делать чтобы tcl/tk поддерживал русский шрифт? Уже очень давно ничего специального делать не надо. Разве что локаль правильно выставить. Даже в potato tcl8.2 понимал русские локали самостоятельно. У tk8.2 и tk8.3 были некоторые проблемы с обменом через клипборд и генерацией постскрипта. Первую из них очень красиво обошел автор alicq. В tk8.4 пофиксены и они. В woody этого пакета нет, но есть пакет для woody, cобранный Антоном Коваленко на deb http://ftp.45.free.net/debian tcl Если вы продолжаете по каким-то причинам пользоваться tcl/tk 8.0, то здесь могу посоветовать только указаывать XLFD-имена шрифтов и не пользоваться tk-шными шрифтовыми объектами СОВСЕМ. Кстати постановка вопроса что делать чтобы софтина имярек поддерживала русский шрифт - как правило, неправильная. Софтина должна поддерживать русский ЯЗЫК, куда включается не только шрифт, но и ввод с клавиатуры, преобразование регистра, сортировка.
TCL/TK
Is there something that needs to be done to have tcl/tk support Russian? Что надо делать чтобы tcl/tk поддерживал русский шрифт? -- Curtis Vaughan
TCL/TK
Is there something that needs to be done to have tcl/tk support Russian? Что надо делать чтобы tcl/tk поддерживал русский шрифт? -- Curtis Vaughan
Re: fonts in tcl/tk
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Sat Jan 25, 2003 at 20:53:36 +0200, Aleksej Kolga wrote: AK Здравствуйте! AK Почему-то во всех приложениях, написанных на tcl/tk (напр. lprngtool, AK xsmbrowser) размер шрифта меню, текста и др. стал очень маленьким. AK Может быть кто знает где это регулируется? В скриптах шрифт явно не AK указан вроде, то есть это default font size. Что покрутить чтобы AK увеличить его? в ~/.Xresources прописать *Menu.Font: -rfx-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-r *Font: нужный шрифт Либо только для указанных приложений: Lprngtool.Font: щрифт где Lprngtool - имя класса приложения (узнается через xprop, xwininfo) - -- Denis Пропала несущая? Заплати налоги... -BEGIN PGP SIGNATURE- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE+M4s7+zH7vYeuVKsRAsK6AKCDN0qbkl1opQNJIKp8dLkhV1UpkACgjCJF 2Tmat22XDzJbEHad2G7X83E= =CLmZ -END PGP SIGNATURE-
Re: fonts in tcl/tk
- Original Message - From: Denis Dzyubenko [EMAIL PROTECTED] To: debian-russian@lists.debian.org Sent: Sunday, January 26, 2003 9:16 AM Subject: Re: fonts in tcl/tk в ~/.Xresources прописать *Menu.Font: -rfx-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-r *Font: нужный шрифт Спасибо. Хотя это помогает лишь отчасти, в xsmbrowser шрифт все равно не изменился. Либо только для указанных приложений: Lprngtool.Font: щрифт где Lprngtool - имя класса приложения (узнается через xprop, xwininfo) - -- Denis
fonts in tcl/tk
Здравствуйте! Почему-то во всех приложениях, написанных на tcl/tk (напр. lprngtool, xsmbrowser) размер шрифта меню, текста и др. стал очень маленьким. Может быть кто знает где это регулируется? В скриптах шрифт явно не указан вроде, то есть это default font size. Что покрутить чтобы увеличить его? Спасибо. С уважением, Алексей Кольга.
SOF: Tcl/Tk
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Приветствую, Сегодня написал свою первую программу на tcl и Tk, и появилось куча вопросов, а где их можно задавать я не знаю. Можно я тут поспрашиваю ? спасибо ;) Как идеологически правильнее обращаться в widget'ам - в каждой процедуре обращаться к виджету по его имени, или объявить глобальную переменную в которую поместить название виджета и обращаться к глобальной переменно, или в качестве параметра процедуре передавать путь к виждету ? Как обработать закрытие окна - т.е. я нажимаю на кнопку закрытия окна (в titlebar'е) и хочу чтобы появилось окно Save?Ok:Cancel Как писать портируемые программы - в Linux'е я в качестве начального пути к файлам использую $env(HOME), но в windows нет такой переменной окружения? Хочу изменить шрифт у одного Text виджета, и чтобы этот шрифт хранился в каком-нибудь конфигурационном файле - можно использовать option readfile, но в windows нет такого понятия как XRDB. Откуда брать нужные мне настройки? Как изменить класс моего окна? Обычно класс = имя приложения, но можно ли сделать по другому? toplevel -class ClassName создает новое окно с указанным класом. А как изменить класс у главного (т.е. самого первого) окна приложения? Для чего существует команда option get и как ее использовать? - -- Denis Windows 98 испугалась и наложила в своп. -BEGIN PGP SIGNATURE- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE+CvlW+zH7vYeuVKsRApE9AKC8PF0ix12aDkBFwqt2mCoQAJVsYgCgsKmc VPts5MthdJfkyR1ObMU9zoI= =d5fD -END PGP SIGNATURE-
Re: SOF: Tcl/Tk
On 2002.12.26 at 15:43:03 +0300, Denis Dzyubenko wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Приветствую, Сегодня написал свою первую программу на tcl и Tk, и появилось куча вопросов, а где их можно задавать я не знаю. mailto:[EMAIL PROTECTED] Можно я тут поспрашиваю ? спасибо ;) Как идеологически правильнее обращаться в widget'ам - в каждой процедуре обращаться к виджету по его имени, или объявить глобальную переменную в которую поместить название виджета и обращаться к глобальной переменно, или в качестве параметра процедуре передавать путь к виждету ? Идеологически правильнее последний вариант. Глобальных переменных следует избегать. А хард-кодед имена неудобны тем, что когда тебе потребуется обвесить теми же процедурами другой виджет, их придется переписывать. Как обработать закрытие окна - т.е. я нажимаю на кнопку закрытия окна (в titlebar'е) и хочу чтобы появилось окно Save?Ok:Cancel wm protocol . WM_DELETE_WINDOW обработчик Как писать портируемые программы - в Linux'е я в качестве начального пути к файлам использую $env(HOME), но в windows нет такой переменной окружения? if {$tcl_platform(platform) == unix } { set initial_path $env(HOME) } elseif {$tcl_platform(platform) == windows } { set initial_path $env(USERPROFILE) } else { tk_messageBox -type ok -title error -message Don't know where to\ search for files on your platform $tcl_platform(platform) exit } Хочу изменить шрифт у одного Text виджета, и чтобы этот шрифт хранился в каком-нибудь конфигурационном файле - можно использовать option readfile, но в windows нет такого понятия как XRDB. Откуда брать нужные мне настройки? По-моему option все равно есть и работает. Эмулируя XRDB там, где ее нету. Но вообще-то никто не мешает задать шрифт при создании виджета явно, или даже позже сказать $widget configure -font что-надо Как изменить класс моего окна? Обычно класс = имя приложения, но можно ли сделать по другому? toplevel -class ClassName создает новое окно с указанным класом. А как изменить класс у главного (т.е. самого первого) окна приложения? Хорошего способа не знаю. В принципе wish -class дает требуемый результат, но мне не удавалось засунуть это в строчку с #! Для чего существует команда option get и как ее использовать? Для того, чтобы получить значение опции из option database. Там можно хранить не только те опции виджетов, которые виджеты подбирают автоматически, но и любые другие конфигурационные данные. Например, если ты пользуешься тэгами в текстовом виджете, то цвета шрифта помеченного тэгом автоматически из optiondb не подберутся. А с помощью $widget tag configure -fg [option get $widget mytagfont TagFont] ты ее оттуда добудешь. -- Victor Wagner [EMAIL PROTECTED] Chief Technical Officer Office:7-(095)-748-53-88 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus
Re: SOF: Tcl/Tk
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Thu Dec 26, 2002 at 16:12:44 +0300, Victor Wagner wrote: Сегодня написал свою первую программу на tcl и Tk, и появилось куча вопросов, а где их можно задавать я не знаю. VW mailto:[EMAIL PROTECTED] спасибо VW Идеологически правильнее последний вариант. Глобальных переменных VW следует избегать. А хард-кодед имена неудобны тем, что когда тебе VW потребуется обвесить теми же процедурами другой виджет, их придется VW переписывать. понятно Как обработать закрытие окна - т.е. я нажимаю на кнопку закрытия окна (в titlebar'е) и хочу чтобы появилось окно Save?Ok:Cancel VW wm protocol . WM_DELETE_WINDOW обработчик понятно. Поиск destroy в хэлпе я делал а поискать слово delete не догадался :( Как писать портируемые программы - в Linux'е я в качестве начального пути к файлам использую $env(HOME), но в windows нет такой переменной окружения? VW VW if {$tcl_platform(platform) == unix } { VW set initial_path $env(HOME) VW } elseif {$tcl_platform(platform) == windows } { VW set initial_path $env(USERPROFILE) насколько я понимаю это только для NT? в 98 вроде не определен USERPROFILE Как изменить класс моего окна? Обычно класс = имя приложения, но можно ли сделать по другому? toplevel -class ClassName создает новое окно с указанным класом. А как изменить класс у главного (т.е. самого первого) окна приложения? VW VW Хорошего способа не знаю. В принципе wish -class дает требуемый VW результат, но мне не удавалось засунуть это в строчку с #! О, точно! вот так работает: =+== #!/bin/sh # the next line restarts using wish \ exec wish $0 -class wndclass $@ =+== Это из хэлпа, хотя я не понимаю почему такая конструкция работает. Для чего существует команда option get и как ее использовать? VW VW Для того, чтобы получить значение опции из option database. Там VW можно хранить не только те опции виджетов, которые виджеты подбирают VW автоматически, но и любые другие конфигурационные данные. т.е. option db != xrdb ? даже optiondb xrdb ? VW Например, если ты пользуешься тэгами в текстовом виджете, то цвета VW шрифта помеченного тэгом автоматически из optiondb не подберутся. VW А с помощью $widget tag configure -fg [option get $widget mytagfont TagFont] VW ты ее оттуда добудешь. вот так не работает option readfile ~/.Xdefaults puts [option get . myfont font] В ~/.Xdefaults *myfont*font: sdssd - -- Denis Пришел на работу, включил компьютер, к интернету подключиться не смог... пришлось работать -BEGIN PGP SIGNATURE- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE+CyQb+zH7vYeuVKsRAsTAAJ9qSDaQW4+SsbldNlINcsupYlF4CACcDsM9 ZNG/Rs+s6lMoiJSmtq599LQ= =06o3 -END PGP SIGNATURE-
Re: SOF: Tcl/Tk
On 2002.12.26 at 18:45:32 +0300, Denis Dzyubenko wrote: Как писать портируемые программы - в Linux'е я в качестве начального пути к файлам использую $env(HOME), но в windows нет такой переменной окружения? VW VW if {$tcl_platform(platform) == unix } { VW set initial_path $env(HOME) VW } elseif {$tcl_platform(platform) == windows } { VW set initial_path $env(USERPROFILE) насколько я понимаю это только для NT? в 98 вроде не определен USERPROFILE Ну, дальнейшее разбирательство с tcl_platform или просто фаллбэк поможет. Фаллбэк может быть такой if { [info exists env(USERPROFILE)]} { set intitial_path $env(USERPROFILE) } else { set initial_path {c:\\WINDOWS\Мои документы} # Лучше конечно воспользоваться какой-то переменной. Но кто ж их # знает, какие они в DOS-based виндах бывают. } Как изменить класс моего окна? Обычно класс = имя приложения, но можно ли сделать по другому? toplevel -class ClassName создает новое окно с указанным класом. А как изменить класс у главного (т.е. самого первого) окна приложения? VW VW Хорошего способа не знаю. В принципе wish -class дает требуемый VW результат, но мне не удавалось засунуть это в строчку с #! О, точно! вот так работает: =+== #!/bin/sh # the next line restarts using wish \ exec wish $0 -class wndclass $@ =+== Это из хэлпа, хотя я не понимаю почему такая конструкция работает. Конструкцмя работает потому что 1. Сначала эту штуку интерпретирует shell. Для него \ в конце строки комментария не является признаком продолжения комментария на следующую строку. Поэтому он выполняет команду exec wish 2. Команда exec приводит к тому, что выполнение shell-а прекращается, поэтому все что дальше в этом файле написано на tcl он за синтаксические ошибки не считает. 3. wish начинает интерпретировать файл и видит в нем комментарий, который продолжается на следующую строчку. Он этот комментарий пропускает, и exec wish пропускается как его часть. Для чего существует команда option get и как ее использовать? VW VW Для того, чтобы получить значение опции из option database. Там VW можно хранить не только те опции виджетов, которые виджеты подбирают VW автоматически, но и любые другие конфигурационные данные. т.е. option db != xrdb ? даже optiondb xrdb ? VW Например, если ты пользуешься тэгами в текстовом виджете, то цвета VW шрифта помеченного тэгом автоматически из optiondb не подберутся. VW А с помощью $widget tag configure -fg [option get $widget mytagfont TagFont] VW ты ее оттуда добудешь. вот так не работает option readfile ~/.Xdefaults puts [option get . myfont font] Видимо, потому что название класса обязано начинаться с большой буквы. В ~/.Xdefaults *myfont*font: sdssd Эта команда get ищет либо myapp.myfont Myapp.myfont *myfont Еще искала бы myapp.Font Myapp.Font и *Font, если бы класс был прописан с большой буквы. -- Victor Wagner [EMAIL PROTECTED] Chief Technical Officer Office:7-(095)-748-53-88 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus
Re: SOF: Tcl/Tk
Denis Dzyubenko writes: VW if {$tcl_platform(platform) == unix } { VW set initial_path $env(HOME) VW } elseif {$tcl_platform(platform) == windows } { VW set initial_path $env(USERPROFILE) насколько я понимаю это только для NT? в 98 вроде не определен USERPROFILE Проверяйте платформу, а затем, если это windows -- бегом в реестр (package require registry), и оттуда берём всё нужное. Если вы пишете кросс-платформенное приложение, то для windows советую хранить настройки в реестре, а не в каком-нибудь $env(USERPROFILE)/.mydotfile. Ну не принято это в виндах. Не положено. VW Хорошего способа не знаю. В принципе wish -class дает требуемый VW результат, но мне не удавалось засунуть это в строчку с #! О, точно! вот так работает: =+== #!/bin/sh # the next line restarts using wish \ exec wish $0 -class wndclass $@ =+== Это из хэлпа, хотя я не понимаю почему такая конструкция работает. С точки зрения /bin/sh, здесь закомментированы две первые строки, а третью нужно выполнить. С точки зрения tclsh и wish, третья строка является продолжением второй, то есть частью комментария. VW Для того, чтобы получить значение опции из option database. VW Там можно хранить не только те опции виджетов, которые виджеты VW подбирают автоматически, но и любые другие конфигурационные VW данные. т.е. option db != xrdb ? даже optiondb xrdb ? Ну, в xrdb частенько кладут не только свойства виджетов, но и настройки самого приложения. Для такого случая xrdb и пригождается. Кроме того, частенько пишутся мегавиджеты на основе чистого Tcl и Tk. Прочитать из option db умолчания для мегавиджета тоже бывает нужно. VW Например, если ты пользуешься тэгами в текстовом виджете, то цвета VW шрифта помеченного тэгом автоматически из optiondb не подберутся. VW А с помощью $widget tag configure -fg [option get $widget mytagfont TagFont] VW ты ее оттуда добудешь. вот так не работает option readfile ~/.Xdefaults puts [option get . myfont font] Во-первых, синтаксис option get window _name_ _class_ означает не то, что вы подумали. В данном случае window должно быть сопоставлено шаблону *myfont. А name и class -- это имя опции и класс опции. Сиречь option readfile .Xdefaults frame .myfont puts [option get .myfont font Font] будет работать на вашем примере. В ~/.Xdefaults *myfont*font: sdssd Во-вторых, читать файл .Xdefaults -- странное занятие для приложения. Вам следует либо довольствоваться ресурсами xrdb, которые уже определены для данного дисплея (в debian они читаются из ~/.Xresources при запуске X-сервера); либо написать корректную обработку XENVIRONMENT и XFILESEARCHPATH (см. man X), чтобы вести себя как классическое иксовое приложение. Либо, на худой конец, подчитывать какой-нибудь ~/.myapprc и /etc/myapp.conf, но _не_ .Xdefaults или .Xresources. -- With Best Wishes, Anton Kovalenko /* http://kovalenko.webzone.ru */ #!/usr/bin/wish - best wish I have for you!
Re: SOF: Tcl/Tk
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Thu Dec 26, 2002 at 19:28:11 +0300, Anton Kovalenko wrote: AK Кроме того, частенько пишутся мегавиджеты на основе чистого Tcl и Tk. AK Прочитать из option db умолчания для мегавиджета тоже бывает нужно. что такое 'мегавиджет'? - -- Denis Unix is user friendly. It's just selective about who it's friends are. -BEGIN PGP SIGNATURE- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE+C1gn+zH7vYeuVKsRAhnGAKCnlkRCYw5ywK6yZFJHztLLxReekACdG0H2 X7KcDFDM0rOugGnPx6K+7co= =Sz+9 -END PGP SIGNATURE-
Re: SOF: Tcl/Tk
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Thu Dec 26, 2002 at 19:26:26 +0300, Victor Wagner wrote: Это из хэлпа, хотя я не понимаю почему такая конструкция работает. VW Конструкцмя работает потому что [ skipped ] понятно, спасибо! - -- Denis Press Ctrl-Alt-Del for more fun! -BEGIN PGP SIGNATURE- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE+C1Vd+zH7vYeuVKsRAtZuAKCZzXyieH7GJblN82LyAqZNfDl2RwCgnHja tHzkak8nDqI1l+gwBhIatRI= =2//m -END PGP SIGNATURE-
Re: SOF: Tcl/Tk
Denis Dzyubenko writes: AK Кроме того, частенько пишутся мегавиджеты на основе чистого Tcl и Tk. AK Прочитать из option db умолчания для мегавиджета тоже бывает нужно. что такое 'мегавиджет'? Мегавиджет --это виджет (widget,элемент управления), сконструированный из нескольких других виджетов; тем не менее, программист может работать с ним как с единым целым. Примеры реализации мегавиджетов для Tcl/Tk см. в библиотеке tix (на Си + Tcl), библиотеках bwidget, two, ctext и мн. др. (на чистом tcl) -- With Best Wishes, Anton Kovalenko /* http://kovalenko.webzone.ru */ #!/usr/bin/wish - best wish I have for you!
tcl/tk
Hello Debian-Russian! Извиняюсь за оффтопик, но может кому не влом подсказать... Существует ли лучший способ засечь закрытие основного окна в сабже (учитывая что его подэлементы могут уничтожаться в процессе работы, без уничтожения его самого) чем: bind . Destroy {if ![string compare %W .] {чего_надо_сделать}} Спасибо! Всего интересного! -- Best regards, dim mailto:[EMAIL PROTECTED] _ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
Re: tcl/tk
On Mon, 15 Oct 2001, dim wrote: Hello Debian-Russian! Извиняюсь за оффтопик, но может кому не влом подсказать... Существует ли лучший способ засечь закрытие основного окна в сабже (учитывая что его подэлементы могут уничтожаться в процессе работы, без уничтожения его самого) чем: bind . Destroy {if ![string compare %W .] {чего_надо_сделать}} Вообще-то правильнее вешать обработчик на протокол WM_DELETE_WINDOW wm protocol . WM_DELETE_WINDOW {что надо сделать} В отличие от события Destroy из обработчика wm protocol юзера можно послать. Кроме того в отличие от обработчиков событий, обработчики протоколов срабатывают на том, куда их повесили, и никем не наследуются. Впрочем можно поступить следующим образом 1. Повесить обработчик на какой-нибудь левый тэг 2. Поместить этот тэг в bindtags главного окна, и только в него. -- Victor Wagner [EMAIL PROTECTED] Chief Technical Officer Office:7-(095)-748-53-88 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus
Re: tcl/tk
On Tue, 2 Oct 2001, dim wrote: From: dim [EMAIL PROTECTED] Subject: tcl/tk X-Mailer: The Bat! (v1.53d) Hello Debian-Russian! Очень нужна учебная/справочная литература по сабжу. А также сам сабж под всякие там оффтопики (98,2K). По моему, сабж занимает несколько больше, чем девяносто восемь и две десятых килобайта ;-) Ряд полезных ссылок на Tcl-ресурсы (в том числе и на русском) есть на http://www.ice.ru/~vitus/tcl Страница давно не обновлялась. За дистрибутивами рекомендуется лазить на http://tcl.activestate.com/ -- Victor Wagner [EMAIL PROTECTED] Chief Technical Officer Office:7-(095)-748-53-88 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus