Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 9 of 9 total
Thread Multiple "themes".
Tue, Apr 12 2016 1:07 AMPermanent Link

squiffy

Telemix Ltd.

Avatar

Has anyone got a good strategy for maintaining multiple themes for different clients?

My issue is that I have different clients requiring different colour schemes and sometimes different options by default, options that can only be set in the interface manager/designer. Switching between projects is therefore a pain as I have to change the IDE paths each time to custom directories.

Ideally I'd like each project to remember a custom path to my interface files. Then the only problem left would be migrating each project when the interface files get upgraded with new versions...

Does anyone already do this, or am I missing a trick? If not, please could I add that as a feature request Smile

Thanks.
Tue, Apr 12 2016 3:54 AMPermanent Link

Uli Becker

> Does anyone already do this, or am I missing a trick? If not, please could I add that as a feature request Smile

Shouldn't be a problem since 2.03: You can copy the matching interfaces
into your project's directory.

The order of search paths when building your application is:

1. Project path
2. Compiler search paths of the project ( Project | Options |
Compilation | Search Paths )
3. Library paths of the environment (Environment | Options | Component
Library | Search Paths)

Uli


Tue, Apr 12 2016 4:28 AMPermanent Link

Matthew Jones

Uli Becker wrote:

> You can copy the matching interfaces into your project's directory.

Or into a directory related only to that project. I have client
specific themes in their own directory, so I can keep them separate. I
hope to get time to work on my theme diff tool too, so perhaps I can
get all fonts updated in one go, or something. The diff part is done,
the update part is conceptual...

--

Matthew Jones
Tue, Apr 12 2016 5:44 AMPermanent Link

squiffy

Telemix Ltd.

Avatar

Uli / Matthew - I would have stood in court and sworn blind I tried that. but clearly I didn't, because it works. Thank you. Plus I (ahem) completely missed the project/options search paths setting, only remembering the environment one.

Matthew - the tool I'd like is one that, on release of a version of EWB that updated the interfaces, goes through all the projects and replaces them with the new but modifies them as well for the changes I've made.

Sounds impossible as by its nature a breaking change may be uncorrelatable(?) with existing settings, though I imagine things like colour and the like would be consistent.

There's a project Smile
Tue, Apr 12 2016 5:50 AMPermanent Link

Matthew Jones

squiffy wrote:

> Matthew - the tool I'd like is one that, on release of a version of
> EWB that updated the interfaces, goes through all the projects and
> replaces them with the new but modifies them as well for the changes
> I've made.

That's what I am trying to do. The basic idea would be to make a note
of changes, and to be able to apply them to any set. Possibly with
custom edits or something. So you'd be able to set the font or
something for more than just one item. But right now, it allows you to
see what changes you made, so you can make sure you re-apply them
again. I will try to get it into a shape that makes it usable by others
- paths are hard coded at the moment.

--

Matthew Jones
Tue, Apr 12 2016 10:48 AMPermanent Link

squiffy

Telemix Ltd.

Avatar

sounds good!
Tue, Apr 12 2016 10:56 AMPermanent Link

Matthew Jones

squiffy wrote:

> sounds good!

It does. But it is quite scary! I just realised that the changes I made
this morning were not showing up. This is because the .wbi files are
sparse, and don't have all the values in them (if default). So I am
adding a load of values. So my output is now:

tgrouppanel.wbi\States\array[Normal]\RootElement\Elements\array[Client]\
Border\Top\Color=+"clWhite"

The idea is that I can take that line and "replay" it into the master
..wbi file. Most parts are easy, where the array[] indicates an element
of the array where the Name matches the one shown. But some of these
don't exist in the defaults. So I have to work out how to do this. JSON
is a pain to use with any of the libraries I have. Anyway, one day I'll
work on it again. I think it is viable so far, even as a way to
document the changes you have made, and then to compare against a
repeat.

--

Matthew Jones
Wed, Apr 13 2016 7:54 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Matthew,

<<JSON is a pain to use with any of the libraries I have. >>

I don't know if ours will be better or worse for this purpose, but there is a TEWBJSONReader/Writer component in 2.04:

http://www.elevatesoft.com/manual?action=viewcomp&id=ewb2mod&product=rsdelphi&version=XE&comp=TEWBJSONReader

http://www.elevatesoft.com/manual?action=viewcomp&id=ewb2mod&product=rsdelphi&version=XE&comp=TEWBJSONWriter

Tim Young
Elevate Software
www.elevatesoft.com
Wed, Apr 13 2016 8:03 AMPermanent Link

Matthew Jones

Tim Young [Elevate Software] wrote:

> <<JSON is a pain to use with any of the libraries I have. >>
>
> I don't know if ours will be better or worse for this purpose, but
> there is a TEWBJSONReader/Writer component in 2.04:

Ah, that is excellent - a Delphi version of the EWB reader/writer.
However, I don't think it helps in this case as I am comparing the
complete objects, and it is all the stupid stuff where you don't know
if "blah" is an object or whatever. I nearly sat down and wrote my
perfect JSON parser once, but then I bought Delphi XE Seattle (often
known as XE10), and that fixes some things, but I usually use XE2 which
works okay-ish. Nothing seems to do a nice and simple object set. The
reader/writer of yours is really good for generating/parsing.

--

Matthew Jones
Image