www.pudn.com > TurboPower.Async.rar > AxProtPg.pas
(***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower Async Professional
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1991-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** *)
{******************************************************************}
{* AXPROTPG.PAS 1.13 *}
{******************************************************************}
{* AxProtPg.PAS - Protocols property page editor *}
{******************************************************************}
{$I AXDEFINE.INC}
unit AxProtPg;
interface
uses SysUtils, Windows, Messages, Classes, Graphics, Controls, StdCtrls,
ExtCtrls, Forms, ComServ, ComObj, StdVcl, AxCtrls, Dialogs, AdProtCl,
ComCtrls;
type
TApxProtocolPage = class(TPropertyPage)
Label3: TLabel;
cbxWriteFailAction: TComboBox;
chkIncludeDirectory: TCheckBox;
btnReceiveDirectory: TButton;
edtReceiveDirectory: TEdit;
Label2: TLabel;
chkUpCaseFileNames: TCheckBox;
chkHonorDirectory: TCheckBox;
chkAbortNoCarrier: TCheckBox;
chkRTSLowForWrite: TCheckBox;
chkProtocolStatusDisplay: TCheckBox;
Label8: TLabel;
edtStatusInterval: TEdit;
UpDown3: TUpDown;
Label5: TLabel;
edtFinishWait: TEdit;
UpDown2: TUpDown;
Label1: TLabel;
edtHandshakeRetry: TEdit;
UpDown1: TUpDown;
btnConfigure: TButton;
Label6: TLabel;
cbxProtocol: TComboBox;
Bevel2: TBevel;
Label4: TLabel;
Label7: TLabel;
Bevel3: TBevel;
procedure btnConfigureClick(Sender: TObject);
procedure btnReceiveDirectoryClick(Sender: TObject);
private
procedure ConfigureXYmodem;
procedure ConfigureZmodem;
procedure ConfigureKermit;
procedure ConfigureAscii;
protected
{ Protected declarations }
public
{ Public declarations }
procedure UpdatePropertyPage; override;
procedure UpdateObject; override;
end;
const
Class_ApxProtocolPage: TGUID = '{B9918A04-5564-4C09-AB98-5AE78A7AB6C4}';
implementation
{$R *.DFM}
uses
AxAsciDg, AxKermDg, AxXYmdDg, AxZmdmDg, AxDirDg;
var
{ ascii }
AsciiCharDelay : Integer;
AsciiLineDelay : Integer;
AsciiSuppressCtrlZ : WordBool;
AsciiEOFTimeout : Integer;
AsciiEOLChar : Integer;
AsciiCRTranslation : TAsciiEOLTranslation;
AsciiLFTranslation : TAsciiEOLTranslation;
{ kermit }
BlockCheckMethod : TBlockCheckMethod;
KermitHighbitPrefix : Integer;
KermitRepeatPrefix : Integer;
KermitCtlPrefix : Integer;
KermitPadCount : Integer;
KermitPadCharacter : Integer;
KermitMaxLen : Integer;
KermitTerminator : Integer;
{ x/y modem }
XYModemBlockWait : Integer;
{ z modem }
ZModem8K : WordBool;
ZModemFileOptions : TZModemFileOptions;
ZModemFinishRetry : Integer;
ZModemOptionOverride : WordBool;
ZModemRecover : WordBool;
ZModemSkipNoFile : WordBool;
{== TApxProtocolPage =====================================================}
procedure TApxProtocolPage.UpdatePropertyPage;
begin
{ general }
edtReceiveDirectory.Text := OleObject.ReceiveDirectory;
chkHonorDirectory.Checked := OleObject.HonorDirectory;
chkIncludeDirectory.Checked := OleObject.IncludeDirectory;
cbxWriteFailAction.ItemIndex := Integer(OleObject.WriteFailAction);
chkProtocolStatusDisplay.Checked := OleObject.ProtocolStatusDisplay;
cbxProtocol.ItemIndex := Integer(OleObject.Protocol);
chkAbortNoCarrier.Checked := OleObject.AbortNoCarrier;
UpDown1.Position := OleObject.HandshakeRetry;
{edtHandshakeRetry.Text := IntToStr(OleObject.HandshakeRetry);}
chkUpCaseFileNames.Checked := OleObject.UpcaseFileNames;
UpDown2.Position := OleObject.FinishWait;
{edtFinishWait.Text := IntToStr(OleObject.FinishWait);}
UpDown3.Position := OleObject.StatusInterval;
{edtStatusInterval.Text := IntToStr(OleObject.StatusInterval);}
chkRTSLowForWrite.Checked := OleObject.RTSLowForWrite;
{ ascii }
AsciiCharDelay := OleObject.AsciiCharDelay;
AsciiLineDelay := OleObject.AsciiLineDelay;
AsciiSuppressCtrlZ := OleObject.AsciiSuppressCtrlZ;
AsciiEOFTimeout := OleObject.AsciiEOFTimeout;
AsciiEOLChar := OleObject.AsciiEOLChar;
AsciiCRTranslation := OleObject.AsciiCRTranslation;
AsciiLFTranslation := OleObject.AsciiLFTranslation;
{ kermit }
BlockCheckMethod := OleObject.BlockCheckMethod;
KermitHighbitPrefix := OleObject.KermitHighbitPrefix;
KermitRepeatPrefix := OleObject.KermitRepeatPrefix;
KermitCtlPrefix := OleObject.KermitCtlPrefix;
KermitPadCount := OleObject.KermitPadCount;
KermitPadCharacter := OleObject.KermitPadCharacter;
KermitMaxLen := OleObject.KermitMaxLen;
KermitTerminator := OleObject.KermitTerminator;
{ x/y modem }
XYModemBlockWait := OleObject.XYmodemBlockWait;
{ z modem }
ZModem8K := OleObject.Zmodem8K;
ZModemFileOptions := OleObject.ZmodemFileOptions;
ZModemFinishRetry := OleObject.ZmodemFinishRetry;
ZModemOptionOverride := OleObject.ZmodemOptionOverride;
ZModemRecover := OleObject.ZmodemRecover;
ZModemSkipNoFile := OleObject.ZmodemSkipNoFile;
end;
{ ----------------------------------------------------------------------- }
procedure TApxProtocolPage.UpdateObject;
begin
{ general }
OleObject.ReceiveDirectory := edtReceiveDirectory.Text;
OleObject.HonorDirectory := chkHonorDirectory.Checked;
OleObject.IncludeDirectory := chkIncludeDirectory.Checked;
OleObject.WriteFailAction := cbxWriteFailAction.ItemIndex;
OleObject.ProtocolStatusDisplay := chkProtocolStatusDisplay.checked;
OleObject.StatusInterval := StrToIntDef(edtStatusInterval.Text, 18);
OleObject.Protocol := TProtocolType(cbxProtocol.ItemIndex);
OleObject.AbortNoCarrier := chkAbortNoCarrier.Checked;
OleObject.HandshakeRetry := StrToIntDef(edtHandshakeRetry.Text, 10);
OleObject.UpcaseFileNames := chkUpCaseFileNames.Checked;
OleObject.FinishWait := StrToIntDef(edtFinishWait.Text, 364);
OleObject.RTSLowForWrite := chkRTSLowForWrite.Checked ;
{ ascii }
OleObject.AsciiCharDelay := AsciiCharDelay;
OleObject.AsciiLineDelay := AsciiLineDelay;
OleObject.AsciiSuppressCtrlZ := AsciiSuppressCtrlZ;
OleObject.AsciiEOFTimeout := AsciiEOFTimeout;
OleObject.AsciiEOLChar := AsciiEOLChar;
OleObject.AsciiCRTranslation := AsciiCRTranslation;
OleObject.AsciiLFTranslation := AsciiLFTranslation;
{ kermit }
OleObject.BlockCheckMethod := BlockCheckMethod;
OleObject.KermitHighbitPrefix := KermitHighbitPrefix;
OleObject.KermitRepeatPrefix := KermitRepeatPrefix;
OleObject.KermitCtlPrefix := KermitCtlPrefix;
OleObject.KermitPadCount := KermitPadCount;
OleObject.KermitPadCharacter := KermitPadCharacter;
OleObject.KermitMaxLen := KermitMaxLen;
OleObject.KermitTerminator := KermitTerminator;
{ x/y modem }
OleObject.XYmodemBlockWait := XYModemBlockWait;
{ z modem }
OleObject.Zmodem8K := ZModem8K;
OleObject.ZmodemFileOptions := ZModemFileOptions;
OleObject.ZmodemFinishRetry := ZModemFinishRetry;
OleObject.ZmodemOptionOverride := ZModemOptionOverride;
OleObject.ZmodemRecover := ZModemRecover;
OleObject.ZmodemSkipNoFile := ZModemSkipNoFile;
end;
{ ----------------------------------------------------------------------- }
procedure TApxProtocolPage.btnConfigureClick(Sender: TObject);
begin
case TProtocolType(cbxProtocol.ItemIndex) of
ptXmodem : ConfigureXYmodem;
ptXmodemCRC : ConfigureXYmodem;
ptXmodem1K : ConfigureXYmodem;
ptXmodem1KG : ConfigureXYmodem;
ptYmodem : ConfigureXYmodem;
ptYmodemG : ConfigureXYmodem;
ptZmodem : ConfigureZmodem;
ptKermit : ConfigureKermit;
ptAscii : ConfigureAscii;
end;
end;
{ ----------------------------------------------------------------------- }
procedure TApxProtocolPage.ConfigureXYmodem;
var
XYModemDlg : TApxXYModemOptions;
begin
try
XYModemDlg := TApxXYModemOptions.Create(Self);
try
XYModemDlg.XYModemBlockWait := XYModemBlockWait;
if (XYModemDlg.ShowModal = mrOK) then
XYModemBlockWait := XYModemDlg.XYModemBlockWait;
finally
XYModemDlg.Free;
end;
except
end;
end;
{ ----------------------------------------------------------------------- }
procedure TApxProtocolPage.ConfigureZmodem;
var
ZModemDlg : TApxZModemOptions;
begin
try
ZModemDlg := TApxZModemOptions.Create(Self);
try
ZModemDlg.ZModem8K := ZModem8K;
ZModemDlg.ZModemFileOptions := ZModemFileOptions;
ZModemDlg.ZModemFinishRetry := ZModemFinishRetry;
ZModemDlg.ZModemOptionOverride := ZModemOptionOverride;
ZModemDlg.ZModemRecover := ZModemRecover;
ZModemDlg.ZModemSkipNoFile := ZModemSkipNoFile;
if (ZModemDlg.ShowModal = mrOK) then begin
ZModem8K := ZModemDlg.ZModem8K;
ZModemFileOptions := ZModemDlg.ZModemFileOptions;
ZModemFinishRetry := ZModemDlg.ZModemFinishRetry;
ZModemOptionOverride := ZModemDlg.ZModemOptionOverride;
ZModemRecover := ZModemDlg.ZModemRecover;
ZModemSkipNoFile := ZModemDlg.ZModemSkipNoFile;
end;
finally
ZModemDlg.Free;
end;
except
end;
end;
{ ----------------------------------------------------------------------- }
procedure TApxProtocolPage.ConfigureKermit;
var
KermitDlg : TApxKermitOptions;
begin
try
KermitDlg := TApxKermitOptions.Create(Self);
try
KermitDlg.BlockCheckMethod := BlockCheckMethod;
KermitDlg.KermitHighbitPrefix := KermitHighbitPrefix;
KermitDlg.KermitRepeatPrefix := KermitRepeatPrefix;
KermitDlg.KermitCtlPrefix := KermitCtlPrefix;
KermitDlg.KermitPadCount := KermitPadCount;
KermitDlg.KermitPadCharacter := KermitPadCharacter;
KermitDlg.KermitMaxLen := KermitMaxLen;
KermitDlg.KermitTerminator := KermitTerminator;
if (KermitDlg.ShowModal = mrOK) then begin
BlockCheckMethod := KermitDlg.BlockCheckMethod;
KermitHighbitPrefix := KermitDlg.KermitHighbitPrefix;
KermitRepeatPrefix := KermitDlg.KermitRepeatPrefix;
KermitCtlPrefix := KermitDlg.KermitCtlPrefix;
KermitPadCount := KermitDlg.KermitPadCount;
KermitPadCharacter := KermitDlg.KermitPadCharacter;
KermitMaxLen := KermitDlg.KermitMaxLen;
KermitTerminator := KermitDlg.KermitTerminator;
end;
finally
KermitDlg.Free;
end;
except
end;
end;
{ ----------------------------------------------------------------------- }
procedure TApxProtocolPage.ConfigureAscii;
var
AsciiDlg : TApxAsciiOptions;
begin
try
AsciiDlg := TApxAsciiOptions.Create(Self);
try
AsciiDlg.AsciiCharDelay := AsciiCharDelay;
AsciiDlg.AsciiLineDelay := AsciiLineDelay;
AsciiDlg.AsciiSuppressCtrlZ := AsciiSuppressCtrlZ;
AsciiDlg.AsciiEOFTimeout := AsciiEOFTimeout;
AsciiDlg.AsciiEOLChar := AsciiEOLChar;
AsciiDlg.AsciiCRTranslation := AsciiCRTranslation;
AsciiDlg.AsciiLFTranslation := AsciiLFTranslation;
if (AsciiDlg.ShowModal = mrOK) then begin
AsciiCharDelay := AsciiDlg.AsciiCharDelay;
AsciiLineDelay := AsciiDlg.AsciiLineDelay;
AsciiSuppressCtrlZ := AsciiDlg.AsciiSuppressCtrlZ;
AsciiEOFTimeout := AsciiDlg.AsciiEOFTimeout;
AsciiEOLChar := AsciiDlg.AsciiEOLChar;
AsciiCRTranslation := AsciiDlg.AsciiCRTranslation;
AsciiLFTranslation := AsciiDlg.AsciiLFTranslation;
end;
finally
AsciiDlg.Free;
end;
except
end;
end;
{ ----------------------------------------------------------------------- }
procedure TApxProtocolPage.btnReceiveDirectoryClick(Sender: TObject);
var
DirDlg : TAxDirectoryDlg;
begin
try
DirDlg := TAxDirectoryDlg.Create(Self);
try
if DirDlg.Execute then
edtReceiveDirectory.Text := DirDlg.SelectedFolder;
finally
DirDlg.Free;
end;
except
end;
end;
initialization
TActiveXPropertyPageFactory.Create(
ComServer,
TApxProtocolPage,
Class_ApxProtocolPage);
end.