FreePascal text mode dialog designer for Free Vision lazarus / 65-FV-Textmode IDE ---------------------------------------------------------------------- avra · 2012-11-23 13:36 I have succeeded to compile TESTAPP FreeVision application and run it via remote terminal on Raspberry Pi ARM HF Debian Linux. Now I would like to use FreeVision but couldn't find any text mode dialog designer. Neither in text mode IDE neither in my net or wiki search. I have only found this application for Turbo Pascal: DialEdit - a Visual Editor for TurboVisionTM Dialogs http://home.comcast.net/~JamesMClark5/Pascal/index.htm. Is that no source ancient DOS application my only option? ---------------------------------------------------------------------- BigChimp · 2012-11-29 11:41 Hi Avra, I've looked around some but didn't find anything. Have you come up with anything useful meanwhile? Perhaps we could send an email to the author of DialEdit and ask to make it open source (GPL/LGPL). AFAIU, it's written for another Pascal compiler, but perhaps translating it to FPC won't be too hard... ---------------------------------------------------------------------- avra · 2012-11-30 07:41 Unfortunately it seams that's the only option. I just don't get it that all these years TP/FP text mode existed without such a tool integrated in IDE. What did everyone do, draw screens in code? Visual screen designer really boosts productivity, and some nice visual text mode application like raspi-config could be written in an afternoon. Of course, for Midnight Commander or Dos Navigator you would need "a little" more time... ;-) ---------------------------------------------------------------------- BigChimp · 2012-11-30 07:58 Ok, I'll send him an email if you don't mind.Sent him an email. ---------------------------------------------------------------------- avra · 2012-12-01 07:39 Thanks. Let me know about the result. ---------------------------------------------------------------------- BigChimp · 2013-03-04 09:13 Got no response; just sent him a reminder. ---------------------------------------------------------------------- avra · 2013-03-04 10:43 Thanks for the info. Let's hope for the best... ---------------------------------------------------------------------- avra · 2014-05-02 13:32 GOOD NEWS!!! My terminal application was finished recently (drawing lines by hand) and I have no need for this editor now, but I have decided to try to contact the author my self to avoid repeating all the hard work if I ever need textual screen designer again. Fortunately, I have received two replies from the author shown below. He has been so kind and released source under GPL3. Who knows if/when I will have next project that needs textual screen designer, but if anyone is in a hurry feel free to try yourself to adapt sources to FPC. Once finished, this would be a very powerful screen designer that will allow building TUI (textual user interface) frontends for endless linux command line tools which could be run from terminal, SSH or Telnet. Reply 1: "Zeljko - I have decided to release DialEdit under the GNU General Public License. Go to http://home.comcast.net/~JamesMClark5/Pascal/index.htm again, and you will see that DialEdit3a.zip has been replaced by DialEdit3b.zip, which includes the source code and the user manual in a form meant to be viewed in the IDE (using the LineDraw font to show example dialog features). The original BP7.0 program has been adapted to Visual Pascal, so hopefully that will make the port to FreePascal easier. - Jim" Reply 2: "Zeljko - Yes, you may publish my former reply on the forum. I have been retired for 12 years, and will be glad to see DialEdit gain new life. There remains a copyright notice in the CopyNote string, but this is preempted by the GPL notice in the comments. The CopyNote string, which is displayed by the EXE to show the program version, can be replaced by a last-edit date, perhaps including a GPL notice. The "To-Do" and "Notes" comment sections near the beginning of the source code may give you ideas for further improvements. I have a habit of putting {+} tags on source code lines to mark recently added or modified lines.  The idea is that when new behavioral faults are observed, these lines are suspected first as possible culprits.  Often, one conceptual change requires scattered code changes. You may also publish any of this reply on the forum. - Jim" Thank you very much Jim! ---------------------------------------------------------------------- marcov · 2014-05-02 13:54 I have config/params and tvinput compiling. ---------------------------------------------------------------------- marcov · 2014-05-02 14:31 I also have dialedit running but it crashes when creating a new dialog. Possibly there are issues with streams not being 100% compat, since it comes with a resource file that it tries to read. Traceback:  $00431EF5  ADVANCESTRINGPTR,  line 236 of ./fv/src/histlist.pas  $00422088  TGROUP__FOREACH,  line 2329 of ./fv/src/views.pas  $0042248A  TGROUP__HANDLEEVENT,  line 2514 of ./fv/src/views.pas  $004256E9  TWINDOW__HANDLEEVENT,  line 3973 of ./fv/src/views.pas  $00428A5F  TDIALOG__HANDLEEVENT,  line 1134 of ./fv/src/dialogs.pas  $00426792  MESSAGE,  line 4629 of ./fv/src/views.pas  $0042A24C  TBUTTON__PRESS,  line 1841 of ./fv/src/dialogs.pas  $0042A905  TBUTTON__HANDLEEVENT,  line 2015 of ./fv/src/dialogs.pas  $00422088  TGROUP__FOREACH,  line 2329 of ./fv/src/views.pas  $0042241B  TGROUP__HANDLEEVENT,  line 2505 of ./fv/src/views.pas ---------------------------------------------------------------------- Mike.Cornflake · 2014-05-02 16:06 In unrelated news Pyroworm just became my favourite Worm/Conways Life mashup   http://home.comcast.net/~JamesMClark5/Pascal/index.htm I look forward to going through the source code - thanks for the site pointer :-) ---------------------------------------------------------------------- avra · 2014-05-05 08:20 Quote from: marcov on May 02, 2014, 04:31:34 pmPossibly there are issues with streams not being 100% compat, since it comes with a resource file that it tries to read.marcov, you are faster then light ;-). I didn't expect anyone to take a look at it so soon. Anyway, if resource file is a problem I may try to talk it through with the author or I could PM you his contact details. ---------------------------------------------------------------------- marcov · 2014-05-05 12:48 I yesterday did some more: - the first crash was in histlists, probably because the history stream format is different. Renamed the .hst file -> solved. - second crash is in initbounds, probably due to an order problem in the constructor. for a   new  (psometing,something.init...()); it seems that TP assigns the allocation to psomething before calling init, and FPC after.  Anyway, the initbounds access the global var and is called during subitems initialziation, leading to crashes. No solution yet. ---------------------------------------------------------------------- Jurassic Pork · 2014-05-06 23:51 hello marcov, is it in these calls that you have a sigsegv : Code: [Select]#0 TTRIALBUTTON__INIT(0xcfd38, 0xffffffff, ) at DialEdit.pas:2311 #1 TTRIALDIALOG__INIT(0xcfe10, 0xffffffff, ) at DialEdit.pas:4078 #2 NEWDIALOG(0xcff30) at DialEdit.pas:5027 something is strange : TTRIALBUTTON__INIT  call initbound and initbound use trialdialog : Code: [Select]procedure InitBounds(var R: TRect; SX, SY: integer); var     PX, PY: integer; begin     PX:= TrialDialog^.Size.X - 2;     PY:= TrialDialog^.Size.Y - 2;     R.Assign(PX-SX, PY-SY, PX, PY); end; {InitBounds}  but in calling procedure init of trialdialog is after the New ??????? Code: [Select]  PV:= ValidView(New(PTrialDialog, Init(@DialogData)));                 DeskTop^.Insert(PV);                 TrialDialog:= PTrialDialog(PV);  with this ( for test only) no crash : Code: [Select]    TrialDialog := New (PTrialDialog);                 PV:= ValidView(New(PTrialDialog, Init(@DialogData)));                 DeskTop^.Insert(PV);                 TrialDialog:= PTrialDialog(PV); ---------------------------------------------------------------------- Tomas Hajny · 2014-05-11 22:40 BTW, I just came across this ancient thread due to the recent updates - there had been certainly multiple dialog editors available for Turbo Vision. My memory could serve me with at least one additional program - Turbo Vision Resource Workshop by Balazs Scheidler. If the name sounds familiar to you, it indeed should - you can find the name listed on pages "Credits" available from the FPC homepage. There were multiple such tools available. Quick scan through my archive of downloaded freeware and shareware packages found in addition to those mentioned above also Dialog Designer by L. David Baldwin and TVGen by Bocian Software. Unfortunately, the great repository at garbo.uwasa.fi formerly managed by big (Turbo) Pascal fan Timo Salmi is not available any longer; I'm fairly sure there would be more such tools available there. ---------------------------------------------------------------------- marcov · 2014-05-12 09:30 Quote from: Jurassic Pork on May 07, 2014, 01:51:35 am with this ( for test only) no crash : Code: [Select]    TrialDialog := New (PTrialDialog);                 PV:= ValidView(New(PTrialDialog, Init(@DialogData)));                 DeskTop^.Insert(PV);                 TrialDialog:= PTrialDialog(PV);      True, but that is wrong. That instantiates two different PTrialDialog's. I guess this is a bug, but the original code doesn't deserve a beauty price. ---------------------------------------------------------------------- Jurassic Pork · 2014-05-12 11:36 hello, may be it is better to do this ?  : Code: [Select]      TrialDialog := New(PTrialDialog);                 TrialDialog^.Init(@DialogData);                 PV:= ValidView(PVIEW(TrialDialog));                 DeskTop^.Insert(PV);                 DialSaved:= false; ---------------------------------------------------------------------- marcov · 2014-05-12 15:08 I guess this one is the only one with src? ---------------------------------------------------------------------- Jurassic Pork · 2014-05-12 15:18 Sorry, i don't understand  Quotethe only one with src? is it for turbo vision dialog editor with source code ? ---------------------------------------------------------------------- Paul Breneman · 2014-05-12 15:33 I'm *glad* to discover this thread today. I think there is a place for nice Free Vision tools for using Free Pascal linux console apps on Android: http://turbocontrol.com/gnuroot.htm http://forum.lazarus.freepascal.org/index.php/topic,23927.msg143489.ht ml I have a topic (Free Pascal console programs on Android are easy) under Free Pascal General but I can't figure out how to put a link directly to it.  When I look at this message on another PC that is *not* logged into the forum, the above link doesn't work.  Any suggestions? ---------------------------------------------------------------------- marcov · 2014-05-12 18:43 Quote from: Jurassic Pork on May 12, 2014, 05:18:50 pmSorry, i don't understand  Quotethe only one with src? is it for turbo vision dialog editor with source code ? Yes, dialedit, the one from the threadstarter. ---------------------------------------------------------------------- Tomas Hajny · 2014-05-14 07:47 Regarding sources for other TV dialog designing utilities: Sources for Dialog Designer 4.6 are available nowadays (see http://pbear.com), but it was apparently written in C++ rather than Pascal. Sources for TVRW don't seem to be available for direct download, but it should be possible to find current contact information for the the original author Balazs Scheidler (I could find him e.g. on LinkedIn) and I guess that he would be willing to share them nowadays, since the original company under which he was selling the licences doesn't exist any longer apparently and he seems to be still involved in the open source area (although apparently not using Pascal any longer). Regarding TVGen - well, if you wanted to try contacting the author(s), it might be possible because I found a trace which might help in that, but I wouldn't start with that because it probably wasn't as well established as the others. ---------------------------------------------------------------------- Rave · 2014-08-11 08:24 Hm.. Don't you think it'd be easier to write new dialog editor from scratch rather than trying to fight bugs in this one? If you'd start it from scratch, you'd know every little bit of code so you could add/remove features easily. Plus code could be written in more readable manner. My opinion? We need something like Lazarus but for FreeVision. ---------------------------------------------------------------------- marcov · 2014-08-11 08:35 Quote from: Rave on August 11, 2014, 10:24:08 amHm.. Don't you think it'd be easier to write new dialog editor from scratch rather than trying to fight bugs in this one? Assuming they are bugs in the dialedit, and not FV.   Worse, that is totally different time magnitude. For me it is as much FV testing as work on dialedit. QuoteIf you'd start it from scratch, you'd know every little bit of code so you could add/remove features easily. Plus code could be written in more readable manner. My opinion? We need something like Lazarus but for FreeVision. Lazarus' LCL is more designed to make this possible. Keep in mind that FV is only Turbo Pascal level. ---------------------------------------------------------------------- Rave · 2014-08-11 08:52 I know. I never said Lazarus should be used for it, just that we need some IDE like Lazarus (with events, etc.) that works purely on FreeVision to make FV apps. Something like very first VisualBASIC for DOS. ---------------------------------------------------------------------- marcov · 2014-08-11 09:55 I mean a designer for FV within current lazarus, yes. Currently FV doesn't work with events, but with overriding, something that can't be done runtime. Also the streaming is not generalized, there is no RTTI, and the string system has severe (255 char and unicode) limitations. So I think first you would have to re- setup FV on VCL/LCL principles like RTTI based streaming, a more delegating event model uniform constructors etc. ---------------------------------------------------------------------- Rave · 2014-08-12 17:22 I don't think it'd be good on Lazarus to design for FV as FV uses component dimensions in characters, not pixels (for obvious reasons). Also you won't be able to really see how it would ACTUALLY look like until you run this app, unless designer would be a console application, at which point you could make it special "lazarus" (not actual lazarus) for FreeVision or integrate it into fp. Unfortunately I don't think I have what it takes to do such task like making RTTI for FV, so this is all you can get out of me (I even barely understand FV and when I made console apps I've usually done in pure text (write, writeln and so on)). ---------------------------------------------------------------------- RickE · 2014-08-13 14:54 This thread is a great discovery. I have been a fan of Freepascal, and agree the Raspberry Pi is a great platform for textmode. I have some disagreement and some questions with the premise. Some years ago I did a straight use of linux "console codes" with freepascal and posted a link on the old "community" site. I still don't know why, as I assume, you want ncurses as yet another layer when the linux console has perhaps a larger set of console codes than most. Given the memory and speed constraint of the RPI perhaps other options for a user interface can be considered. I like the XForms library and have done some freepascal work with it, but the reliance on an Xlib timer mechanism is a problem for some embedded use. I am currently trying to do a tcl-console codes interface, but re-inventing the wheel might be unwise. Nice to use framebuffer graphics if possible for accurate timing. Some predefined freepascal textmode widgets would be nice if the compiled file was small enough. I don't particularly care about design editors, since I never learned how to use them. XForms has one and it does make a nice structure to convert into a pascal record, but making the code readable is a chore. All in all, yes freepascal, the RPi, textmode, are interesting research. ---------------------------------------------------------------------- ArtLogi · 2016-01-07 14:05 I will draw this "ancient" topic back to surface.. Have there been any succesful FPC builds from the DialEdit so far? Also original download link is a dead end now.. So does anyone have working link to mirror. ---------------------------------------------------------------------- jc99 · 2016-03-27 10:35 Quote from: ArtLogi on January 07, 2016, 03:05:41 pmI will draw this "ancient" topic back to surface.. Have there been any succesful FPC builds from the DialEdit so far? Also original download link is a dead end now.. So does anyone have working link to mirror. BTW: The original Website does not work anymore, could someone rerelease the code/archive please. PS: Fv didn't compile on my Win64/FPC3.0.0 so I had to make a Patch to outline.pas (Line 193ff)  Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i    else    Graph[J] := Chars[Retracted+1];  end;  {$IF FPC_VERSION >= 3} //JC <-------  setlength(Graph,  J);  {$ELSE}  Graph[0] := Char(J);  // original  {$ENDIF}   //JC ----------> and to app.pas (Line 806ff)  Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i  { the orginal code can't be used here because of the limited    video unit capabilities, the mono modus can't be handled  }  video.InitVideo; // JC <---Quick Fix--->  Drivers.DetectVideo;  if (ScreenMode.Col div ScreenMode.Row<2) then  Maybe someone knows a better solution In the patch is also a Lazarus-Package ---------------------------------------------------------------------- Roland57 · 2016-03-27 12:33 Hello! Here is the file: www.eschecs.fr/fichiers/DIALEDIT3b.zip Happy Easter! ---------------------------------------------------------------------- jc99 · 2016-03-27 13:10 Quote from: RolandC on March 27, 2016, 02:33:05 pmHello! Here is the file: www.eschecs.fr/fichiers/DIALEDIT3b.zip Happy Easter! Thanks, Happy (and peaceful) Easter to you and everyone. ---------------------------------------------------------------------- Bocian · 2017-03-08 11:36 Well, I happen to be an author of TVGen mentioned in one of the posts of this thread...  so I might be of help, maybe ☺ ---------------------------------------------------------------------- avra · 2017-03-08 18:30 Quote from: Bocian on March 08, 2017, 12:36:57 pmWell, I happen to be an author of TVGen mentioned in one of the posts of this thread...  so I might be of help, maybe ☺FreePascal is missing a text mode dialog designer for quite a lot of time. As you can see from previous posts, our attempts to resurrect one have failed. If you can take a look into that and help, or convert your own dialog designer to FreePascal that would be really, really great. Thank you very much for any effort you can put into this. Right now we have nothing, so even if you can't convert it to FreePascal it would be very useful even if it remains a dos application adapted just to design dialogs for use in FreePascal. The world of nice looking linux terminal TUI applications is waiting for us, but we are stuck at this first big step. Btw. I can't find much more about your TVGen on the net but this http://m.zkratky.cz/TVGen/6986. Do you have any screenshot or URL download location to take a look at it? ---------------------------------------------------------------------- jc99 · 2017-04-22 23:22 I played a little with the Source of Dialedit it's still a work in progress so here the source ... ---------------------------------------------------------------------- avra · 2017-04-24 11:33 Quote from: jc99 on April 23, 2017, 01:22:57 amI played a little with the Source of Dialedit it's still a work in progress so here the source ...This is awesome  I could not compile until line 1724 in obj_dialeditapp.pas was commented out like this: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i    //DoScreenShot(screen); Basic functionality mostly works well, with SIGSEGV if radio boxes, check boxes and lists are used. So far code gen outputs only to screen but according to what I see it looks promissing. It's very, very, very nice work and much appreciated! Thanks a lot!!! ---------------------------------------------------------------------- avra · 2017-04-24 13:23 I have managed to get file output after setting output file name in File/SelectFile and after playing with File/OutputOptions. This is a file output of a simple dialog with just Ok and Cancel buttons: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i unit MyOutput; interface uses Objects, Views, Dialogs; (*  ascii picture is skipped here since it shows a lot of null characters  probably because of commented line DoScreenShot(screen)*){ TestDialog } type  PTestDialog = ^TTestDialog;  TTestDialog = object(TDialog)    constructor Init;  end;   PTestData = ^TTestData;  TTestData = record  end; const  TestDefaults: TTestData = (   ); implementation uses Menus; { TestDialog } constructor TTestDialog.Init;var  R: TRect;begin  R.Assign(4, 4, 40, 19);  inherited Init(R, 'Test Dialog');  Options:= Options or ofCentered;   R.Assign(19, 11, 29, 13);  Insert(New(PButton, Init(R, '~O~k', cmOK, bfDefault)));   R.Assign(7, 11, 17, 13);  Insert(New(PButton, Init(R, 'C~a~ncel', cmCancel, bfNormal)));end; {TTestDialog.Init} begin end. ---------------------------------------------------------------------- Paul Breneman · 2017-04-24 14:04 I'd really like to use Free Vision in Android but something broke in the past three years. Can someone please help me? http://forum.lazarus.freepascal.org/index. php/topic,23927.msg244283/topicseen.html#new ---------------------------------------------------------------------- Graeme · 2017-04-24 15:34 I haven't tried the Dialedit code, but thought I would mentioned a possible alternative... fpGUI's standalone UIDesigner application is designed in such a way that it can easily be extended. I've even used the core concept of UIDesigner to implement a data mapping tool to populate PDF designed Forms (where data fields should appear on a page). A fork of UIDesigner could easily be modified to generate Free Vision dialogs and code. ---------------------------------------------------------------------- jc99 · 2017-04-24 19:42 @Graeme: You are aware that we're talking about Text-Mode, AFAIK UIDesigner is for GUI (Graphic User Interface) can UIDesigner do FV ? ---------------------------------------------------------------------- jc99 · 2017-04-24 19:50 BTW: I also work on something like FV2 - using classes not objects, - using Enumerators instead of Callbacks. - objpas support ... if someone like Some Errors in DialEdit are due to the fact that i upgraded my fv to be objpas compatible e.G: string_var[0] -> length(string_var) ---------------------------------------------------------------------- Graeme · 2017-04-24 21:18 Quote from: jc99 on April 24, 2017, 09:42:58 pm@Graeme: You are aware that we're talking about Text-Mode, AFAIK UIDesigner is for GUI (Graphic User Interface) can UIDesigner do FV ? Yes, that's exactly what I'm saying. The dialog designer will be a GUI application, but the code in generates will be Free Vision style dialogs. eg: In a fork of UIDesigner you can register a "Button" control. In the UIDesigner that button will look like fpGUI's Button - but that's just looks, nothing else. The Object Inspector will display the properties you registered for a button (fpGUI's UIDesigner doesn't simply use RTTI to extract property information like Lazarus or Delphi does). When you save the form design to a file, it can generate Free Vision dialog code. fpGUI's UIDesigner again doesn't use TComponent streaming for form designs - it has its own code parser and generator that doesn't use RTTI. There is no reason why a Free Vision form designer must be a console application. Just like you don't need to use Free Pascal's Text IDE to write Console applications - you can use Lazarus IDE. A button is a button, a listbox is a listbox etc. It's what code gets generated that matters. ---------------------------------------------------------------------- Graeme · 2017-04-24 21:19 Quote from: jc99 on April 24, 2017, 09:50:50 pmBTW: I also work on something like FV2 - using classes not objects, - using Enumerators instead of Callbacks. - objpas support ... if someone like Now that is awesome news!!! I believe that was on many peoples wish lists - mine included ---------------------------------------------------------------------- avra · 2017-04-25 10:48 Quote from: jc99 on April 24, 2017, 09:50:50 pmSome Errors in DialEdit are due to the fact...Could you please attach code for DoScreenShot procedure? It is not in downloaded sources, and without it we can not have a picture of the dialog to attach to generated code. ---------------------------------------------------------------------- x2nie · 2017-04-25 11:21 Quote from: jc99 on April 24, 2017, 09:42:58 pm...we're talking about Text-Mode, AFAIK UIDesigner is for GUI (Graphic User Interface) can UIDesigner do FV ? I proof that TextMode is not problem for Lazarus (see picture below) ---------------------------------------------------------------------- x2nie · 2017-04-25 11:24 and here is what if it run (in windows): (actually it is debugging inside Lazarus, just like another normal CONSOLE applications) ---------------------------------------------------------------------- x2nie · 2017-04-25 11:33 Quote from: jc99 on April 24, 2017, 09:50:50 pmBTW: I also work on something like FV2 - using classes not objects, - using Enumerators instead of Callbacks. - objpas support ... if someone like very interesting !! If you put the source code somewhere (sourceforge or github), I may quickly adapt my `TUI` widgets to yours. Currently I am stuck with TUI, since it just experimental approach, not yet completed. For example, TUI didnt support mouse, even it is able to. Quote from: Graeme on April 24, 2017, 11:19:36 pm Now that is awesome news!!! I believe that was on many peoples wish lists - mine included agree. me too. ---------------------------------------------------------------------- avra · 2017-04-25 12:00 Ok, after getting used to it all components work except ListBox. Here is generated code for a dialog with Buttons, StaticText, ParamText, InputLine, RadioButtons, CheckBoxes and MultiCheckBoxes: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i unit ComplexDialog; interface uses Objects, Views, Dialogs; { TestDialog } type        PTestDialog = ^TTestDialog;        TTestDialog = object(TDialog)                constructor Init;        end;         PTestData = ^TTestData;        TTestData = record                ParName1: ;                LabelDataName: string[80];                Mode: word;                Options: word;                Choices: longint;        end; implementation uses Menus; { TestDialog } constructor TTestDialog.Init;var        R: TRect;        RB: PRadioButtons;        CB: PCheckBoxes;        MB: PMultiCheckBoxes;begin        R.Assign(4, 4, 65, 47);        inherited Init(R, 'Test Dialog');        Options:= Options or ofCentered;       R.Assign(48, 39, 58, 41);        Insert(New(PButton, Init(R, '~O~k', cmOK, bfDefault)));         R.Assign(36, 39, 46, 41);        Insert(New(PButton, Init(R, 'C~a~ncel', cmCancel, bfNormal)));       R.Assign(2, 2, 15, 3);        Insert(New(PStaticText, Init(R, 'MyStaticText1')));         R.Assign(18, 2, 30, 3);        Insert(New(PParamText, Init(R, 'MyParamText1', 0)));         R.Assign(3, 39, 26, 41);        Insert(New(PButton, Init(R, '~M~yButton', cmMyButton, bfBroadcast)));         R.Assign(2, 5, 57, 6);        IL:= New(PInputLine, Init(R, 80));  Insert(IL);        R.Assign(2, 4, 14, 5);        Insert(New(PLabel, Init(R, '~L~abel name', IL)));         R.Assign(2, 8, 17, 10);        RB:= New(PRadioButtons, Init(R,                NewSItem('Radio1',              NewSItem('Radio2',                nil))        ));  Insert(RB);      R.Assign(2, 7, 8, 8);        Insert(New(PLabel, Init(R, '~M~ode', RB)));         R.Assign(2, 12, 22, 15);        CB:= New(PCheckBoxes, Init(R,                NewSItem('Checkbox1',                NewSItem('Checkbox2',                NewSItem('Checkbox3',              nil)))        ));  Insert(CB);        R.Assign(2, 11, 11, 12);      Insert(New(PLabel, Init(R, '~O~ptions', CB)));         R.Assign(2, 18, 25, 22);        MB:= New(PMultiCheckBoxes, Init(R,                NewSItem('MultiCharacter1',                NewSItem('MultiCharacter2',                NewSItem('MultiCharacter3',                NewSItem('MultiCharacter4',                nil)))), 5, cfFourBits, '@#$%&'));        Insert(MB);        R.Assign(2, 17, 11, 18);        Insert(New(PLabel, Init(R, '~C~hoices', MB)));end; {TTestDialog.Init} begin end. ---------------------------------------------------------------------- Graeme · 2017-04-26 08:28 Quote from: x2nie on April 25, 2017, 01:21:54 pmI proof that TextMode is not problem for Lazarus (see picture below) Pretty much what I was trying to explain is possible with fpGUI's UIDesigner. There are some finer details to work out, but nothing to serious. eg: I would also add that you can't do component positioning in pixels, so I would use fpGUI's UIDesigners "snap to grid" setting (eg: where it snaps components to an invisible grid every 4 or 8 etc pixels - user defined) and use that to convert pixels dimensions and positioning information into text dimensions and positioning. ---------------------------------------------------------------------- jc99 · 2017-04-27 14:30 So first here is my patched FV version ... ---------------------------------------------------------------------- jc99 · 2017-04-27 14:58 I also got the IDE running with objfpc-mode with this patch ---------------------------------------------------------------------- jc99 · 2017-04-27 16:04 @Graeme: You have a nice piece of work with you fpGUI and the UIDesigner. My goal here with DialEdit is that it can be integrated in the IDE. ---------------------------------------------------------------------- avra · 2017-04-28 22:52 Maybe someone following this topic will find this TUI framework useful: http://forum.lazarus.freepascal.org/index.php/topic,22894.msg135893.ht ml ---------------------------------------------------------------------- x2nie · 2017-04-29 08:33 Quote from: avra on April 29, 2017, 12:52:30 amMaybe someone following this topic will find this TUI framework useful: http://forum.lazarus.freepascal.org/index.php/topic,22894.msg135893.ht ml Yes, very useful to know JATUIF (the link), even it was confused me in first time, because he (re)introduced a vital class: TComponent in unit JATUIF_Component.pas Bytheway, it is the first working console app I knew, that uses "visual" component that didn't use FreepascalVision (view.pas) completely, meaning that we can learn how if "FV" built in another implementation. @avra, thanks for that nice info ---------------------------------------------------------------------- korba812 · 2017-04-29 13:33 I would start with redesigning backend. Currently, FV supports only single-byte character set. I think support for multibyte character set (utf8, utf16) should be added. And (if I remember correctly) FV has a strictly limited maximum buffer size (160x160 or something like that). In addition, I proposes to get rid of "ifdef mess" and design drivers in object-oriented way. I currently manage the code written in old Clipper / Harbor. There is a GT system (Graphics Terminal) where you can select a terminal driver. For example, the same program can be run in the console or run in graphical mode (eg. A standard window that emulates text mode). It would be nice to have something like this in pascal tui. ---------------------------------------------------------------------- jc99 · 2017-04-29 14:00 @korba812 That's what I try to do with FV2. @x2nie If it's only about a working console app with visual design elements & mouse support, then look at my K_Vision System... ---------------------------------------------------------------------- marcov · 2017-04-29 14:17 Quote from: jc99 on April 24, 2017, 09:50:50 pmBTW: I also work on something like FV2 - using classes not objects, - using Enumerators instead of Callbacks. - objpas support ... if someone like Some Errors in DialEdit are due to the fact that i upgraded my fv to be objpas compatible e.G: string_var[0] -> length(string_var) And automated rather than manual streaming?  I pretty much reached the same conclusion about 10 years ago, except for the enumerators bit(which I assume is an attempt at multicast events?), but both Florian and I considered it too hard to rewrite the current codebase with so much changes, and starting over would be better. ... which I put off till retirement :-) ---------------------------------------------------------------------- avra · 2017-04-29 19:35 Quote from: jc99 on April 29, 2017, 04:00:09 pmIf it's only about a working console app with visual design elements & mouse support, then look at my K_Vision System... I looked at your github projects but couldn't find it. Am I missing something obvious? ---------------------------------------------------------------------- x2nie · 2017-04-30 06:20 Quote from: jc99 on April 29, 2017, 04:00:09 pm@x2nie If it's only about a working console app with visual design elements & mouse support, then look at my K_Vision System... Ooops, I was very bad with that my very limited english words. Perhaps I must said: "Wow, JATUIF run out of the box, his `TComponent` is not the common known `TComponent`, and he reinvent the wheel by reintroducing the new way of how trigger events and how to use the properties. No offense, but it just run well out of the box." @jc99, yeah. your K_Vision System look as good ! Quote from: korba812 on April 29, 2017, 03:33:43 pm... I currently manage the code written in old Clipper / Harbor. There is a GT system (Graphics Terminal) where you can select a terminal driver. For example, the same program can be run in the console or run in graphical mode (eg. A standard window that emulates text mode). It would be nice to have something like this in pascal tui. @korba812, any screenshot we can see? ---------------------------------------------------------------------- jc99 · 2017-04-30 06:26 off topic ! @avra You are right, the K_Vision system is not public it's closed source because it has copyrighted material in it. However i have the source, the Original was from 1996, but I managed to get it working on modern compilers. ( fpc/lazarus & various delphi versions) at the moment the delphi version is stuck the keyboard-events are not fired anymore, but the lazarus version is fine. both versions compile 32/64-bit. on topic ! but there is no designer with it... ---------------------------------------------------------------------- Graeme · 2017-04-30 10:53 Quote from: jc99 on April 27, 2017, 06:04:27 pm@Graeme: You have a nice piece of work with you fpGUI and the UIDesigner. Thanks. QuoteMy goal here with DialEdit is that it can be integrated in the IDE. A valid point. I can't remember, does the Text IDE support "external tools", if so, you can still call the fpGUI UIDesigner from the Text IDE - just like we currently do with Lazarus IDE. But that obviously means you will have to be running the Text IDE via a console window under X11 - and not directly from a console login. But I get your point and goal. ---------------------------------------------------------------------- korba812 · 2017-05-01 09:18 Quote from: x2nie on April 30, 2017, 08:20:21 am@korba812, any screenshot we can see? It is difficult to show on screenshot because they look similar. I am sending compiled example from Harbor compiler (32bit win): https://gmsystems.pl/pliki/inne/achoice.zip If you run without parameters it will run in the console. If you specify the parameter "//GTWVT" (with two slashes) will run in standard graphical window. Another interesting thing is the built-in debugger. Press Alt-D to launch it. But it's a topic for another discussion. ---------------------------------------------------------------------- x2nie · 2017-05-01 12:18 Quote from: korba812 on May 01, 2017, 11:18:40 amQuote from: x2nie on April 30, 2017, 08:20:21 am@korba812, any screenshot we can see? It is difficult to show on screenshot because they look similar. I am sending compiled example from Harbor compiler (32bit win): ...... Wow, that is cool for my eyes. amazing to know that a console app is also a gui app, both in a single exe. You have confirmed that my imagination was wrong,   due I think another appearance of non-console-app appearance (see last pic below) ---------------------------------------------------------------------- marcov · 2017-05-01 13:50 Quote from: Graeme on April 30, 2017, 12:53:40 pm A valid point. I can't remember, does the Text IDE support "external tools", if so, you can still call the fpGUI UIDesigner from the Text IDE - just like we currently do with Lazarus IDE. But that obviously means you will have to be running the Text IDE via a console window under X11 - and not directly from a console login. But I get your point and goal. Yes it supports external tools, but only in a blocking way, iow the IDE only resumes if the tool has finished afaik. ---------------------------------------------------------------------- Thaddy · 2017-05-01 15:12 Quote from: x2nie on May 01, 2017, 02:18:51 pmWow, that is cool for my eyes. amazing to know that a console app is also a gui app, both in a single exe. You have confirmed that my imagination was wrong,   due I think another appearance of non-console-app appearance (see last pic below) [/quote] That screenshot is just to hide the teletubbies...? ---------------------------------------------------------------------- korba812 · 2017-05-01 15:42 Quote from: x2nie on May 01, 2017, 02:18:51 pmYou have confirmed that my imagination was wrong,   due I think another appearance of non- console-app appearance (see last pic below)In graphical mode it is possible to add graphical elements. So if you have old Clipper code that works in text mode, by adding a few lines of code you can update the application to look like a GUI application. ---------------------------------------------------------------------- x2nie · 2017-05-02 01:16 Quote from: Thaddy on May 01, 2017, 05:12:14 pmQuote from: x2nie on May 01, 2017, 02:18:51 pmWow, that is cool for my eyes. amazing to know that a console app is also a gui app, both in a single exe. You have confirmed that my imagination was wrong,   due I think another appearance of non-console-app appearance (see last pic below) That screenshot is just to hide the teletubbies...? Yes, but the "teletubbies" is windows form, not the console one.! Actually, my screenshot is taken from here: https://jonlennartaasenden.wordpress.com/2014/10/19/build-your-own- delphi-based-operative-system/ Which there, the main topic is about running delphi application in DOS, so there are tools to emulate windows environment in DOS ---------------------------------------------------------------------- marcov · 2017-05-02 07:54 Quote from: x2nie on May 02, 2017, 03:16:04 amActually, my screenshot is taken from here: https://jonlennartaasenden.wordpress.com/2014/10/19/build-your-own- delphi-based-operative-system/ Which there, the main topic is about running delphi application in DOS, so there are tools to emulate windows environment in DOS Just read through the comments on that site. Only the non visual part seemed to be working. ---------------------------------------------------------------------- jc99 · 2017-05-02 09:06 ... and on top of that, it's based on DWPL, and for DWPL you need the original borland-sources, they are copied into the directory and the patched (with a binary patching tool). ... so you have to do that, then compare the patched sources and the find a solution without copyrighted units in fpc ... sounds like fun ... ---------------------------------------------------------------------- Graeme · 2017-05-02 10:07 Quote from: marcov on May 01, 2017, 03:50:49 pmYes it supports external tools, Excellent, thanks for confirming that. Quote...but only in a blocking way, iow the IDE only resumes if the tool has finished afaik That is actually the desired behaviour - for me at least, when using the fpGUI UIDesigner. ---------------------------------------------------------------------- jc99 · 2017-05-09 16:42 since I mentioned my FV2 project here. did someone had a look ? It starts to make progress: https://github.com/joecare99/Public/tree/master/Projects/FV2 unit-test: https://github.com/joecare99/Public/blob/master/Projects/bin/x86_64- win64/fpc_TestFV2units.exe ---------------------------------------------------------------------- avra · 2017-05-10 07:48 Quote from: jc99 on May 09, 2017, 06:42:08 pmdid someone had a look ?Not yet. Could you please provide some basic info about the progress? Quote from: jc99 on May 09, 2017, 06:42:08 pmhttps://github.com/joecar e99/Public/blob/master/Projects/bin/x86_64-win64/fpc_TestFV2units.exe Is it for 64-bit? Currently I have only WinXP SP3 available and I get "....exe is not a valid Win32 application". ---------------------------------------------------------------------- jc99 · 2017-05-10 13:09 Yes, the exe is for win64 only, but the sources are in the repository, you could compile to any target you like, but i will provide win32 version soon. About the progess, the converting is mostly done, at the moment i'm at bug-Fixing for the new fearures: - TextCanvas - TStrings- Support ---------------------------------------------------------------------- jc99 · 2017-05-11 07:24 @Avra: Here's the 32bit Version: https://github.com/joecare99/Public/blob/master/Projects/bin/i386- win32/fpc_TestFV2units.exe ---------------------------------------------------------------------- ArtLogi · 2017-05-11 10:09 Quote from: jc99 on April 27, 2017, 06:04:27 pm@Graeme: You have a nice piece of work with you fpGUI and the UIDesigner. My goal here with DialEdit is that it can be integrated in the IDE. Superb. ---------------------------------------------------------------------- FlierMate · 2021-01-27 13:33 Quote from: jc99 on May 09, 2017, 06:42:08 pmsince I mentioned my FV2 project here. did someone had a look ? It starts to make progress: https://github.com/joecare99/Public/tree/master/Projects/FV2 unit-test: https://github.com/joecare99/Public/blob/master/Projects/bin/x86_64- win64/fpc_TestFV2units.exe The source repo looks like had been removed.. I keep seeing "No commit message"? ---------------------------------------------------------------------- avra · 2021-01-27 14:01 Quote from: FlierMate on January 27, 2021, 02:33:21 pmThe source repo looks like had been removed.. I keep seeing "No commit message"?No. It means that commit description text was empty string. ---------------------------------------------------------------------- FlierMate · 2021-01-27 14:51 Quote from: avra on January 27, 2021, 03:01:39 pmQuote from: FlierMate on January 27, 2021, 02:33:21 pmThe source repo looks like had been removed.. I keep seeing "No commit message"?No. It means that commit description text was empty string. Ahh... I see the source code is still there. Thank you for this thread.