Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];

Вниз

Тоже com ???   Найти похожие ветки 

 
AndrewVolkov   (2003-07-10 20:23) [0]

Никогда ниче под енто не писал. Представления имею мало.

Почитал две статьи на этом сайте.

Единственное не совсем понял такую вещь.

В доке к устройству написано
# Escape code
..
..
#FC1# Change to font 1


Имея статью с сайта, где
KolByte:=1;
Transmit[0]:=chr(A);
WriteFile(CommHandle,Transmit,KolByte,KolByte,@Ovr);


Заполняете KolByte количеством символов в строке, а вместо массива Transmite используем строковый тип, только не в паскалевском формате, а в PChar

Если я хочу послать команду #FC1#

ее надо в Хексы переделывать, или надо

Var
( CommHandle,Dest,???,???,@Ovr) Никогда ниче под енто не писал. Представления имею мало.

Почитал две статьи на этом сайте.

Единственное не совсем понял такую вещь.

В доке к устройству написано
# Escape code
..
..
#FC1# Change to font 1


Имея статью с сайта, где
KolByte:=1;
Transmit[0]:=chr(A);
WriteFile(CommHandle,Transmit,KolByte,KolByte,@Ovr);


Заполняете KolByte количеством символов в строке, а вместо массива Transmite используем строковый тип, только не в паскалевском формате, а в PChar

Если я хочу послать команду #FC1#

ее надо в Хексы переделывать, или надо

Var
Dest: PChar;
begin
Dest:="#FC1#";
WriteFile(CommHandle,Dest,???,???,@Ovr);

Как то так надо или как???


 
jack128   (2003-07-10 21:39) [1]

Плохо читал статьи(либо в статье ошибка). Если Transmit - это PСhar, то нужно писать так WriteFile(CommHandle,Transmit ^,KolByte,KolByte,@Ovr);

Var
Dest: PChar;
begin
Dest:="#FC1#";
WriteFile(CommHandle,Dest ^,BytesToWrite,BytesWritten,@Ovr);
end;
Где BytesToWrite - сколько тебе нужно отослать байт, а в BytesWritten - вернут, сколько байт реально было отослано



 
AndrewVolkov   (2003-07-10 22:31) [2]

А размер BytestoWrite это SizeOf(Dest)???


 
AndrewVolkov   (2003-07-10 22:32) [3]

Так в хексы не надо переводить??? Или функция writefile перегоняет в хексы или все таки не надо в хекс и можно просто строкой???


 
pasha676   (2003-07-11 10:06) [4]


> Плохо читал статьи(либо в статье ошибка). Если Transmit
> - это PСhar, то нужно писать так WriteFile(CommHandle,Transmit^,KolByte,KolByte,@Ovr);

Неа. Все правильно. PChar - это уже суть ссылка на первый элемент строки. Если же transmit представлен array of byte, то опять же все правильно. Ибо если взять просто Transmit то паскаль автоматом возьмет адрес первого элемента в массиве. Т.е. то что надо. Это точно и у меня работает в добрых 20-30 программах с различными устройствами.


> А размер BytestoWrite это SizeOf(Dest)???

Не замарачивайся, пиши там сколько байт нужно передать.


> Так в хексы не надо переводить??? Или функция writefile
> перегоняет в хексы или все таки не надо в хекс и можно просто
> строкой???

Функция ничего не перегоняет. Что нужно передавать - это надо читать описание устройства. По нему и формируешь строку или массив.


 
AndrewVolkov   (2003-07-11 10:21) [5]

В описании к устройству написано

ESC+ @ - Device Reset
(1BH)+(40H), (27)+(64) decimal
Terminates processing and initializes the
default values, same as at power on.



 
Jack128   (2003-07-11 13:04) [6]


> Ибо если взять просто Transmit то паскаль автоматом возьмет
> адрес первого элемента в массиве.

По вашему
var Transmit : PChar;
begin
WriteFile(CommHandle,Transmit^,KolByte,KolByte,@Ovr);//передаем 1 элемент массива
и
WriteFile(CommHandle,Transmit,KolByte,KolByte,@Ovr);//передаем указатель на первый элемент массива
end;
одно и тоже??




Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
1-71623
Alfred
2003-09-09 12:44
2003.09.22
Как вывести Word на экран


3-71539
Vitaly
2003-08-29 19:17
2003.09.22
SQL


3-71485
Engel
2003-09-01 19:33
2003.09.22
Компоненты для переноса таблицы


1-71612
Пубертанец
2003-09-09 14:05
2003.09.22
Почему при установке на другом компе требует qtintf.dll?


3-71551
big_bugzy
2003-08-29 13:08
2003.09.22
Проблема с утечкой памяти при работе с большой таблицей





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский