Информатика-21. Форум проекта |
Форум открыт по просьбам читателей сайта проекта для обсуждения Оберона/Компонентного
Паскаля/Блэкбокса как технологической платформы для современной общей системы преподавания программирования,
параллельной и дополняющей систему преподавания математики. Мнения за и против, вопросы как и почему, и т.п.
Характер форума предполагает максимальную корректность высказываний: модераторы удалят без предупреждения
любые сообщения с вульгарным или неуместным контентом, переходом на личности и т.п.
Всего в теме 1147 сообщений
Добавить свое сообщение
- Проект «Информатика—21»
- Обсуждение темы "Мысли об Обероне" на Королевстве
Уважаемые участники форума! Обращаем ваше внимание на тот факт, что данная
тема никоим образом не допускает offtopic и предполагает максимальную корректность высказываний:
модераторы удалят без предупреждения любые сообщения с вульгарным или неуместным контентом, переходом на личности и т.п.
Отслеживать это обсуждение Обсуждение из раздела Школа ОБЕРОНА
№ 347 20-06-2005 17:20 | |
Ответ на »сообщение 345« (Trurl)
___________________________
На самом деле всё ещё несколько нетакее. В модуле HostPorts есть такие строчки (Rider.DrawString):
IF ~HostFonts.isUnicode THEN
ch := 1X;
res := KERNEL32.WideCharToMultiByte(0, , s, -1, str, LEN(str), ch, NIL);
str[res] := 0X;
rd.DrawSString(x, y, col, str, font);
RETURN
END;
Так что временами вывод юникодных символов прокатывает. А учитывая, что и шрифты местами (на Win98 по крайней мере) не совсем юникодные, то заранее сказать, как выведется строка, ещё сложнее.
А в полностью юникодовом варианте ЧЯ под Win98 работать отказывается :(
№ 346 20-06-2005 07:43 | |
>>> а вот s2 превратится в 'aoeau', ведь она содержит коды именно этих символов.
Вместо 'aoeau' должны быть буква с диакритическими знаками.
№ 345 20-06-2005 07:33 | |
Ответ на »сообщение 344« (Kubanych)
___________________________
Да нет. Это не Ваша невнимательность. Вопрос гораздо сложнее.
Рассмотрим код
s1, s2 :ARRAY stringLen OF CHAR;
....
s1 := 'буквы';
s2 := 'буквы';
На экране видим строку 'буквы'. "На самом деле" она может быть закодирована в Юникоде (431X 443X 43AX 432X 44BX) или в "Windows-1251" (E1X F3X EAX E2X FBX), хотя возможны и более экзотичные варианты. Но компилятор игнорирует все символы > 100X. В результате в первом случае получим s1 = ''.
Следующая ситуация.
SetTrueUnicodeStingBukvy(s1);
Пусть в s1 находится "правильная" строка 'буквы' в Юникоде. Для ввода-вывода BlackBox использует как 16-битные (Unicode), так и 8-битные (ANSI)функции WinApi.
В последнем случае каждый символ обрезается до байта. То есть 'буквы' (431X 443X 43AX 432X 44BX) превращается в '1C:2K'(31X 43X 3AX 32X 4BX).
Если же используется Unicode функция, s1 отобразиться нормально, а вот s2 превратится в 'aoeau', ведь она содержит коды именно этих символов.
При работе с таблицами наблюдаем проблему во всей красе.
s1[0]:= 431X; s1[1]:= 443X; s1[2]:= 43AX;
s1[3]:= 432X; s1[4]:= 44BX; s1[5]:= 0X;
s2:= 'буквы';
dz.SetSize( 2,1 );
dz.SetItem( 0,0,s2);
dz.SetItem( 1,0,s1);
Первая строка в таблице отображается как 'aoeau', но редактируется как 'буквы'. Вторая отображается нормально, но при попытке отредактировать превращается в '1C:2K'.
№ 344 20-06-2005 06:26 | |
Здравствуйте.
Прошу прощения. Это моя невнимательность.
Конечно, в ББ все надписи в коде видны и читаются по-русски. При переносе в окно браузера
русские буквы испортились, я переписал только
текст заполнения ячеек таблицы (и забыл о других текстах, написанных по-русски).
Но вопрос не в этом. Отображаемый правильно в коде текст в диалоговом окне в режиме редактирования показывает мусор. При запуске в рабочем режиме в ячейках с текстом на русском языке также отображается мусор. После выделения ячейки и начала работы появляются правильные кириллические буквы.
После завершения правки и выходя из ячейки обратно показывается мусор.
С уважением,
№ 343 20-06-2005 04:39 | |
Ответ на »сообщение 341« (kubanych)
___________________________
Вам не показалось странным, что текст в »сообщение 341« выглядит несколько инвче, чем в ББ? ;-)
Попробуйте и вот это
item[0]:= CHR(1073);
item[1]:= CHR(1091);
item[2]:= CHR(1082);
item[3]:= CHR(1074);
item[4]:= CHR(1099);
item[5]:= 0X;
dz.SetItem( 2,1,item);
№ 342 Удалено модератором | |
№ 341 18-06-2005 23:46 | |
Здравствуйте.
Попробовал сделать пример с использованием таблицы.
Создал стандартную форму, привязал таблицу к
соответствующей переменной.
Русские буквы в режиме редактирования ячеек отображаются нормально, но в режиме просмотра
ячеек выходит мусор. С английскими буквами все в порядке.
Не подскажете, как можно решить эту проблему?
Вот модуль
MODULE dialogTable;
IMPORT StdLog, Dialog, StdTables;
CONST i?ia = 0; iaoai = 1; ioc = 2; ooai? = 3; aiae = 4;
VAR dz*: StdTables.Table;
PROCEDURE show*;
VAR i: INTEGER; item: Dialog.String;
BEGIN
StdLog.String('aiiieieoaeuiua caiyoey:'); StdLog.Ln;
FOR i := 0 TO dz.rows - 1 DO
StdLog.Tab;
dz.GetItem(i,1,item);
StdLog.String(item);
StdLog.Ln
END;
END show;
BEGIN
dz.SetSize( 3,2 );
dz.SetItem( 0,1, 'буквы' );
dz.SetItem( 1,1, 'letters' );
dz.SetItem( 2,1, 'ариптер' );
END dialogTable.
С уважением,
№ 340 13-06-2005 16:15 | |
Ответ на »сообщение 337« (Руслан Богатырев)
___________________________
Ответ на »сообщение 336« (info21)
___________________________
... очень хороший повод донести до массовой аудитории те идеи, которые проповедует 'Информатика-21'.
Конечно! Но не столько благодаря самой конференции (там еще неизвестно как сигнал в шуме утонет, да и народу не так много будет, и не совсем тот народ), а "отыгрывая" интерес СМИ и т.п.
Хорошо, что у нашего коммьюнити есть "своя лапа" в СМИ :-)
№ 339 13-06-2005 16:12 | |
Ответ на »сообщение 338« (Владимир Лось)
___________________________
Поэтому важно людям знать о "точках опоры".
Поэтому повторю: проекты с Обероном/Блэкбоксом -- в официальных планах до по кр. мере (2007+15) года.
№ 338 13-06-2005 10:47 | |
Ответ на »сообщение 337« (Руслан Богатырев)
___________________________
Ответ на »сообщение 336« (info21) + Ответ на »сообщение 335« (info21)
___________________________
Ещё надо не забывать, что и "з иншого боку" тоже не мало "случайно примкнувших", просто ищущих, где заработать "пару копеек"... Для подобных, не Оберон - так вёшенки... :о) Реальный факт, кстати! Профессор, естественно, сам всё делать физически не успевает и не может и, поэтому обращается к окружению. А в оном окружении не всегда и не все исповедуют те же самые принципы... Да и смотреть надо что там маленькими буквицами в грантах и договорах пишется...
Исходя из собственного опыта, могу даже (плюс-минус месяца три-цетыре), предсказать, когда вдруг российскими делами начнут сильно интересоваться западные "коллеги"... Так что надо обязательно смотреть: то ли это действительно заинтересованность в развитии научных и образовательных контактах, то ли - что-то ещё (... и "другое" :о))...
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|