Designing a database for Picto Selector – status and user pictos


The local storage (phase 1) is now working and i’m continuing with testing the multi user / network storage.

Conflicting changes and users

The biggest thing with a network version is the situation when multiple people are changing a picto sheet. I’ve solved it by introducing users. Everyone who starts Picto Selector will have to log in with some initials (no password). And you can only change the picto sheets that belongs to that user.

If you change something to a sheet then you will get the option to copy the sheet to yourself. A copy with the change will be yours. The original will be untouched.

When multiple people login with the same initials then optimistic locking is used which means that anyone can make changes but when somebody else saves his changes first then you can no longer save your changes until you refresh your information.

There is a default user installed when creating the database. It’s initals are ‘root’ and it is the administrator who can make changes to all picto sheets.

Using picto sheets of older Picto Selector changes

At the first login on a windows account the picto sheets that were created with an old version of Picto Selector will be imported and assigned to the used user initials.

Photo and user pictos

Both the photos and user pictos were causing some headache because in a network situation you do not have access to the source of the photos unless they are located on the server. But then there is still a problem if I want to add synchronization later.

My solution is to insert user pictos as photos and store the visible part of a photo image in the database. The nice side effect is an increased speed of the photo pictos. When showing a photo picto the earlier stored image is used. When you want to change a photo picto then the original photo will be used unless it is not available. In this situation the image in the database is used.

The user pictos list will be stored in the database for each computer/windows account. So people can have different sets of user pictos. I might add a server pictos option later on.

What’s next:

  • Add a user manager, so we can change the initials/name of a user or delete a user (only when he has no picto sheets left) (2010-12-04 done)
  • Implement a dialog to change the storage / network location of the database in a user friendly way (2010-12-07 done)
  • Improve the feedback when someone else has deleted a picto sheet which you want to open (2010-12-04 done)
  • Implement the synchronization functionality which includes a way to compare conflicts, do a first synchronization when a connection with new/another database is  made.
  • Create some documentation how to install the network version and use the synchronization (2010-12-07 network installation done)
  • Test test test

Until i’m certain of the correct working of the database version I will continue to add new symbols on the old (non database) version. It could take a while before i’m satisfied.

Posted in Picto Selector | 1 Comment

Designing a database for Picto Selector – settings

Between each session of Picto Selector some settings are stored for all kind of data:
– which graphic to use for good and wrong
– colors and bordersettings last used in a picto sheet
– language to use
– location of the images on the HD

This is the complete list of all settings and the way I want to store them in a Database.

      Sync Not Sync Not Sync
DB Setting name type DB Type User Computer App Dir
Language string VARCHAR(250) X    
PrintTitleFont TFont VARCHAR(250) X    
PrintPictoNameFont TFont VARCHAR(250) X    
PrintPictoTextFont TFont VARCHAR(250) X    
CustomPictoDir string VARCHAR(250)     X
UseCustomPictoDir boolean INT     X
PictoGood TBitmap BLOB X    
PictoGoodColor TColor INT X    
PictoWrong TBitmap BLOB X    
PictoWrongColor TColor INT X    
LastVersion string VARCHAR(250)   X  
LastVersionDate TDateTime TIMESTAMP   X  
LastVersionNeverCheck boolean INT   X  
GroupFrom string VARCHAR(250) X    
GroupNameCreator string VARCHAR(250) X    
EmailFrom string VARCHAR(250) X    
EmailTo string VARCHAR(250) X    
EmailToHistory string BLOB X    
SelectedSets integer INT X    
PictoClockColors type splitted X    
PictoTimeTimerColors type splitted X    
BorderColor TColor INT X    
BorderWidth integer INT X    
BorderRound integer INT X    
FormStates inifile splitted X X  

Some settings are stored over multiple records in the database:

PCCType ClockType TClockType INT
PCCBackground ClockColorsBackground TColor INT
PCCFace ClockColorsFace TColor INT
PCCNumbers ClockColorsNumbers TColor INT
PCCHourTicks ClockColorsHourTicks TColor INT
PCCMinuteTicks ClockColorsMinuteTicks TColor INT
PCCHourHand ClockColorsHourHand TColor INT
PCCMinuteHand ClockColorsMinuteHand TColor INT
PCCDigitalBackground ClockColorsDigitalBackground TColor INT
PCCDigitalNumbers ClockColorsDigitalNumbers TColor INT
PTCType TimeTimerType TTimeTimerType INT
PTCBackground TimeTimerColorsBackground TColor INT
PTCFace TimeTimerColorsFace TColor INT
PTCFacePast TimeTimerColorsFacePast TColor INT
PTCNumbers TimeTimerColorsNumbers TColor INT
PTCFiveMinutesTicks TimeTimerColorsFiveMinutesTicks TColor INT
PTCMinuteTicks TimeTimerColorsMinuteTicks TColor INT
PTCDigitalBackground TimeTimerColorsDigitalBackground TColor INT
PTCDigitalNumbers TimeTimerColorsDigitalNumbers TColor INT
Form states      
FS_<FORMNAME>_L Left integer INT
FS_<FORMNAME>_T Top integer INT
FS_<FORMNAME>_W Width integer INT
FS_<FORMNAME>_H Height integer INT
FS_<FORMNAME>_S State integer INT


