Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Integer to widechar [D7, WinXP]


Страницы:   1 2

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)^;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо