Recent

Author Topic: Is it possible to do CreateWithParent - when creating a Console Process?  (Read 799 times)

ozznixon

  • Full Member
  • ***
  • Posts: 119
    • http://www.modernpascal.com/
I am trying to build a Hybrid - GUI app, with a couple of "Console" screens. I have written a full Win32-compatible CRT - using the latest Windows Console API.


I have a DLL project, where my GUI has multiple TPanels, and I use CreateWithParent on TForms, using the TPanel's Handle as the Parent - works perfectly.


Does anyone have a code sample, of how can I do that by calling CreateProcess (...Console Parameters...)? (Also, if you know, can I do it on MacOS and Linux?)


This is for my ProBoard project - doing this will help start the migration to GUI platforms.
---
Want to kick the tires to a Free Pascal like script engine? http://www.ModernPascal.com/

KodeZwerg

  • Hero Member
  • *****
  • Posts: 2054
  • Fifty shades of code.
    • Delphi & FreePascal
You should show what you've got "I have written a full Win32-compatible CRT" to understand how you are currently doing to tell if you can do that in a crossplatform way.
« Last Edit: Tomorrow at 31:76:97 xm by KodeZwerg »

ozznixon

  • Full Member
  • ***
  • Posts: 119
    • http://www.modernpascal.com/
You should show what you've got "I have written a full Win32-compatible CRT" to understand how you are currently doing to tell if you can do that in a crossplatform way.


No Idea why I need to share my company's source code to get assistance...

Code: [Select]

library CRT32Plug; {Source Code is not OPEN SOURCE, nor PUBLIC DOMAIN. It
is (c) 2017 to 2023 by Brain Patchwork DX, LLC. All Rights Reserved.}


{$mode objfpc}


uses
   CRT32;


exports
   Init, { Procedure Init(ForceMonochrome:Boolean=False); }
   WhereX, { function  WhereX:integer; }
   WhereY, { function  WhereY:integer; }
   ClrEol, { procedure ClrEol; }
   ClrScr, { procedure ClrScr; }
   InsLine, { procedure InsLine; }
   DelLine, { procedure DelLine; }
   GotoXY, { procedure GotoXY(const x,y:integer); }
   HighVideo, { procedure HighVideo; }
   LowVideo, { procedure LowVideo; }
   NormVideo, { procedure NormVideo; }
   TextBackground, { procedure TextBackground(const Color:word); }
   TextColor, { procedure TextColor(const Color:word); }
   TextAttribut, { procedure TextAttribut(const Color,Background:word); }
   Delay, { procedure Delay(const ms:integer); }
   KeyPressed, { function  KeyPressed:boolean; }
   ReadKey, { function  ReadKey:Char; }
   Sound, { procedure Sound; }
   NoSound, { procedure NoSound; }
   ConsoleEnd, { procedure ConsoleEnd; }
   FlushInputBuffer, { procedure FlushInputBuffer; }
   Pipe, { function  Pipe:boolean; }
   SetWindowSize, { Procedure SetWindowSize(Const Width,Height:Word); }
   SetWindowTitle, { Procedure SetWindowTitle(Const S:String); }
   WriteXYA, { Procedure WriteXYA(X,Y,A:Byte;Const S:String); }
   WriteXYCh, { Procedure WriteXYCh(X,Y:Byte;Const Ch:Char); }
   NoFrameFill, { Procedure NoFrameFill(X1,Y1,X2,Y2:Byte); }
   FrameOnly, { Procedure FrameOnly(X1,Y1,X2,Y2,TitleAttr:Byte;Title:String); }
   FrameFill, { Procedure FrameFill(X1,Y1,X2,Y2,Attr,TitleAttr:Byte;Title:String); }
   HLineCharAttrib, { Procedure HLineCharAttrib(xFrom,xTo,Y:Byte;CharAttrib:Word); }
   FillScreen, { Procedure FillScreen(C:Byte;Ch:Char); }
   HideCursor, { Procedure HideCursor; }
   HalfCursor, { Procedure HalfCursor; }
   FullCursor, { Procedure FullCursor; }
   SaveScreen, { Procedure SaveScreen(Const ScreenNo:Byte); }
   RestoreScreen, { Procedure RestoreScreen(Const ScreenNo:Byte); }
   DisplaySideBanners, { Procedure DisplaySideBanners(C:Byte;Ws:String); }
   WriteVertical, { Procedure WriteVertical(X,A:Byte;S:String); }
   Restore, { procedure Restore; }
   SetWindowTo, { procedure SetWindowTo(R:TSmallRect); }
   GetTextAttr, { Function  GetTextAttr:Word; }
   SetTextAttr; { Procedure SetTextAttr(Attr:Word); }


end.
---
Want to kick the tires to a Free Pascal like script engine? http://www.ModernPascal.com/

 

TinyPortal © 2005-2018