Recent

Author Topic: Visual Pascal Community Edition  (Read 18885 times)

Edson

  • Hero Member
  • *****
  • Posts: 1301
Re: Visual Pascal Community Edition
« Reply #15 on: April 26, 2018, 12:04:55 am »
Edson,
Does it look sensible, to combine all your projects, to make a kind of visual IDE with modular structure on the base of them?
Will it be possible to shift to Lazarus later? Or it can stand just in parallel?
That's the idea, although I wasn't thinking on Lazarus. Most of my projects are libraries so they are modular (Probably more than one can be used in Lazarus too).
One of the objectives of my IDE/Compiler https://github.com/t-edson/PicPas is to have a Visual Editor to create programs in a graphical screen. I have not well defined the way it will work. I guess it could be ported to other languages later (I use another version of Pascal).

And yes, your native language is Spanish? em-m-m May be translation would be needed.
Translation are welcome. I have some libraries translated but others need some work.

You mentioned some issues? Of what kind?.

I have some issues to solved first about my compiler, before of starting to create a "Visual Editor". They are related to implementing some features of the languages (like arrays, records), new operations for the Code Generator, and to improve the debugger.
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

taazz

  • Hero Member
  • *****
  • Posts: 5368
Re: Visual Pascal Community Edition
« Reply #16 on: April 26, 2018, 04:09:44 pm »
The main question is to be able to control textFiles-graph linkage.
that is the easy part. there are ready made routines to help with that for example the fp-json library has a procedure called objecttoJson & jsonToObject, you can use them to convert every single graph class in evsSimpleGraph to a json string and save it in a text. There might be a need for some control values (ee length of the object string or the number of objects in the file) or it might not, its all up to you to design the format as you see feet. In case of existing format then there is no automatic way, you will have to write the import/export procedure per property
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

Researching

  • Full Member
  • ***
  • Posts: 121
Re: Visual Pascal Community Edition
« Reply #17 on: April 26, 2018, 08:26:34 pm »
Taazz,
I tried to load the project, but:
The following package failed to load:
EvsGDIPLUS
In general, how to try it? how to use? Reading comments now.
May be certain Laz version needed? 1.6?

taazz

  • Hero Member
  • *****
  • Posts: 5368
Re: Visual Pascal Community Edition
« Reply #18 on: April 26, 2018, 09:34:52 pm »
Taazz,
I tried to load the project, but:
which project? The demo(simplegraphBuilder)?
The following package failed to load:
EvsGDIPLUS
Ignore it and remove it from project dependencies (look in the project inspector).
That package is an internal windows only package.
In general, how to try it? how to use? Reading comments now.
May be certain Laz version needed? 1.6?
no that is the latest open source code it has some changes that have not been applied in the internal version yet.


EDIT:

I have cleaned up the project a bit and checked in the changes. Please pull a new version from github.
« Last Edit: April 26, 2018, 09:36:40 pm by taazz »
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

Edson

  • Hero Member
  • *****
  • Posts: 1301
Re: Visual Pascal Community Edition
« Reply #19 on: April 26, 2018, 09:53:37 pm »
an other library for diagram design is https://github.com/taazz/evssimplegraph

Impressive. I was playing with the demo an it looks very complete and mature. Some flickering in Windows and I see the "control points" lost the mouse pointer whe resizing. Not a big problem.

I would say my library https://github.com/t-edson/ogEditGraf is more oriented to create Graphics Editors, and includes Control Points (for resizing) and "Connection Points" where to plug the connector. I have the impression TSimpleGraph is limited to one point of connection in the center of the shape.

Other difference would be ogEditGraf includes effects like "highlight shapes" (native), "auto positioning" for connectors (native) and others that are in development.

You can check a simple demo in: https://github.com/t-edson/ogEditGraf/tree/2.3/Editor%20con%20Conectores
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

RAW

  • Hero Member
  • *****
  • Posts: 868
Re: Visual Pascal Community Edition
« Reply #20 on: April 26, 2018, 11:13:33 pm »
Quote
... library https://github.com/t-edson/ogEditGraf is more oriented to create Graphics Editors, ...
Thanks, looks very interesting... good to know, I guess I should take a look at GitHub more often...  :)
Windows 7 Pro (x64 Sp1) & Windows XP Pro (x86 Sp3).

