I.T. Discussion Community!
-Collapse +Expand
Delphi
Search Delphi Group:

Advanced
-Collapse +Expand Delphi To/From
To/FromCODEGuides
-Collapse +Expand Delphi Store
PRESTWOODSTORE

Prestwood eMagazine

July Edition
Subscribe now! It's Free!
Enter your email:

   ► MB LobbyPascal and Delphi Coding BoardDelphi VCL Topic   Print This     

Point-Of-Sale (POS) Screen Design

Point-Of-Sale (POS) Screen Design in Delphi VCL topic (part of our Pascal and Delphi Coding group).

Quick Search: Point Of   Point Of Sale   (POS) Screen  
Daniel Kram
-- UNK

Hello and happy new year to all.

I am currently in the process of writing a Point-of-Sale, POS, system. I have seen many in person recently and they have fairly simple screens with a few options usually per screen and perhaps some tabs. Color is usually present but not usually overdone.

My question, I noticed they all have a gradient type of button in several formats and how do you th ink I should best approach my project to achieve a nice graident button and controls.

Here is what I have looked at thus far.

1) Skinning. If I find nothing else, this is the area I will probably land. When I am finished with my research, I will post my findings.

Through skinning, I can apply a theme to the Delphi application and at least get a completely different feel than the basic application colors with very little coding.

2) HMI (Human Machine Interface) I do not know much about this, yet, but this seems to be an option.

3) Just DIY, or do-it-yourself - create nice gradient designs in a paint program, save and apply to a TBitButton, but I could not figure out how to update text on the bit button without using the caption. I want the caption to be "over" the bitmap, not to the left/right/top/bottom.

4) Your idea(s)?????

I thank you and appreciate your comments.

 Posted 11 years ago (Thread Starter)
Comment Quote
About Daniel Kram -Collapse +Expand
Visit Profile
Approved member.
Member subscribes to this thread with a verified email.

Post ID #13221, 11 replies
Thread Started 1/12/2009 11:02:16 AM
View Counter=14087
Last Reply Posted 11/15/2011 1:22:29 PM)
Location=-- UNK 
Joined=12 years ago   MB Posts=25   KB Posts=4   KB Comments=11  
Wes Peterson
Prestwood IT
Prestwood IT office in Citrus Heights, CA

My two cents:

I've noticed a proliferation of "decorated" controls in a lot of recent applications, and I'm not convinced they're all a good idea.

Much like the Web, desktop applications are subject to changes in what's fashionable at any given moment.  What looks new and "cutting edge" today may look stale and dated in a year - or less.

My preference is to strive for a "clean" and uncluttered user interface, one that feels approachable and intuitive.  I feel strongly that those attributes are far more important than "eye candy," and that a "clean" UI will have greater lasting appeal.

That said, if you want some tastefully decorated controls, I cannot speak highly enough of Raize Components.  They are pretty easy to use, offer many options in the "look" department, and they work superbly.

If you want to avoid the expense of a commercial component library, you might want to explore the (massive) JEDI VCL library.

Wes Peterson
Senior Software Engineer
Prestwood IT Solutions
http://www.prestwood.com

 Posted 11 years ago
Comment Quote
About Wes Peterson -Collapse +Expand
Visit Profile
Approved member.
Member subscribes to this thread with a verified email.
About Wes Peterson

Wes Peterson is a Senior Programmer Analyst with Prestwood IT Solutions where he develops custom Windows software and custom websites using .Net and Delphi. When Wes is not coding for clients, he participates in this online community. Prior to his 10-year love-affair with Delphi, he worked with several other tools and databases. Currently he specializes in VS.Net using C# and VB.Net. To Wes, the .NET revolution is as exciting as the birth of Delphi.


Post ID #13223 (Level 1.1)  Reply to 13221
Thread Started 1/12/2009 4:16:50 PM
Location=Prestwood IT office in Citrus Heights, CA 
Joined=16 years ago   MB Posts=158   KB Posts=163   KB Comments=34   BLOG, Topics=20  
Wes Peterson
Prestwood IT
Prestwood IT office in Citrus Heights, CA

Daniel,

Yes, the JEDI VCL Library is huge. It's comprised of submissions from scores of independent developers. There's some duplication, and tons of things you may never need.

But it's size shouldn't put you off because Delphi is only going to link in what you use.

It does clutter up Delphi's component palette, but that's easily managed two ways:

  • Use GExperts to organize your palette and add a drop-down button so you don't have to squint at all those tab titles.
  • In your Projects' Options dialog, uncheck all the components you won't be using.  They'll disappear from the palette - but just for that project.

As for "roundness," you are using TXPManifest, right?

Wes Peterson
Senior Software Engineer
Prestwood IT Solutions
http://www.prestwood.com

 Posted 11 years ago
Comment Quote
About Wes Peterson -Collapse +Expand
Visit Profile
Approved member.
Member subscribes to this thread with a verified email.
About Wes Peterson

Wes Peterson is a Senior Programmer Analyst with Prestwood IT Solutions where he develops custom Windows software and custom websites using .Net and Delphi. When Wes is not coding for clients, he participates in this online community. Prior to his 10-year love-affair with Delphi, he worked with several other tools and databases. Currently he specializes in VS.Net using C# and VB.Net. To Wes, the .NET revolution is as exciting as the birth of Delphi.


Post ID #13225 (Level 1.2)  Reply to 13221
Reply Posted 1/13/2009 11:24:53 AM
Location=Prestwood IT office in Citrus Heights, CA 
Joined=16 years ago   MB Posts=158   KB Posts=163   KB Comments=34   BLOG, Topics=20  
Daniel Kram
-- UNK

Ooof (wow) to the Jedi - yes way too big; good, but big, nay huge!

I will look at the Raize components. It may be just waht we are looking for, just some basic color and some "roundness".

Thank you,

Daniel

 Posted 11 years ago (Thread Starter)
Comment Quote
About Daniel Kram -Collapse +Expand
Visit Profile
Approved member.
Member subscribes to this thread with a verified email.

Post ID #13224 (Level 1.3)  Reply to 13221
Reply Posted 1/12/2009 4:41:53 PM
Location=-- UNK 
Joined=12 years ago   MB Posts=25   KB Posts=4   KB Comments=11  
Daniel Kram
-- UNK

On the Jedi comment, true.

I am using the XP Manifest, yes, but we needed a bit more flexibility for the POS.

I found http://www.lmd.de

They, like Jedi, have a slew of components, but the key was the ability to easily customize the buttons the user uses and sees.

I have worked with both Jedi and LMD, but did not have the latest of LMD - where they have exactly what we needed.

Thank you for the posts

As I promised, I will report my findings.

 Posted 11 years ago (Thread Starter)
Comment Quote
About Daniel Kram -Collapse +Expand
Visit Profile
Approved member.
Member subscribes to this thread with a verified email.

Post ID #13226 (Level 1.4)  Reply to 13221
Reply Posted 1/13/2009 11:41:16 AM
Location=-- UNK 
Joined=12 years ago   MB Posts=25   KB Posts=4   KB Comments=11  
Anonymous Post

Hi,

First excuse my bad english, i speak only french,

I'm currently writing a POS system, front and back, i have a problem with sceen bouttons pos (articles), i do not know how to link articles tables to display in form (touch sales screen).

I want your help.

Tnks

---
anas
 Posted 9 years ago
Comment Quote

Post ID #14712 (Level 2) and Parent is 13221
Reply Posted 11/14/2011 2:37:56 AM
Wes Peterson
Prestwood IT
Prestwood IT office in Citrus Heights, CA
Quote:
Originally Posted by Anonymous

Hi,

>First excuse my bad english, i speak only french,

[wp] Hi Anas. Your English is much better than my French; don't worry about it.

I'm currently writing a POS system, front and back, i have a problem with sceen bouttons pos (articles), i do not know how to link articles tables to display in form (touch sales screen).

[wp] Have you ever worked with a bar-code scanner in your programs?  I ask because they have something important in common with touch-screens - at least "basic" touch-screens. 

With a bar-code scanner, there is surprisingly little extra work for the programmer. That's because the scanner emulates a keyboard. If you have a TEdit focused, and scan something, what the scanner read will appear in the TEdit just as if the user had typed it on the keyboard.

Similarly, the touch-screen emulates a mouse.  If you have a TButton on your form, and the user touches it with his finger, the touch-screen simply sends a mouse-click.

The important things are that you design your user interface such that buttons are large enough that they can respond well to a fat finger.  Also, if you have TEdits and the user touches one, all that does is set focus to that TEdit.  You need to then provide an on-screen virtual keyboard so the user can touch-type into the TEdit.

As far as linking form objects to database tables, it's the same as with a standard Windows application.  The touch screen is just a different "mouse." 

Good luck

Wes Peterson
Sr. Software Engineer
Prestwood IT Solutions



Wes Peterson
Senior Software Engineer
Prestwood IT Solutions
http://www.prestwood.com

 Posted 9 years ago
