⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 LED字幕显示屏
💻
📖 第 1 页 / 共 2 页
字号:
unit P2000R10A;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, Menus, ExtCtrls, lmdctrl, lmdstdcS, lmdextcS, lmdcctrl, Grids,
  StdCtrls, lmdstdcA, lmdcombo, Buttons, OleCtrls, lmdbtn, CheckLst, registry,
  lmdmmS, lmdshapA, RzStatus, RzDBStat, RzPrgres, RzPanel,
  lmdcompo, lmdclass, lmdnonvS, lmdgroup, AdPort, AdvGrid, FileCtrl,
  RzButton, VrControls, VrLcd, OoMisc;

type
  TfrmsignA = class(TForm)
    ScrollBox1: TScrollBox;
    Panel7: TPanel;
    ScrollBox2: TScrollBox;
    SetupBox: TGroupBox;
    Label8: TLabel;
    CommPort1: TRadioButton;
    CommPort2: TRadioButton;
    Panel3: TPanel;
    Label9: TLabel;
    Sign_Speed: TLMDSpinEdit;
    Sign_Height: TLMDSpinEdit;
    Panel1: TPanel;
    Memo1: TMemo;
    GroupBox1: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    SendList: TListBox;
    RzStatusBar1: TRzStatusBar;
    RzStatusPane: TRzStatusPane;
    RzKeyStatus: TRzKeyStatus;
    RzKeyStatus1: TRzKeyStatus;
    RzClockStatus: TRzClockStatus;
    Timer1: TTimer;
    CommPort: TApdComPort;
    SendGrid: TAdvStringGrid;
    Panel2: TPanel;
    DriveComboBox1: TDriveComboBox;
    DirectoryListBox1: TDirectoryListBox;
    FileListBox1: TFileListBox;
    Edit1: TEdit;
    Label1: TLabel;
    Cls: TRzBitBtn;
    Send: TRzBitBtn;
    CheckSignSend: TRzBitBtn;
    StopCheckSend: TRzBitBtn;
    btnNewFile: TRzBitBtn;
    btnLoadFile: TRzBitBtn;
    btnSaveFile: TRzBitBtn;
    SaveConfig: TRzBitBtn;
    LoadSendSign: TRzBitBtn;
    Panel4: TPanel;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    Label2: TLabel;
    OutEffect: TComboBox;
    Label3: TLabel;
    OutSpeed: TLMDSpinEdit;
    LineNum: TLabel;
    VrClock1: TVrClock;
    RzBitBtn1: TRzBitBtn;
    LMD3DEffectButton2: TLMD3DEffectButton;
    Splitter1: TSplitter;
    VrNum1: TVrNum;
    RadioButton5: TRadioButton;
    RadioButton6: TRadioButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure btnLoadFileClick(Sender: TObject);
    procedure btnNewFileClick(Sender: TObject);
    procedure btnSaveFileClick(Sender: TObject);
    procedure SaveConfigClick(Sender: TObject);
    procedure LoadSignSendClick(Sender: TObject);
    procedure SendClick(Sender: TObject);
    procedure LMD3DEffectButton2Click(Sender: TObject);
    procedure ClsClick(Sender: TObject);
    procedure CheckSignSendClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure StopCheckSendClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure RadioButton3Click(Sender: TObject);
    procedure RadioButton4Click(Sender: TObject);
    procedure SendGridSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure FileListBox1DblClick(Sender: TObject);
    procedure RzBitBtn1Click(Sender: TObject);
    procedure RadioButton6Click(Sender: TObject);
    procedure RadioButton5Click(Sender: TObject);

  private
    { Private declarations }
//    SelectFlag: integer;
    sendLine: integer;
    Sign_Color: integer;
    SendByte: array[0..1800] of byte;
    Tmp: array of byte;
    Comm: Integer;
    SignHeight: integer;
    Speed: integer;
    sign_Color_tmp: integer;
    SendString: array[0..5] of string;
    ByteLength: integer;
    DisplayDirct: Boolean;
    CurrentLine: integer;
    Big5:Boolean;
  public
    { Public declarations }

    procedure SaveFile(Filename: string);
    procedure WriteReg();
    procedure ReadReg();
    procedure SendIDCode(PortID: byte);
    procedure SendCls();
    procedure Text_Command(Color, Position, Style: byte; Send_Text: string);
    procedure ClipWindows_Command(x, y, x1, y1: integer);
    function GetCheckSum: integer;
    procedure Cls_Command();
    procedure Delay_Command;
    procedure DownItem;
    procedure UpItem;
    procedure ZMTOTXT(FileName: string);

  end;

var
  frmsignA: TfrmsignA;

implementation

uses CVCode;

{$R *.DFM}

procedure TfrmsignA.SendIDCode;
var
  SendId: array of byte;
  i: integer;