Researching

  • Full Member
  • ***
  • Posts: 121
Re: Visual Pascal Community Edition
« Reply #21 on: April 27, 2018, 01:33:26 am »
Taazz,
Just tried this:
1. https://github.com/taazz/EvsSimpleGraph/files/1367109/EvsSimpleGraph.v1.zip
After removal of EvsGDI... from "required" It works.


taazz

  • Hero Member
  • *****
  • Posts: 5368
Re: Visual Pascal Community Edition
« Reply #22 on: April 27, 2018, 02:58:48 am »
Taazz,
Just tried this:
1. https://github.com/taazz/EvsSimpleGraph/files/1367109/EvsSimpleGraph.v1.zip
After removal of EvsGDI... from "required" It works.
try https://github.com/taazz/EvsSimpleGraph/archive/master.zip its newer code with a few bugs fixed and now the demo corrected.
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

taazz

  • Hero Member
  • *****
  • Posts: 5368
Re: Visual Pascal Community Edition
« Reply #23 on: April 27, 2018, 05:13:53 am »
Impressive. I was playing with the demo an it looks very complete and mature. Some flickering in Windows and I see the "control points" lost the mouse pointer whe resizing. Not a big problem.

I would say my library https://github.com/t-edson/ogEditGraf is more oriented to create Graphics Editors, and includes Control Points (for resizing) and "Connection Points" where to plug the connector. I have the impression TSimpleGraph is limited to one point of connection in the center of the shape.

Other difference would be ogEditGraf includes effects like "highlight shapes" (native), "auto positioning" for connectors (native) and others that are in development.

You can check a simple demo in: https://github.com/t-edson/ogEditGraf/tree/2.3/Editor%20con%20Conectores
Well here is a gif to make sure we see the same things
(https://preview.ibb.co/mxUzDc/evs_Simple_Graph_Demo_1.gif)

Now I'm assuming that when you say
I was playing with the demo an it looks very complete and mature. Some flickering in Windows and I see the "control points" lost the mouse pointer whe resizing. Not a big problem.
I'm assuming you refer to the control points being hidden while resizing? That's by design.

Other difference would be ogEditGraf includes effects like "highlight shapes" (native), "auto positioning" for connectors (native) and others that are in development.
highlight when selected or when the mouse passes over them?
"auto positioning" for connectors (native) .
Auto positioning using what rules?
« Last Edit: April 27, 2018, 05:58:29 am by taazz »
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

Edson

  • Hero Member
  • *****
  • Posts: 1301
Re: Visual Pascal Community Edition
« Reply #24 on: April 27, 2018, 07:26:57 am »
I was playing with the demo an it looks very complete and mature. Some flickering in Windows and I see the "control points" lost the mouse pointer whe resizing. Not a big problem.
I'm assuming you refer to the control points being hidden while resizing? That's by design.
No. I refer if you resize the shape more of its limit the mouse pointer can stay working, far from a border, or the shape. See the picture.

highlight when selected or when the mouse passes over them?
When the mouse passes over the shape.

Auto positioning using what rules?
Auto positioning when the mouse pointer is close to a Connection Point. Something like Visio do.

Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

taazz

  • Hero Member
  • *****
  • Posts: 5368
Re: Visual Pascal Community Edition
« Reply #25 on: April 27, 2018, 08:09:08 am »
I was playing with the demo an it looks very complete and mature. Some flickering in Windows and I see the "control points" lost the mouse pointer whe resizing. Not a big problem.
I'm assuming you refer to the control points being hidden while resizing? That's by design.
No. I refer if you resize the shape more of its limit the mouse pointer can stay working, far from a border, or the shape. See the picture.
I see.
highlight when selected or when the mouse passes over them?
When the mouse passes over the shape.
that's by design I do not recommend to highlight on mouse move it destructs from the task at hand most of the times(unless its on a toolbar where the task is to select the button).
Auto positioning using what rules?
Auto positioning when the mouse pointer is close to a Connection Point. Something like Visio do.
oh fixed connection points.
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

Edson

  • Hero Member
  • *****
  • Posts: 1301
Re: Visual Pascal Community Edition
« Reply #26 on: April 28, 2018, 04:52:25 am »
that's by design I do not recommend to highlight on mouse move it destructs from the task at hand most of the times(unless its on a toolbar where the task is to select the button).
I have used it for a long time in production and it works OK.  :D
Anyway it can disabled with a simple flag.

Auto positioning when the mouse pointer is close to a Connection Point. Something like Visio do.
oh fixed connection points.
The objective is to have auto positioning for the mouse pointer with:
- Grid
- Connection points
- Notable angles (0º, 45º, 90º, ...)
- Center or corners of other shapes.

And of course, all this features could be disabled. The idea is to offer many facilities when editing shapes.  8-)
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

