Mega Code Archive

 
Categories / Delphi / Examples
 

Simple Console Application

Title: Simple Console Application Question: Interaction between your Console applications and your forms Answer: {This code demonstrates how to combine console API with usual forms Step 1 - Create a new - console application and save it as listing2 Step 2 - Copy the given code in to the console application Step 3 - Create a form in the same project with name frmDialog1.dfm and dialog1.pas Step 4 - In the form put three RadioButtons Step 5 - Now build and run the application Step 6 - Shift the focus to the console application and type 1 or 2 or 3 Based on the number typed the Radiobutton in the form will be clicked automatically When u press ctrl + c the application exits} program listing2; {$APPTYPE CONSOLE} uses SysUtils, Windows, Messages, Forms, Dialog1 in 'Dialog1.pas' {frmDialog1}; var hInput : THandle; inRec : TInputRecord; dwCount : DWORD; begin {Create a Form in the usual way. The Forms unit ensures that the Application object is around to "own" the form.} Write('Creating the first Dialog Box...'); frmDialog1 := TfrmDialog1.Create(Application); frmDialog1.Show; Writeln('done.'); Writeln('Press 1, 2 or 3 to change the dialog box. Press Ctrl+ C to exit'); {Handle the Console input till the user cancels} hInput := GetStdHandle(STD_INPUT_HANDLE); {GetStdHandle - Returns handle for Standard input/output device} while True do begin {Avoid blocking on user input, so the forms have a chance to operate as normal. If we had a message queue present, this would be a normal message dispatch loop.} Application.ProcessMessages; if WaitForSingleObject(hInput,0) = WAIT_OBJECT_0 then begin ReadConsoleInput(hInput, inRec, 1, dwCount); if (inRec.EventType = KEY_EVENT) and inRec.Event.KeyEvent.bKeyDown then begin case inRec.Event.KeyEvent.AsciiChar of '1' : begin Writeln('-1'); frmDialog1.RadioButton1.Checked := True; end; '2' : begin Writeln('-2'); frmDialog1.RadioButton2.Checked := True; end; '3' : begin Writeln('-3'); frmDialog1.RadioButton3.Checked := True; end; end; end; end; end; end.