home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 March / Chip_2000-03_cd.bin / zkuste / Delphi / kompon / d345 / gui2console.EXE / demos / BCB3 / Unit1.cpp < prev    next >
C/C++ Source or Header  |  1998-05-10  |  5KB  |  172 lines

  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4.  
  5. #include "Unit1.h"
  6. //---------------------------------------------------------------------------
  7. #pragma package(smart_init)
  8. #pragma link "ConsoleIO"
  9. #pragma link "ConsoleIO"
  10. #pragma resource "*.dfm"
  11. TForm1 *Form1;
  12. //---------------------------------------------------------------------------
  13. __fastcall TForm1::TForm1(TComponent* Owner)
  14.         : TForm(Owner)
  15. {
  16. }
  17. //---------------------------------------------------------------------------
  18.  
  19.  
  20.  
  21. TOSType  OSType()
  22. {
  23.   TOSVersionInfo osv;
  24.   osv.dwOSVersionInfoSize = sizeof(osv);
  25.   GetVersionEx(&osv);
  26.   switch (osv.dwPlatformId)
  27.   {
  28.    case VER_PLATFORM_WIN32_NT : return(ostWinNT);
  29.    case VER_PLATFORM_WIN32_WINDOWS : return(ostWin95);
  30.    default : return(ostUnknown);
  31.   }
  32. }
  33.  
  34. int TForm1::AddListBox(AnsiString E)
  35. { int result;
  36.   ListBox1->Items->BeginUpdate();
  37.    while (ListBox1->Items->Count > 150)
  38.     ListBox1->Items->Delete(0);
  39.     result = ListBox1->Items->Add(E);
  40.     ListBox1->TopIndex = ListBox1->Items->Count-((ListBox1->Height / ListBox1->ItemHeight));
  41.    ListBox1->Items->EndUpdate();
  42.    return(result);
  43. };
  44.  
  45.  
  46. void __fastcall TForm1::FormCreate(TObject *Sender)
  47. {
  48.  Prompt.AtPrompt = false;
  49.  Panel1->Height = Edit1->Height + 2;
  50.  if (OSType() != ostUnknown)
  51.  {
  52.   switch (OSType())
  53.   {
  54.    case ostWinNT : {
  55.                     GUI2Console1->Application = "c:\\windows\\system32\\cmd.exe";
  56.                     GUI2Console1->Command = "";
  57.                     Delimit = CRLF;
  58.                     break;
  59.                     }
  60.    case ostWin95 : {
  61.                      GUI2Console1->Application = "";
  62.                      GUI2Console1->Command = "command.com";
  63.                      Delimit = CR;
  64.                      GUI2Console1->AppType = at16bit;
  65.                      break;
  66.                     }
  67.   }
  68.   GUI2Console1->Start();
  69.  } else AddListBox("Unknown OS Type");
  70.  
  71. }
  72. //---------------------------------------------------------------------------
  73.  
  74. void __fastcall TForm1::GUI2Console1Start(TObject *Sender,
  75.       const AnsiString Command)
  76. {
  77.   AddListBox("Start..."+Command);
  78. }
  79. //---------------------------------------------------------------------------
  80.  
  81. void __fastcall TForm1::GUI2Console1Done(TObject *Sender)
  82. {
  83.   AddListBox("Done...");
  84. }
  85. //---------------------------------------------------------------------------
  86.  
  87. void __fastcall TForm1::GUI2Console1Line(TObject *Sender,const AnsiString Line)
  88. {
  89.  if (Line != Prompt.Str)
  90.         AddListBox(Line);
  91.  Prompt.Str = "";
  92.  Prompt.AtPrompt = false;
  93. }
  94. //---------------------------------------------------------------------------
  95.  
  96. void __fastcall TForm1::FormResize(TObject *Sender)
  97. {
  98.   Edit1->Width = Panel1->Width -2;
  99.   ListBox1->TopIndex = ListBox1->Items->Count-1;
  100.  
  101. }
  102. //---------------------------------------------------------------------------
  103.  
  104. void __fastcall TForm1::GUI2Console1Prompt(TObject *Sender,
  105.       const AnsiString Line)
  106. {
  107.  Prompt.AtPrompt = true;
  108.  Prompt.Str = Line;
  109.  Prompt.Index = AddListBox(Line);
  110. }
  111. //---------------------------------------------------------------------------
  112.  
  113. void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
  114. {
  115.  FKey = Key;
  116. }
  117. //---------------------------------------------------------------------------
  118.  
  119. void __fastcall TForm1::GUI2Console1Error(TObject *Sender,
  120.       const AnsiString Error)
  121. {
  122.   AddListBox(Error);
  123. }
  124. //---------------------------------------------------------------------------
  125.  
  126. void __fastcall TForm1::ListBox1Enter(TObject *Sender)
  127. {
  128.   Edit1->SetFocus();
  129. }
  130. //---------------------------------------------------------------------------
  131.  
  132. void __fastcall TForm1::Edit1KeyUp(TObject *Sender, WORD &Key,
  133.       TShiftState Shift)
  134. {
  135.   switch (FKey)
  136.    {
  137.   case   3 : {
  138.                GUI2Console1->Write(char(3));
  139.                break;
  140.               }
  141.  
  142.    case 13 :  { GUI2Console1->Write(Edit1->Text + Delimit);
  143.                 Prompt.Str = Prompt.Str + Edit1->Text;
  144.                 Edit1->Text = "";
  145.                 FKey = 0;
  146.                 break;
  147.                }
  148.  
  149.   default :  if ((FKey == 8) || ((FKey >= ' ') & (FKey <= 'z' )))
  150.                  {
  151.                    if (ListBox1->Items->Count > 0)
  152.                   {
  153.                     ListBox1->Items->BeginUpdate();
  154.                     ListBox1->Items->Strings[Prompt.Index] = Prompt.Str + Edit1->Text;
  155.                     ListBox1->TopIndex = ListBox1->Items->Count-((ListBox1->Height / ListBox1->ItemHeight));
  156.                     ListBox1->Items->EndUpdate();
  157.                    }
  158.                  }
  159.              
  160.    } // End Switch
  161. }
  162. //---------------------------------------------------------------------------
  163.  
  164. void __fastcall TForm1::GUI2Console1PreTerminate(TObject *Sender)
  165. {
  166.  GUI2Console1->Write(char(3)+'C');
  167.  GUI2Console1->WriteLN('exit');
  168.  
  169. }
  170. //---------------------------------------------------------------------------
  171.  
  172.