Is it possible to do CreateWithParent - when creating a Console Process? lazarus / 34-Windows ---------------------------------------------------------------------- Ozz_Nixon · 2023-04-03 23:33 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. ---------------------------------------------------------------------- KodeZwerg · 2023-04-08 21:09 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. ---------------------------------------------------------------------- Ozz_Nixon · 2023-04-12 02:17 Quote from: KodeZwerg on April 08, 2023, 11:09:30 pmYou 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.