taazz

  • Hero Member
  • *****
  • Posts: 5368
Re: Visual Pascal Community Edition
« Reply #27 on: April 28, 2018, 05:59:03 am »
that's by design I do not recommend to highlight on mouse move it destructs from the task at hand most of the times(unless its on a toolbar where the task is to select the button).
I have used it for a long time in production and it works OK.  :D
Anyway it can disabled with a simple flag.
well it is ok when you try to select something it is a distraction when I'm only trying to follow the flow/diagram. Minor but distraction non the less. I can see it becoming enabled when I'm trying to connect two shapes/entities together and disabled on all other cases though. ;)
Auto positioning when the mouse pointer is close to a Connection Point. Something like Visio do.
oh fixed connection points.
The objective is to have auto positioning for the mouse pointer with:
- Grid
- Connection points
- Notable angles (0º, 45º, 90º, ...)
- Center or corners of other shapes.

And of course, all this features could be disabled. The idea is to offer many facilities when editing shapes.  8-)
you assume that you edit shapes I assume I edit entities there is an internal method which can be overridden to return what ever connection point you see fit based on the type of the entity you editing. In my (internal) ERD app it is used to return the position of the field on the table/view and based on the angle from the opposite point can be placed at the left or right (no top/bottom allowed in this case). on a flow chart type of application a fixed connection points might be a better approach but no auto positioning is allowed. In any case is good to have options I just want to make sure that those options are appropriate for the type of application required, oh and I stay way way way way waaaaaaayyyy far from any kind of gpl license as much as humanly possible.
« Last Edit: April 28, 2018, 06:02:14 am by taazz »
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

Edson

  • Hero Member
  • *****
  • Posts: 1301
Re: Visual Pascal Community Edition
« Reply #28 on: April 28, 2018, 10:27:52 pm »
In my (internal) ERD app it is used to return the position of the field on the table/view and based on the angle from the opposite point can be placed at the left or right (no top/bottom allowed in this case). on a flow chart type of application a fixed connection points might be a better approach but no auto positioning is allowed.
That's the difference. My library is intended to implement flow charts, electronic design or CAD. Others applications can be use it too, because the connection points can be customized. I follow the idea of Viiso Software. But there is a lot of feature to implement.

In any case is good to have options I just want to make sure that those options are appropriate for the type of application required, oh and I stay way way way way waaaaaaayyyy far from any kind of gpl license as much as humanly possible.
I haven't had problem with the GPL license. In some occasions when someone ask me for something more permissive I just changed the license.
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

Researching

  • Full Member
  • ***
  • Posts: 121
Re: Visual Pascal Community Edition
« Reply #29 on: January 28, 2020, 09:31:29 pm »
Well... A long time I was not here.
Now back.
Stages:
1. file routines library (open, close, delete, read, write, append, split, merge...)
2. primitive diagram with text - to code
3. flowchart diagram to code
4. code to flowchart
All resources mentioned by respected forum participants will bie taken into concideration.
Questions will be posted and maybe answers gethered.

###########
The first question for file routines:
want to code a single subprogram to
1. read text files to: array, list, ....
2. read data file to record as
Code: Pascal  [Select][+][-]
  1. procedure FDataToArrRecord (FName, FPath:string; var ArrOfRecord);
//question: is it enough to pass a Typed variable? Can this procedure be universal for all cases? Or will I have to create a procedure for each case of data structure? How to do:
Code: Pascal  [Select][+][-]
  1. if (ArrRecord structure corresponds to DataFile structure)
  2.   then read file to ArrRecord
  3.   else throw exception;
  4.  

Is it possible to hide reading to each of certain DataStructure by overloading mechanism? (single funct. FRead (....) - read to diff. Data structures? )

 

TinyPortal © 2005-2018