begin
  SetLength(SendId, 4);
  {SendId[0]:=$9a;   //Start Code
  SendId[1]:=$00;   //ID_Length
  SendId[2]:=$00;   //Start_ID
  SendId[3]:=$00;   //End_ID}
  SendId[0] := $9A; //Start Code
  SendId[1] := $01; //ID_Length
  SendId[2] := PortID; //ID
  SendId[3] := $00; //Send Command Startcode 00
  for i := 0 to 3 do
    CommPort.PutChar(char(SendId[i]));
end;

procedure TfrmsignA.SaveFile(Filename: string);
var
  MyFile: TextFile;
begin
  AssignFile(MyFile, FileName);
  ReWrite(MyFile);
  try
    Write(MyFile, Memo1.text);
  finally
    CloseFile(MyFile);
  end;
end;

procedure TfrmsignA.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if Memo1.Modified then
    BtnSaveFileClick(Sender);
  Action := caFree;
end;

procedure TfrmsignA.FormCreate(Sender: TObject);
begin
  ReadReg();
  DisplayDirct := True;
  OutEffect.ItemIndex := 0;
  CurrentLine := 1;
  Big5:=False;
  DirectoryListBox1.Directory := ExtractFileDir(Application.ExeName);
  SendGrid.ColWidths[1] := 270;
end;

procedure TfrmsignA.ReadReg;
var
  Reg: TRegistry;
  Tmp: integer;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\Software\2000r10\', True) then
    begin
      Tmp := Reg.ReadInteger('Comm');
      case Tmp of
        1:
          begin
            commPort1.Checked := True;
            Comm := 1;
          end;
        2:
          begin
            CommPort2.Checked := True;
            Comm := 2;
          end;
      end;
      Sign_Color := Reg.ReadInteger('Color');
      SignHeight := Reg.ReadInteger('Height');
      sign_Height.Text := inttostr(SignHeight);
      SendLine := Reg.ReadInteger('Line');
      Speed := Reg.ReadInteger('Speed');
      Sign_Speed.Value := Speed;
    end;
  finally
    Reg.CloseKey;
    Reg.Free;
    CommPort.ComNumber := Comm;
  end;
end;

procedure TfrmsignA.WriteReg;
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\Software\2000r10\', True) then
    begin
      Comm := 2;
      if CommPort1.Checked = true then
        Comm := 1;
      Reg.WriteInteger('Comm', Comm);
      Reg.WriteInteger('Color', Sign_Color_Tmp);
      Reg.WriteInteger('Height', Sign_Height.Value);
      SignHeight := Sign_Height.Value;
      case signHeight of
	16: SendLine := 1;
	24: SendLine := 1;
        48: SendLine := 2;
        32: SendLine := 2;
      end;
      Reg.WriteInteger('Line', SendLine);
      Reg.WriteInteger('Speed', Sign_Speed.Value);
    end;
  finally
    Reg.CloseKey;
    Reg.Free;
  end;
end;

procedure TfrmsignA.RadioButton1Click(Sender: TObject);
begin
  Panel1.Enabled := False;
  Panel3.Enabled := True;
  Panel7.enabled := True;
  SendGrid.SetFocus;
  SendGrid.TopRow := 0;
end;

procedure TfrmsignA.RadioButton2Click(Sender: TObject);
begin
  Panel1.Enabled := True;
  Panel7.Enabled := False;
  Panel3.Enabled := False;
  Memo1.SetFocus
end;

procedure TfrmsignA.btnLoadFileClick(Sender: TObject);
begin
  if Trim(Edit1.Text) = '' then
  begin
    showmessage('请输入要装入的文件名');
    exit;
  end;
  if Memo1.Modified then
    BtnSaveFileClick(Sender);
  BtnSaveFile.Enabled := True;
  Memo1.Enabled := true;
  Memo1.Lines.LoadFromFile(Edit1.text);

end;

procedure TfrmsignA.btnNewFileClick(Sender: TObject);
begin
  if Memo1.Modified then
    if MessageDlg('是否保存文件?', mtInformation, [mbYes, mbNo], 0) = mrYes then
      BtnSaveFileClick(Sender);
  BtnSaveFile.Enabled := True;
  Edit1.Text := '';
  Memo1.Lines.Clear;
end;

procedure TfrmsignA.btnSaveFileClick(Sender: TObject);
begin
  if Trim(Edit1.Text) = '' then
  begin
    showmessage('请输入要保存的文件名');
    exit;
  end;
  if MessageDlg('是否将节目保存为' + Edit1.text, mtInformation, [mbYes, mbNo], 0)
    = mrYes then
  begin
    SaveFile(Edit1.Text);
    Memo1.Modified := False;
    FileListBox1.Update;
  end;
end;

procedure TfrmsignA.SaveConfigClick(Sender: TObject);
begin
  WriteReg();
  ReadReg();
end;

procedure TfrmsignA.LoadSignSendClick(Sender: TObject);
var
  i: Integer;
  Txt: TextFile;
  Tmp: string;
begin
  if Trim(Edit1.Text) = '' then
  begin
    showmessage('请输入要装入的文件名');
    exit;
  end;
  for i := 0 to SendGrid.RowCount - 1 do
  begin
    if SendGrid.RowSelectCount <> 0 then
      SendGrid.RowSelect[i] := False
    else
      Break;
  end;
  LoadSendSign.Enabled:=False;
  vrNum1.Value:=0;
  GroupBox1.Enabled := True;
  SendGrid.LockUpdate := True;
  SendGrid.Clear;
  self.Refresh;
  AssignFile(Txt, Edit1.Text);
  Reset(Txt);
  i := 0;
  while not Eof(Txt) do
  begin
    Readln(Txt, Tmp);
    SendGrid.Cells[1, i] := Tmp;
    if (i mod 100)=0 then
	    VrNum1.Value:=i;
    i := i +1;
  end;
   VrNum1.Value:=i;
  CloseFile(Txt);
  CheckSignSend.Enabled := True;
  SendGrid.RowSelect[1] := True;
  SendGrid.TopRow := 0;
    SendGrid.Row := 0;
  SendString[1] := '';
  if SendLine = 2 then
    SendString[2] := '';
  SendString[1] := SendGrid.Cells[1, 0];
  if SendLine = 2 then
    SendString[2] := SendGrid.Cells[1, 1];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -