![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Integer to widechar [D7, WinXP]
stanislav © (2007-08-22 11:01:00)Подскажите пожалуйста как преобразовать Integer в WideChar
stanislav (2007-08-22 11:54:00) [21]umbra © (22.08.07 11:51) [14]
Все равно пишеться значение переменной Symbol, т.е. цифра
A:WideChar absolute Symbol; - нигде не встречал такого объявления переменных :-)
umbra (2007-08-22 11:51:00) [22]
Var I,j,Index,symbol:Word; //было Integer - заменил на юникод
A:WideChar absolute Symbol;
begin
Symbol:=2337;
For J:=1 to 22 do
begin
Index:=CxGrid1.Views[0].DataController.AppendRecord;
For i:=0 to 9 do
begin
CxGrid1.Views[0].DataController.SetValue(Index,i,A);
inc(Symbol);
end;
end;
clickmaker (2007-08-22 11:50:00) [23]
> Если clickmaker © (22.08.07 11:14) [3], то при компиляции
> ошибка
ну это схематично. Т.е. если в интежер положить widechar, то он ляжет в младшее слово. Просто достань его оттуда
stanislav (2007-08-22 11:47:00) [24]вместо него возвращает 2337 если Сергей М. © (22.08.07 11:05) [1]
Если clickmaker © (22.08.07 11:14) [3], то при компиляции ошибка несовпадение типов Word и WideChar
stanislav (2007-08-22 11:45:00) [25]Вот так все работает как надо, только хочется это все в грид записать
Var A:WideString; I:Integer;
begin
For I:=2337 to 2557 do SendMessage (Richedit1.Handle,WM_CHAR,I,0);
clickmaker (2007-08-22 11:44:00) [26]
> CxGrid1.Views[0].DataController.SetValue(Index,i,A);
2337 - воскл. знак?
а что вместо него?
stanislav (2007-08-22 11:43:00) [27]Сергей М. © (22.08.07 11:18) [4]
А так возвращает одно и тоже число, независимо от IntegerVar - похоже адрес переменной.
stanislav (2007-08-22 11:32:00) [28]нужно читать:
//было Integer - заменил на Word
stanislav (2007-08-22 11:31:00) [29]Вобщем хочу сделать таблицу символов, использую для отображения cxGrid он вроде поддерживает юникод
Var I,j,Index,symbol:Word; //было Integer - заменил на юникод
A:WideChar;
begin
Symbol:=2337;
For J:=1 to 22 do
begin
Index:=CxGrid1.Views[0].DataController.AppendRecord;
For i:=0 to 9 do
begin
A:=Symbol; //В А нужно записать символ соответствующию коду Symbol
CxGrid1.Views[0].DataController.SetValue(Index,i,A);
inc(Symbol);
end;
end;
clickmaker (2007-08-22 11:23:00) [30]
> [5] stanislav © (22.08.07 11:21)
а откуда вообще этот интежер? как он заполняется?
stanislav (2007-08-22 11:21:00) [31]clickmaker © (22.08.07 11:14) [3]
Так не работает.
Сергей М. (2007-08-22 11:18:00) [32]
> Мне нужно получить символ типа WideChar
Integer-переменная в Д7 способна хранить дватаких символа - один в младшем слове, другой в старшем.
Пример в [1] - для младшего слова.
Для старшего слова:
WideCharValue := PWideChar(@IntegerVar)[1];
clickmaker (2007-08-22 11:14:00) [33]
> символ типа WideChar
WCh := Word(Integer)
stanislav (2007-08-22 11:12:00) [34]Сергей М. © (22.08.07 11:05) [1]
Я извеняюсь - наверное неправильно объяснил.
Мне нужно получить символ типа WideChar
Сергей М. (2007-08-22 11:05:00) [35]WideCharValue := PWideChar(@IntegerVar)^;