Comment Quote
About Wes Peterson -Collapse +Expand
Visit Profile
Approved member.
Member subscribes to this thread with a verified email.
About Wes Peterson

Wes Peterson is a Senior Programmer Analyst with Prestwood IT Solutions where he develops custom Windows software and custom websites using .Net and Delphi. When Wes is not coding for clients, he participates in this online community. Prior to his 10-year love-affair with Delphi, he worked with several other tools and databases. Currently he specializes in VS.Net using C# and VB.Net. To Wes, the .NET revolution is as exciting as the birth of Delphi.


Post ID #14713 (Level 1.1)  Reply to 14712 and Parent is 13221
Thread Started 11/14/2011 2:57:13 PM
Location=Prestwood IT office in Citrus Heights, CA 
Joined=16 years ago   MB Posts=158   KB Posts=163   KB Comments=34   BLOG, Topics=20  
Anonymous Post

Hi Wp,

Thanks you for inswert,

I wasn't clear enough, but let me explain the reason how to insert dynamic buttons from my table (family and article) : exp : http://www.antamedia.com/images/all/screen-pos-software.png

Merci :)

---
anas
 Posted 9 years ago
Comment Quote

Post ID #14714 (Level 3) and Parent is 13221
Reply Posted 11/15/2011 12:52:56 AM
Daniel Kram
-- UNK

You would like to build buttons at run-time? 


Here is what I did:


I built a generic form with several tabs - like yours. These tabs can be configured to be shown or not. I can share the table layout too if you like.


The generic form has all possible five tabs with 64 buttons for products on three of the tabs and 32 larger buttons on two of the other tabs. Now, the way I configured it was each product could be assigned to one or more forms - forms the Customer "creates" or defines using the application. All the forms are identical to start - 5 tabs as described above, however, each form can be, as I say, configured to have one tab or all 5.


So, back to the products. Each product can be assigned to one or more forms and in different locations on the form.


Maybe on one form the Customer has a tab called "Soft Drinks" and then they have 64 buttons available to them to assign products. So, Coke is placed here. At the bar, they have a tab named "Beverages" The Coke product can be shown here as well - takes only one more row in the form-to-product association table.


The forms table:

 CREATE TABLE IF NOT EXISTS forms(

  id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

  DateLastUpdated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  LastUpdatedBy [VAR_CHAR(]15) DEFAULT NULL,

  FormName [VAR_CHAR(]45) NOT NULL,

  InitialTab TINYINT(1) NOT NULL DEFAULT 0,

  Tab1Settings [VAR_CHAR(]150) DEFAULT NULL,

  Tab2Settings [VAR_CHAR(]150) DEFAULT NULL,

  Tab3Settings [VAR_CHAR(]150) DEFAULT NULL,

  Tab4Settings [VAR_CHAR(]150) DEFAULT NULL,

  Tab5Settings [VAR_CHAR(]150) DEFAULT NULL,

  PRIMARY KEY (id),

  UNIQUE INDEX ndxFormName (FormName)

)


In the TabXSettings column I have a color,TabName - if null, then the tab is not shown.




To control the behavior of the products-to-buttons behavior I have:


CREATE TABLE IF NOT EXISTS tblformcontrols_2(

  idtblformcontrols INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

  id_product INT(10) UNSIGNED NOT NULL,

  FormName [VAR_CHAR(]45) NOT NULL,

  TagNumber INT(11) NOT NULL,

  Caption [VAR_CHAR(]45) NOT NULL,

  FontSize SMALLINT(5) UNSIGNED NOT NULL,

  DateLastUpdated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  LastUpdatedBy [VAR_CHAR(]15) DEFAULT NULL,

  ButtonBackgroundColor [VAR_CHAR(]10) NOT NULL,

  ButtonImageLocation [VAR_CHAR(]150) DEFAULT NULL,

  PRIMARY KEY (idtblformcontrols),

  UNIQUE INDEX Index_2 (FormName, TagNumber),

  INDEX ndxid_product (id_product)

)


The tabs are "numbered" logically: starting with 100 and going to 500


The buttons are "numbered" logically tab one starts with button 100 to button 107 in the first row, button 110 to button 117 in the second row and so on. Tab two it is 200 to 207 and 210 to 217 and so on.


I can then read the "forms" table and see what tabs to display and in what color. I then read the "formcontrols" table to see what buttons to display and how to colorize them or place images on the buttons.


The "id_product" column in the "formcontrols" table is a logical foreign key back to the products table. I put this value in the TAG property of the button. When the button is pressed, I already know what product is being purchased as I have the ID of the product in the TAG. You could use the Hint property or some other property too.


Hope this helps.

 Posted 9 years ago (Thread Starter)
Comment Quote
About Daniel Kram -Collapse +Expand
Visit Profile
Approved member.
Member subscribes to this thread with a verified email.

Post ID #14715 (Level 4) and Parent is 13221
Reply Posted 11/15/2011 6:08:54 AM
Location=-- UNK 
Joined=12 years ago   MB Posts=25   KB Posts=4   KB Comments=11  
Anonymous Post

i realy thank you for your help,it means so much to me. as a first time Delphi programer , i'm gonna be more persistent and kindly ask you to give me the project source for this explication.

waitinting for your answer ,it means so much to me.many thanks.

sincerly yours.

---
anas
 Posted 9 years ago
Comment Quote

Post ID #14716 (Level 5) and Parent is 13221
Reply Posted 11/15/2011 6:51:03 AM
Wes Peterson
Prestwood IT
Prestwood IT office in Citrus Heights, CA

anas,

What Daniel Kram has described is a very sophisticated system or "framework" build with; or "on top of" Delphi. His is a generous offer and  It may, or may not, be useful to you.

You mentioned that you are a "first time" Delphi programmer.  We all were at one time or another.

Now, I can almost promise you that, even if you had all the code to Daniel's product, you'd have trouble making the most of it before you have better developed your foundation Delphi skills.  I recommend starting at the beginning and working through the tutorials that come with Delphi.

Also browse the web for "starter" projects.

Wes Peterson
Senior Software Engineer
Prestwood IT Solutions
http://www.prestwood.com

 Posted 9 years ago
Comment Quote
About Wes Peterson -Collapse +Expand
Visit Profile
Approved member.
Member subscribes to this thread with a verified email.
About Wes Peterson

Wes Peterson is a Senior Programmer Analyst with Prestwood IT Solutions where he develops custom Windows software and custom websites using .Net and Delphi. When Wes is not coding for clients, he participates in this online community. Prior to his 10-year love-affair with Delphi, he worked with several other tools and databases. Currently he specializes in VS.Net using C# and VB.Net. To Wes, the .NET revolution is as exciting as the birth of Delphi.


Post ID #14717 (Level 1.1)  Reply to 14716 and Parent is 13221
Thread Started 11/15/2011 1:05:39 PM
Location=Prestwood IT office in Citrus Heights, CA 
Joined=16 years ago   MB Posts=158   KB Posts=163   KB Comments=34   BLOG, Topics=20  
Most Recent Post
Daniel Kram
-- UNK

Anas:

Wes is correct. Moreover, I cannot share code from the application without breaking copyright rules/laws. Yes, I wrote it, but I do not own it, my employer owns the code - not me.

Follow what, Wes, indicates and see where it takes you. I do the same thing with languages I learn such as Ruby, or PHP.

The other thing you probably need is a solid understanding of database design. if you do not have a DBA, or database administrator, available to you, I would suggest looking at some materials from "In a Nutshell" series about database design.

Another idea: Download a POS available for demo purposes and you may be able to see the tables in SQL Server or MySQL and gather some ideas from their structure. It will help in any case with how to organize a good POS system.

Finally, this is one of many great sources for Delphi info: http://delphi.about.com/

Stop back if you have specific questions. We are here to help.

 Posted 9 years ago (Thread Starter)
Comment Quote
About Daniel Kram -Collapse +Expand
Visit Profile
Approved member.
Member subscribes to this thread with a verified email.

Post ID #14718 (Level 6) and Parent is 13221
Reply Posted 11/15/2011 1:13:31 PM
Location=-- UNK 
Joined=12 years ago   MB Posts=25   KB Posts=4   KB Comments=11  

Revive Thread!

Add a comment to revive this old thread and make this archived thread more useful.

Write a Comment...
Full Editor
...
Sign in...

If you are a member, Sign In. Or, you can Create a Free account now.


Anonymous Post (text-only, no HTML):

Enter your name and security key.

Your Name:
Security key = P1121A1
Enter key:
Icon: A Post    Thread    Idea    Important!    Cool    Sad    No    Yes    Includes a Link...   
Thread #13221 Counter
14087
Since 1/12/2009

Follow PrestwoodBoards on: 


©1995-2020 PrestwoodBoards  [Security & Privacy]
Professional IT Services: Coding | Websites | Computer Tech