The Settings that are stored for each user will be synchronized, settings stored for a computer will not be synchronized.

Posted in Picto Selector | Leave a comment

Designing and building a database for Picto Selector

All the picto sheets are currently stored in a text file in the My Documents folder. This makes it a single user application and not suited for sharing sheets with other computer users. I had some questions for a network version and decided to build a database for Picto Selector.

But only building a database was not enough. I also want to be able to disconnect from a network and continue working and after returning home (or at school etc) continue working. For this i’m adding a synchronization option.

3 Phases

Phase 1:

A database that replaces the text file. Everyone still works single user.

Phase 2:

The database running on a network server. (The local database will still be available)

Phase 3:

The option to synchronize with a server. So you can run Picto Selector with a local database and send all changes to a server, all changes on the server will be send to you.

This means in the above example that a picto sheet created by a user on PC 1 will be stored in the first server. Laptop 1 will be synchronized with this database and store it locally. Later it will synchronize the sheet to another server and eventually PC 5 will get this sheet synchronized.

Posted in Picto Selector | 1 Comment

Version 1.2.13 is now online


  • 87 Sclera symbols
  • Spanish sign language images. A total of 3615 images with spanish names. This is an optional download. See website for more details.

The new version can be installed by selecting the menu item “Check for updates” in the “Help” menu.

Posted in Picto Selector | 2 Comments

Version 1.2.12 is now online


  • 367 Sclera symbols
  • 990 Arasaac symbols
  • Hongarian translation of the application + 1500 symbols, every help to translate them is welcome!

The new symbols have a Dutch, English, French and German translation


  • A lot of internal changes to support right to left reading (Bi-directional

I’m now using the latest Delphi XE version for the development of Picto Selector. This version work very well and i’m very happy with it.

The new version can be installed by selecting the menu item “Check for updates” in the “Help” menu.

Posted in Picto Selector | 1 Comment

Version 1.2.11 is now online


  • Instead of simple text, Rich Text is now used in the text picto’s
  • Improved the drawing of the border of text picto’s when using a different width and height
  • The picto list is no longer always on top of Picto Selector, picto lists will have their own taskbar icon


  • the check whether the computer is online sometimes failed and waited for a long time, the result was a grey screen on some computers at startup.
  • the check whether all symbols were available on the computer sometimes resulted in exceptions when closing Picto Selector

The new version can be installed by selecting the menu item “Check for updates” in the “Help” menu.

Posted in Picto Selector | Leave a comment

New text options in the next version

In the next version I will add a lot of extra possibilities in the Text Picto’s

A picture tells more than thousands words:

Posted in Picto Selector | Leave a comment

Version 1.2.10 is now online


  • 260 Sclera symbols, currently translated to dutch, english, french and german
  • 167 Sclera symbols, currently translated to dutch, english and french
  • the copyright line will now also show the use of user symbols and photos as having a unknown copyright status
  • it is now possible to save the symbols to a folder using the picto names of Picto Selector


  • More space between picto and picto name in the layout templates and dynamic layout
  • the copyright line as used in layout templates is now also used in the default dynamic layout
  • double clicking a symbol in the pictolist will insert that picto after the first selected one and not after the last picto in that sheet as before

The new version can be installed by selecting the menu item “Check for updates” in the “Help” menu.

Posted in Picto Selector | Leave a comment

Visual Schedule: Shower Schedule

This schedule is used to show our son when we expect him to take a shower. When to change clothes and which underwear he should replace.

This schedule as a PDF: Shower Schedule

And a Picto Selector Export file: Shower Schedule.pszip (Use this file to edit this schedules to your own needs)

Posted in Visuals | 2 Comments

Visual schedule: Going to bed

This is a schedule we have used for a long time when our son went to bed. Whenever he was distracted we only needed to ask what was done already and he went on with the next step.

After a while this schedule became his normal bed ritual and it was no longer needed.

This schedule as a PDF: Going to sleep

And a Picto Selector Export file: Going to bed.pszip (Use this file to edit this schedules to your own needs)

Posted in Visuals | Leave a comment