Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001
- Название:Советы по Delphi. Версия 1.4.3 от 1.1.2001
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 краткое содержание
…начиная с 1001. Смотрите другие файлы…
Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
tsbTwo:
DCB.StopBits:=2;
end;
SetCommState(DCB);
end;
procedureTComm.SetReadBufferSize(Value:Word);
begin
FReadBufferSize:=Value;
SetPort(FPort);
end;
procedureTComm.SetWriteBufferSize(Value:Word);
begin
FWriteBufferSize:=Value;
SetPort(FPort);
end;
procedureTComm.SetRxFull(Value:Word);
begin
FRxFull:=Value;
ifhComm<0 thenexit;
EnableCommNotification(hComm,FWindowHandle,FRxFull,FTxLow);
end;
procedureTComm.SetTxLow(Value:Word);
begin
FTxLow:=Value;
ifhComm<0 thenexit;
EnableCommNotification(hComm,FWindowHandle,FRxFull,FTxLow);
end;
procedureTComm.SetEvents(Value:TCommEvents);
varEventMask:Word;
begin
FEvents:=Value;
ifhComm<0 thenexit;
EventMask:=0;
iftceBreak inFEvents theninc(EventMask,EV_BREAK);
iftceCts inFEvents theninc(EventMask,EV_CTS);
iftceCtss inFEvents theninc(EventMask,EV_CTSS);
iftceDsr inFEvents theninc(EventMask,EV_DSR);
iftceErr inFEvents theninc(EventMask,EV_ERR);
iftcePErr inFEvents theninc(EventMask,EV_PERR);
iftceRing inFEvents theninc(EventMask,EV_RING);
iftceRlsd inFEvents theninc(EventMask,EV_RLSD);
iftceRlsds inFEvents theninc(EventMask,EV_RLSDS);
iftceRxChar inFEvents theninc(EventMask,EV_RXCHAR);
iftceRxFlag inFEvents theninc(EventMask,EV_RXFLAG);
iftceTxEmpty inFEvents theninc(EventMask,EV_TXEMPTY);
SetCommEventMask(hComm,EventMask);
end;
procedureTComm.WndProc( varMsg:TMessage);
begin
withMsg do begin
ifMsg=WM_COMMNOTIFY then begin
caselParamLo of
CN_EVENT:
DoEvent;
CN_RECEIVE:
DoReceive;
CN_TRANSMIT:
DoTransmit;
end;
end elseResult:=DefWindowProc(FWindowHandle, Msg, wParam, lParam);
end;
end;
procedureTComm.DoEvent;
var
CommEvent:TCommEvents;
EventMask:Word;
begin
if(hComm<0) or notAssigned(FOnEvent) thenexit;
EventMask:=GetCommEventMask(hComm,Integer($FFFF));
CommEvent:=[];
if(tceBreak inEvents) and(EventMask andEV_BREAK<>0) thenCommEvent:=CommEvent+[tceBreak];
if(tceCts inEvents) and(EventMask andEV_CTS<>0) thenCommEvent:=CommEvent+[tceCts];
if(tceCtss inEvents) and(EventMask andEV_CTSS<>0) thenCommEvent:=CommEvent+[tceCtss];
if(tceDsr inEvents) and(EventMask andEV_DSR<>0) thenCommEvent:=CommEvent+[tceDsr];
if(tceErr inEvents) and(EventMask andEV_ERR<>0) thenCommEvent:=CommEvent+[tceErr];
if(tcePErr inEvents) and(EventMask andEV_PERR<>0) thenCommEvent:=CommEvent+[tcePErr];
if(tceRing inEvents) and(EventMask andEV_RING<>0) thenCommEvent:=CommEvent+[tceRing];
if(tceRlsd inEvents) and(EventMask andEV_RLSD<>0) thenCommEvent:=CommEvent+[tceRlsd];
if(tceRlsds inEvents) and(EventMask andEV_Rlsds<>0) thenCommEvent:=CommEvent+[tceRlsds];
if(tceRxChar inEvents) and(EventMask andEV_RXCHAR<>0) thenCommEvent:=CommEvent+[tceRxChar];
if(tceRxFlag inEvents) and(EventMask andEV_RXFLAG<>0) thenCommEvent:=CommEvent+[tceRxFlag];
if(tceTxEmpty inEvents) and(EventMask andEV_TXEMPTY<>0) thenCommEvent:= CommEvent+[tceTxEmpty];
FOnEvent(Self,CommEvent);
end;
procedureTComm.DoReceive;
varStat:TComStat;
begin
if(hComm<0) or notAssigned(FOnReceive) thenexit;
GetCommError(hComm,Stat);
FOnReceive(Self,Stat.cbInQue);
GetCommError(hComm,Stat);
end;
procedureTComm.DoTransmit;
varStat:TComStat;
begin
if(hComm<0) or notAssigned(FOnTransmit) thenexit;
GetCommError(hComm,Stat);
FOnTransmit(Self,Stat.cbOutQue);
end;
procedureTComm.Loaded;
begin
inheritedLoaded;
HasBeenLoaded:=True;
SetPort(FPort);
end;
constructorTComm.Create(AOwner:TComponent);
begin
inheritedCreate(AOwner);
FWindowHandle:=AllocateHWnd(WndProc);
HasBeenLoaded:=False;
Error:=False;
FPort:=PortDefault;
FBaudRate:=BaudRateDefault;
FParity:=ParityDefault;
FDataBits:=DataBitsDefault;
FStopBits:=StopBitsDefault;
FWriteBufferSize:=WriteBufferSizeDefault;
FReadBufferSize:=ReadBufferSizeDefault;
FRxFull:=RxFullDefault;
FTxLow:=TxLowDefault;
FEvents:=EventsDefault;
hComm:=-1;
end;
destructorTComm.Destroy;
begin
DeallocatehWnd(FWindowHandle);
ifhComm>=0 thenCloseComm(hComm);
inheritedDestroy;
end;
procedureTComm.Write(Data:PChar;Len:Word);
begin
ifhComm<0 thenexit;
ifWriteComm(hComm,Data,Len)<0 thenError:=True;
GetCommEventMask(hComm,Integer($FFFF));
end;
procedureTComm.Read(Data:PChar;Len:Word);
begin
ifhComm<0 thenexit;
ifReadComm(hComm,Data,Len)<0 thenError:=True;
GetCommEventMask(hComm,Integer($FFFF));
end;
functionTComm.IsError:Boolean
begin
IsError:=Error;
Error:=False;
end;
procedure Register;
begin
RegisterComponents('Additional',[TComm]);
end;
end.
Принтер
Печать табуляторов с помощью TextOut
Delphi 2
Я пытаюсь напечатать некий текст с помощью Printer.Canvas.TextOut. Моя строка содержит табуляторы, но они почему-то печатаются на бумаге в виде черных прямоугольников. Как мне правильно напечатать строку, содержащую табуляторы?
Обратите внимание на функцию API «TabbedTextOut». Ваш холст (canvas) воспользоваться ей не сможет, но вы можете просто вызвать эту API функцию и передать ей дескриптор холста.
– Bob Fisher
Печать через спулер на матричный принтер
Оргиш Александр (FIDO: 2:454/3.24) пишет:
Печатаю через спулер на матричный принтер текст таким образом :
Var
pcbNeeded: DWORD;
FDevice: PChar;
FPort: PChar;
FDriver: PChar;
FPrinterHandle: THandle;
FDeviceMode: THandle;
FJob: PADDJOBINFO1;
Stream: TFileStream;
Интервал:
Закладка: