Re: [DUG] Why does this hang?

2011-08-01 Thread Jolyon Smith
Yep, critical to this is not what happens to the matching messages but what is 
being done (or not) with messages that don't match.

I would expect to see an 'else' which repeats the call to PeekMessage but 
without the PM_REMOVE flag.

 Edward Huang edwa...@slingshot.co.nz wrote: 

Not 100% sure, but I thought that your loop will not work if the message on top 
of the queue is not falling into your range, and the message would remain on 
the queue (due to 'NOREMOVE' flag), and will be peeked everytime afterwards.
 
Not sure which message MadExcept uses, it could well be outside of your message 
ID range.
 
Edward

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of Ross Levis
Sent: Thursday, 28 July 2011 11:17 p.m.
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Why does this hang?

A little more info.  I have MadExcept operating and it detected “The 
application seems to be frozen.”

 

77fa15ec ntdll.dll KiUserCallbackDispatcher

77e1567d user32.dll    PeekMessageA

 

KiUserCallbackDispatcher is where it is hanging.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of Ross Levis
Sent: Thursday, 28 July 2011 11:09 p.m.
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Why does this hang?

 

I’m using the following code inside a wait loop so that most messages are 
processed except for some mouse and keyboard messages (I think) which I don’t 
want to be processed.  It’s working perfectly here but for another user it 
hangs indefinitely.

 

If PeekMessage(Msg, MainForm.Handle , 0, 0, PM_NOREMOVE) and

((Msg.message  160) or ((Msg.message  264) and (Msg.message  512))

or (Msg.message  524)) then

   Application.HandleMessage;

 

I use to have an Application.ProcessMessages but this was causing a problem 
which I can’t remember now, and this code fixed it.

 

Cheers.

No virus found in this message.
Checked by AVG - www.avg.com
Version: 10.0.1390 / Virus Database: 1518/3797 - Release Date: 07/29/11

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Email/SMTP code

2011-07-11 Thread Jolyon Smith
Indy uses blocking sockets - if it didn't, it wouldn't be as easy to work
with.  The down side is that if you call into an Indy client from the main
thread of your app, then that main thread blocks until the Indy call
completes.  In a GUI app that means no message processing and therefore an
apparent freeze.

 

One solution is to make all your Indy calls on a background thread.  But if
putting your Indy calls into a worker thread is too complex/not practical in
your case, then you might have some luck with the AntiFreeze component of
Indy itself:

 

http://www.indyproject.org/docsite/html/frames.html?frmname=topic
http://www.indyproject.org/docsite/html/frames.html?frmname=topicfrmfile=i
ndex.html frmfile=index.html

 

NOTE: I do all my Indy work in threads so have no direct experience of using
AntiFreeze, I just knew it existed.

 

I hope it helps. 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jeremy Coulter
Sent: Tuesday, 12 July 2011 14:36
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Email/SMTP code

 

Indy works, but I hate the way it hold up your app. while it sends the
emails !
I dont know what it is, I have asked question, researched, all sorts of
things, but indy sending emails in apps, especially if are trying to do it
as a sperate task to the main running task AND in a thread, it still
appears to lock the app. up until its sent the email or timed out...grrr
I have ditched it now...almost

Jeremy

On Tue, Jul 12, 2011 at 2:05 PM, Stefan Mueller muell...@orcl-toolbox.com
wrote:

Most ISP's nowadays block traffic on port-25 (except to their own mail
servers). 

Helps with infected zombie computers that send out tons of SPAM mails. 

 


Regards,
Stefan

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of John Bird
Sent: Tuesday, July 12, 2011 10:47 AM


To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Email/SMTP code

 

Anyone got a recommendation for the best (free) code/samples to drive Indy10
for sending an email with attachment

 

-Indy10.2.3

-Send attachment

-SMTP server and email addresses will be known

 

I have tried a couple (eg AtoZed SendMail example) but it seems to time out
connecting to the SMTP 

 

John

 


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Variable in String

2011-06-28 Thread Jolyon Smith
Well, setting aside the obfuscation of burying the real work of the routine as 
a side effect of code that exists merely to provide the scaffolding required to 
make that call, this code actually contains an error:

 

   setlength(temp, 100); //has to be big enough first

   setlength(temp, getEnvironmentVariable(PChar('USERNAME'), PChar(temp), 
length(temp)));

 

Since GetEnvironmentVariable() works with a plain null terminated buffer, the 
length of the buffer that you indicate in the call to it needs to reflect the 
expected presence of that terminator in the buffer.  But the null terminator on 
a String type variable is implicit, and not part of the payload and so not 
reflected in the length.

 

If the USERNAME were exactly 100 characters in length, your call to 
GetEnvironmentVariable() would fail, even though the buffer you are passing is 
actually the right size.

 

i.e.  you should actually call

 

   getEnvironmentVariable(PChar('USERNAME'), PChar(temp), length(temp) + 1)

 

This to my mind perfectly illustrates the problem: treating one type (a string) 
as if it were another in a situation where the differences are actually 
important.

 

Passing a String value to an external routine that simple READS from a null 
terminated buffer is much more straightforward and less error prone (imho – due 
to being reminded of what you are working with by the very nature of what you 
are working with) than trying to pass a pointer which is actually an offset 
into a complex String type to a function that expects to modify a plain null 
terminated buffer.

 

When reading from a string, the payload can be safely naively regarded as a 
null terminated buffer by a function that is unaware of the greater complexity 
of the type of value it is actually being passed.

 

But when writing to a null terminated buffer, there be dragons when that buffer 
isn’t just a null terminated buffer but actually the payload of a far more 
complex type.

 

 

If an external routine expected a pointer to an unsigned 32 bit value I doubt 
you would consider it sensible to contrive to pass a pointer to an signed 
16-bit variable, even if you always got the desired results (at least, up to 
now... ).  J

 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of John Bird
Sent: Wednesday, 29 June 2011 13:19
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Variable in String

 

Jolyon I imagine you have an opinion on doing this your way rather than like 
this example below – I would be interested in hearing your reasoning.

 

A similar example – this is the sort of code I have been using

 

setlength(temp, 100); //has to be big enough first

setlength(temp, getEnvironmentVariable(PChar('USERNAME'), PChar(temp), 
length(temp)));

 

 

John

 

 

From: Jolyon Smith mailto:jsm...@deltics.co.nz  

Sent: Monday, June 27, 2011 10:07 AM

To: 'NZ Borland Developers Group - Delphi List' mailto:delphi@delphi.org.nz  

Subject: Re: [DUG] Variable in String

 

Sorry Bob, I meant to include an example of your code tweaked to use “raw” a 
char array with the Windows API routine.  Here it is (this version displays 
results rather than storing in a variable, but you get the idea J ) :

 

var

  dir: array of Char;

  s: String;

begin

  s := ‘’;

 

  SetLength(dir, MAX_PATH + 1);

  if Succeeded(SHGetFolderPath(0, CSIDL_Program_Files, 0, 0, @dir[0])) then

s := PChar(dir);

 

  ShowMessageFmt(s + ' (%d chars)', [Length(s)]);

 

  // Outcome:  s has both the right length *and* is null terminated correctly

end;

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of Bob Pawley
Sent: Monday, 27 June 2011 08:58
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Variable in String

 

Hi Jolyon

 

I was wondering if my problem is a conflict between how I derive the value of 
the variable (PAnsiChar).

 

Here is the code for doing that.

 

SetLength(sDir, MAX_PATH);

ZeroMemory(@sDir[1], MAX_PATH);

if Succeeded(SHGetFolderPath(0, CSIDL_Program_Files, 0, 0, PAnsiChar(sDir))) 
then

FW_Path := sDir;

 

Bob

 

From: Jolyon Smith mailto:jsm...@deltics.co.nz  

Sent: Wednesday, June 22, 2011 3:49 PM

To: 'NZ Borland Developers Group - Delphi List' mailto:delphi@delphi.org.nz  

Subject: Re: [DUG] Variable in String

 

Don’t quote FW_Path element of the program path – you need to quote the entire 
path AND program file name when/if any part of the path or the filename itself 
does – or may – contain spaces:

 

e.g.   “path a\sub a\sub b\prog.exe”

 

not   “path a”\sub\prog.exe

 

 

So in your case, this should do the trick:

 

   FW_Path := X;  

   DXF := openDialog1.FileName;

   ProgramName := ‘”’ + FW_Path + '\FWTools2.4.7\bin\ogr2ogr” -f PostgreSQL 
PG:host=192 user=postgres dbname=E5R password= '+ DXF +' 
-nln Import_Process';

   ShowMessage(ProgramName);

 

 

hth

Re: [DUG] Variable in String

2011-06-26 Thread Jolyon Smith
There isn’t really enough information to go on here to say for sure what your 
problem is.  “ProgramName” doesn’t “see” anything.  What you use ProgramName 
with is more relevant (i.e. what some other function “sees” ProgramName as 
containing.

 

If the value of FW_Path contains a null character and if the function you pass 
ProgramName to is dealing with null terminated strings, then it will consider 
the value of the string to be terminated by that null char, regardless of the 
actual length of the string.

 

Demonstration:

 

var

  s: String;

  msg: String;

begin

  s   := 'hat'#0;   //  the null char is part of the string (in addition to 
the null char marking the END of the string

  msg := 'That''s a nice ' + s + ' you are wearing';

 

  ShowMessage('Length of message = ' + IntToStr(Length(msg)) + ' chars');

  ShowMessage(msg);

end;

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of Bob Pawley
Sent: Monday, 27 June 2011 05:56
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Variable in String

 

Hi Jolyon

 

Double quoting the path doesn’t seem to work.ProgramName := ‘”’ + FW_Path + 
'\FWTools2.4.7\bin\ogr2ogr” -f PostgreSQL PG:host=192 
user=postgres dbname=E5R password= '+ DXF +' -nln Import_Process';

 

All that ProgramName sees is the string variable FW_Path. Even with the +, all 
of the remaining string is ignored.

 

Bob

 

 

 

From: Jolyon Smith mailto:jsm...@deltics.co.nz  

Sent: Wednesday, June 22, 2011 3:49 PM

To: 'NZ Borland Developers Group - Delphi List' mailto:delphi@delphi.org.nz  

Subject: Re: [DUG] Variable in String

 

Don’t quote FW_Path element of the program path – you need to quote the entire 
path AND program file name when/if any part of the path or the filename itself 
does – or may – contain spaces:

 

e.g.   “path a\sub a\sub b\prog.exe”

 

not   “path a”\sub\prog.exe

 

 

So in your case, this should do the trick:

 

   FW_Path := X;  

   DXF := openDialog1.FileName;

   ProgramName := ‘”’ + FW_Path + '\FWTools2.4.7\bin\ogr2ogr” -f PostgreSQL 
PG:host=192 user=postgres dbname=E5R password= '+ DXF +' 
-nln Import_Process';

   ShowMessage(ProgramName);

 

 

hth

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of Bob Pawley
Sent: Thursday, 23 June 2011 10:30
To: DUG
Subject: [DUG] Variable in String

 

Hi

 

I’m having trouble with using a variable in a string path.

 

When I use the variable FW_Path := ‘C:\Program Files (x86)’ with two single 
quotes, the following works well and ShowMessage(ProgramName); displayed the 
full path .

 

When I reference FW_Path to a variable X I get an error returned “Can Not 
run” The variable  X is returned as C:\Program Files (x86) without quotes. 

 

I attempted Quote String and got the following ‘C:\Program Files (x86) with one 
single quote.

 

Both cases return the same error - and in both cases ShowMessage(ProgramName); 
displayed none of the path after C:\Program Files (x86).

 

Help would be appreciated.

 

Bob

 

   FW_Path := QuoteStr(X);  

  DXF  := openDialog1.FileName;

  ProgramName :=FW_Path+'\FWTools2.4.7\bin\ogr2ogr -f PostgreSQL 
PG:host=192 user=postgres dbname=E5R password= '+ DXF +' 
-nln Import_Process';

   ShowMessage(ProgramName);

  _  

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Variable in String

2011-06-26 Thread Jolyon Smith
Aha!  J  Quite possibly...

 

SetLength(sDir, MAX_PATH);

ZeroMemory(@sDir[1], MAX_PATH);

if Succeeded(SHGetFolderPath(0, CSIDL_Program_Files, 0, 0, PAnsiChar(sDir))) 
then

FW_Path := sDir;

 

Yes, you are setting the string length to MAX_PATH, so any string data with a 
length of LESS than MAX_PATH will contain null chars after the actual string 
value as part of the string value data itself!

 

If you inspect the value of sDir it will appear to be correct, because the code 
displaying the string contents will almost certainly be treating the first NULL 
it finds as the string terminator, irrespective of the string length you have 
set, but when you try to combine that string with other strings using the 
Delphi string handling functions, the explicit LENGTH of the string will be 
used, not the null terminator:

 

So, building on my previous example:

 

 s := ‘hat’#0#0;

 s := s + ‘ and gloves’;

 

// At this point “s” contains:   ‘hat’#0#0’ and gloves”

 

 

To fix your code you have at least two options:

 

1)  After getting the contents of sDir, call SetLength() again and set the 
actual length of the string

2)  Use a char array in the windows API call and exploit the RTL support 
for auto conversion of PChars to and from strings

 

I myself would go with the latter.  The Windows API is designed to work with 
“raw” pointers to char arrays – co-ercing functions that *modify* buffer 
contents to accept Delphi strings makes me nervous (functions that just accept 
string data without modifying it are a different matter, and I have no trouble 
simply casting a string to a PChar in those circumstances).  J

 

 

Also, I am guessing from your use of PANSIChar that you are using Delphi 2007 
or earlier – this code will fail if/when you move to Delphi 2009 as the 
SHGetFolderPath() routine in those later versions will expect/require a 
PWIDEChar param.

 

The easiest way to deal with this is to simply use PChar instead – in D2007 
PChar = PANSIChar and in D2009+ PChar = PWideChar.  But, to further protect 
yourself, the ZeroMemory() call should use MAX_PATH * SizeOf(Char) to indicate 
the number of zero bytes to write (Char can change size depending on Delphi 
versions).

 

Having said that, I suspect (but am not 100% sure) that the ZeroMemory() call 
is redundant in this case.

 

 

Alternatively you could explicitly use the ANSI version of SHGetFolderPath 
(SHGetFolderPathA) with a PANSIChar, but this is likely to get even messier 
with the use of String in the Delphi Unicode compatibility arena, since a 
“String” cannot be typecast as a PANSIChar in D2009+.

 

 

I also think you may need to +1 on MAX_PATH to allow for the null terminator 
that the Windows API is most likely to include in any return value.

 

 

Whew – that’s quite a start to a Monday morning.  J

 

hth

 

Jolyon

 

 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of Bob Pawley
Sent: Monday, 27 June 2011 08:58
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Variable in String

 

Hi Jolyon

 

I was wondering if my problem is a conflict between how I derive the value of 
the variable (PAnsiChar).

 

Here is the code for doing that.

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Variable in String

2011-06-26 Thread Jolyon Smith
Sorry Bob, I meant to include an example of your code tweaked to use “raw” a 
char array with the Windows API routine.  Here it is (this version displays 
results rather than storing in a variable, but you get the idea J ) :

 

var

  dir: array of Char;

  s: String;

begin

  s := ‘’;

 

  SetLength(dir, MAX_PATH + 1);

  if Succeeded(SHGetFolderPath(0, CSIDL_Program_Files, 0, 0, @dir[0])) then

s := PChar(dir);

 

  ShowMessageFmt(s + ' (%d chars)', [Length(s)]);

 

  // Outcome:  s has both the right length *and* is null terminated correctly

end;

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of Bob Pawley
Sent: Monday, 27 June 2011 08:58
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Variable in String

 

Hi Jolyon

 

I was wondering if my problem is a conflict between how I derive the value of 
the variable (PAnsiChar).

 

Here is the code for doing that.

 

SetLength(sDir, MAX_PATH);

ZeroMemory(@sDir[1], MAX_PATH);

if Succeeded(SHGetFolderPath(0, CSIDL_Program_Files, 0, 0, PAnsiChar(sDir))) 
then

FW_Path := sDir;

 

Bob

 

From: Jolyon Smith mailto:jsm...@deltics.co.nz  

Sent: Wednesday, June 22, 2011 3:49 PM

To: 'NZ Borland Developers Group - Delphi List' mailto:delphi@delphi.org.nz  

Subject: Re: [DUG] Variable in String

 

Don’t quote FW_Path element of the program path – you need to quote the entire 
path AND program file name when/if any part of the path or the filename itself 
does – or may – contain spaces:

 

e.g.   “path a\sub a\sub b\prog.exe”

 

not   “path a”\sub\prog.exe

 

 

So in your case, this should do the trick:

 

   FW_Path := X;  

   DXF := openDialog1.FileName;

   ProgramName := ‘”’ + FW_Path + '\FWTools2.4.7\bin\ogr2ogr” -f PostgreSQL 
PG:host=192 user=postgres dbname=E5R password= '+ DXF +' 
-nln Import_Process';

   ShowMessage(ProgramName);

 

 

hth

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of Bob Pawley
Sent: Thursday, 23 June 2011 10:30
To: DUG
Subject: [DUG] Variable in String

 

Hi

 

I’m having trouble with using a variable in a string path.

 

When I use the variable FW_Path := ‘C:\Program Files (x86)’ with two single 
quotes, the following works well and ShowMessage(ProgramName); displayed the 
full path .

 

When I reference FW_Path to a variable X I get an error returned “Can Not 
run” The variable  X is returned as C:\Program Files (x86) without quotes. 

 

I attempted Quote String and got the following ‘C:\Program Files (x86) with one 
single quote.

 

Both cases return the same error - and in both cases ShowMessage(ProgramName); 
displayed none of the path after C:\Program Files (x86).

 

Help would be appreciated.

 

Bob

 

   FW_Path := QuoteStr(X);  

  DXF  := openDialog1.FileName;

  ProgramName :=FW_Path+'\FWTools2.4.7\bin\ogr2ogr -f PostgreSQL 
PG:host=192 user=postgres dbname=E5R password= '+ DXF +' 
-nln Import_Process';

   ShowMessage(ProgramName);

  _  

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Variable in String

2011-06-22 Thread Jolyon Smith
Don’t quote FW_Path element of the program path – you need to quote the entire 
path AND program file name when/if any part of the path or the filename itself 
does – or may – contain spaces:

 

e.g.   “path a\sub a\sub b\prog.exe”

 

not   “path a”\sub\prog.exe

 

 

So in your case, this should do the trick:

 

   FW_Path := X;  

   DXF := openDialog1.FileName;

   ProgramName := ‘”’ + FW_Path + '\FWTools2.4.7\bin\ogr2ogr” -f PostgreSQL 
PG:host=192 user=postgres dbname=E5R password= '+ DXF +' 
-nln Import_Process';

   ShowMessage(ProgramName);

 

 

hth

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of Bob Pawley
Sent: Thursday, 23 June 2011 10:30
To: DUG
Subject: [DUG] Variable in String

 

Hi

 

I’m having trouble with using a variable in a string path.

 

When I use the variable FW_Path := ‘C:\Program Files (x86)’ with two single 
quotes, the following works well and ShowMessage(ProgramName); displayed the 
full path .

 

When I reference FW_Path to a variable X I get an error returned “Can Not 
run” The variable  X is returned as C:\Program Files (x86) without quotes. 

 

I attempted Quote String and got the following ‘C:\Program Files (x86) with one 
single quote.

 

Both cases return the same error - and in both cases ShowMessage(ProgramName); 
displayed none of the path after C:\Program Files (x86).

 

Help would be appreciated.

 

Bob

 

   FW_Path := QuoteStr(X);  

  DXF  := openDialog1.FileName;

  ProgramName :=FW_Path+'\FWTools2.4.7\bin\ogr2ogr -f PostgreSQL 
PG:host=192 user=postgres dbname=E5R password= '+ DXF +' 
-nln Import_Process';

   ShowMessage(ProgramName);

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] FW: Web development

2011-06-06 Thread Jolyon Smith
 I think you're probably using tools like:

  print phello/p;

LOL

Well, ultimately anyone writing (emitting) HTML is using tools *exactly*
like that.

The question is, what tool do you use to create the code that ends up
emitting it, if you don't emit it directly yourself ?


The problem I (personally) have with HTML is that it has been co-opted into
a role for which it was never originally designed.  It is a document markup
language that has been strong armed into a role as a UI presentation
technology.

It sucks in that capacity and the solution has always been to shimmy some
JavaScript in there on the clientside and pile frameworks and codegen on top
of it on the server side to try and present a development platform that
doesn't suck as much.  The problem this creates of course is that whilst you
are then using the universal and platform independent HTML thereby avoiding
lock-in, you are instead locked into your chosen/adopted framework/codegen
tool.

(Flash/Silverlight/Java work slightly differently of course, presenting an
alternative that exists essentially *inside* the HTML without using HTML
itself - all of these suffer the same problem - platform restrictions.  None
of them have the universality of HTML and also result in lock-in).


 But on the specifics of checking your HTML: check the W3C validator
 service.

Again, this is after the fact debugging.

I don't have to submit my Pascal code to the P3C validator service to check
it's validity.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] FW: Web development

2011-06-06 Thread Jolyon Smith
Not just J++ .NET was the EEE for Java.  They had to settle for EE-ASLJC

Embrace
Extend
Aw shucks, let's just co-exist

:)

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] FW: Web development

2011-06-06 Thread Jolyon Smith
 It's about complaining that an API call on Windows
 95 works differently from Windows 8.

Except that by and large they don't - in fact, the complaint is often quite
the reverse (Why don't MS fix/improve this API in Windows 8? - answer:
because it has to continue to work the same in all Windows to avoid breaking
anything).


 All these things are, to a very large extend, solved by the frameworks
 people use.

Which in turn create their own problems - either shortcomings in the
framework or locking in to a specific technology (and being beholden to/at
the mercy of the framework provider).


 Obviously you can try to reinvent the wheel and discover all the
 incompatibilities yourself

Or how about this for a crazy idea... how about getting everyone to sing
from the same stylesheet and FIXing the inconsistencies once and for all ...
you know, what might be considered REAL progress, rather than just
continually shovelling out new features that have all NEW inconsistencies...
?

Just a thought.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] FW: Web development

2011-06-06 Thread Jolyon Smith
I took those observations to mean not that the intranets themselves rely
on IE6 but that they are using web apps that don't behave properly in the
new browsers.

Or perhaps more accurately that they behave properly in the new browsers
where proper is defined by the W3C, whereas proper used to be defined by
the specification of the web app itself and the behaviour elicited in the
browser by the HTML/CSS/JavaScript.


Once upon a time, that old software for which there is no excuse to be
using it used to be the cutting edge that people scoffed at you if you
/weren't/ using it and were using what was *then* considered the old
software.

And I think you missed the point when observing that new browsers are
free.


The problem isn't the cost of upgrading the browsers. 

The problem is that once you have upgraded all your clients to the new
browser, your *apps* stop working, so you have to upgrade those apps and the
chances are that will incur direct and indirect costs not to mention
disruption and downtime to some extent.


Even for the browser upgrades, I suspect there is still a cost because not
all *users* are competent to upgrade themselves - we who live and breath IT
tend to forget that many people are confused by (and can royally screw up)
what we take for granted.  Plus, in this day and age, it's pretty certain
that users won't be able to just upgrade their browser software without
central IT/admin support, something that those concerned with security
questions would surely characterise as a good thing.  After all, we can't
have everyone just able to willy nilly install/upgrade software on their
workstations...

Those who live by the sword etc...  ;)



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of John Bird
Sent: Tuesday, 7 June 2011 13:43
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] FW: Web development

I am mystified why any government organisations would be stuck on IE6 given 
its the best door for any hacker wanting to intrude into a system.   Its how

Google was penetrated 18 months ago - hackers found workstations that had to

use IE6 for historical reasons (reasons that were not all that good)

I was astonished about 3 years ago to see an unnamed government department 
workstation using a pre-release version of Firefox, ie it was so old it was 
basically the old Netscape - with diagonal arrow buttons and all, probably 
something like v0.5 and from probably 2003.

Surely any government IT department should not be relying on such old 
unpatched software if even to cover their own backsides when the inevitable 
problem occurs - its not a budget issue if free secure browsers abound.

If they have to use IE6 for intranets, do they prevent IE6 from accessing 
the outside internet?   And why can they not use later browsers for 
Intranets?

John

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] FW: Web development

2011-06-03 Thread Jolyon Smith
No, I use Chrome+ (not Google Chrome, but the proper one).

The tools I was referring to were the design and coding tools which are
like going back 20 years in terms of development practices, cos the only way
to know if your code works is to run it, and if it doesn't work you
can't step thru your HTML/CSS to see why things aren't aligned correctly
or working how you (or the standards) expect things to.

That of course is true of all declarative programming languages.

Inspect Element is good for seeing what HTML you or your framework has
spat out, but it doesn't help you spit out the right HTML in the first
place.


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Stefan Mueller
Sent: Friday, 3 June 2011 23:49
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] FW: Web development

I guess Jolon is still using MSIE, right? .. The developer tools that are
built into Google Chrome browser for example are quite good for debugging
HTML/CSS(and even JavaScript). Just right click on the elements whose markup
you want to see and say inspect and it will show you all the code and css
applied to the element with a nice little editor that allows you to play
with and modify each property on the fly. Also, developer tools such as MS
Visual Studio (I am doing mostly ASP.NET MVC stuff lately) aren't too bad
either with features such as autocomplete/autolookups/warnings for
non-closed html-tags and invalid markup/attributes, etc  that makes
writing valid HTML/CSS pretty easy. 

As for other opinions on this whole website development talk: I definitely
would stay away from writing websites in Delphi. It might be ok to use if
all you need is a small quick and dirty inhouse webapp or prototype .. but
what you gain in familiarity by using Delphi is quickly offset by
disadvantages. PHP/.NET/RoR have huge communities of developers - if you
have a problem or need some example code/library then just google for it and
you will most likely find something - whereas for Delphi it's mostly up to
you to figure it out  and then there is the thing about maintenance if
you leave the company, will they still be able to find a Delphi developer to
maintain and lock after the website?). I think it's better to go with more
popular web development languages. 

Personally I am really happy developing with the ASP.NET MVC framework.
Never really liked traditional ASP.NET WebForms (viewstate is just such a
bloat and if you try to AJAX'ify the website things can quickly become very
complicated and badly performing) - The new ASP.NET MVC on the other hand is
absolutly fantastic in this regard and a joy to work with - the seperation
of Data/GUI/Logic  (MVC development pattern) is much better and more modular
then the intermingled mess ASP.NET WebForms was. 

I also heard a lot of good about Ruby on Rails. As far as development goes
it sounds easy and fast - but seems to have a bit of scaling problems (if
your projects require that, most don't). 

PHP is probably the most popular web-language, but never really got to like
it. I don't like weakly typed script languages that just break during
execution ... I like my code to be compiled and raise errors during
compilation time if I made some mistake - makes developing/changing existing
code/database tables so much easier and less error prone if you have
everything strong typed.   ASP.NET also has a couple of goodies that I
probably would miss a lot in PHP  - like, automatic XSS injection
prevention, URL-Rewriting, Localisation, Authorization (user login, roles,
etc), HttpModules that allow you to plug directly into the web execution
pipeline of the IIS webserver, etc. ... I think the ASP.NET framework makes
writing secure and high performing websites a lot easier then PHP does.
 
 
Regards,
Stefan 
 


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Berend de Boer
Sent: Friday, June 03, 2011 6:44 PM
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Web development

 Jolyon == Jolyon Smith jsm...@deltics.co.nz writes:

Jolyon but in the end got fed up with wrestling with HTML and CSS
Jolyon - working with those technologies is like stepping back in
Jolyon time in terms to tools and debugging etc, 

Really I would say that the available tools and capabilities are light
years beyond what's offered.

And we're not even talking about the ease with which you create very nice
interfaces, which would be impossible to create any other way.

--
All the best,

Berend de Boer


  --
  Awesome Drupal hosting: https://www.xplainhosting.com/
___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ

Re: [DUG] COM issue

2011-06-02 Thread Jolyon Smith
First up, if both are running as separate processes then nothing is in the
same space as such.

It's been a long time since I did any detailed COM work so I'm a bit rusty,
but I think the key to this will be the threading and instancing model your
COM server is employing in the A process and re-entrancy issues in the A
process.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Robert Martin
Sent: Friday, 3 June 2011 12:06
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] COM issue

Hi

I have app A that runs (using create process) app B.  App B at one point 
tries to use COM to access app A.  This freezes.  When app B is run 
manually it works fine.  I assume this has something to do with B 
running in the same 'space' as A.  I have tried

CreateProcess(Nil, pChar(appName + ' AUTORUN'), nil, nil, false, 
DETACHED_PROCESS + NORMAL_PRIORITY_CLASS, nil, nil, startinfo, 
proc_info)  False)

But to no avail.

Any suggestions?

Thanks
Rob

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Web development

2011-06-02 Thread Jolyon Smith
I have been thinking about this myself.

I started trying to get to grips with PHP, but in the end got fed up with
wrestling with HTML and CSS - working with those technologies is like
stepping back in time in terms to tools and debugging etc, and I found it
frustrating and tiresome.

So at that point I decided that the next major web project I would do I
would tackle very differently:

   1. Build the functionality as a web service using 
  Delphi - something I can then host in Azure or Amazon EC2
  if I wish

   2. Build a Delphi desktop app to exercise and test my 
  service (and perhaps provide a desktop app GUI for 
  the users)


This allows me to leverage my expertise in Delphi and focus very much on the
functionality of the web site without.  Then, once enough of the web site
functionality is in place in the web service...

   3. Hire a web designer co. to build the web *GUI* 

   4. Ditto for an Android/iPhone app if appropriate



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Steve Peacocke
Sent: Friday, 3 June 2011 16:35
To: List NZ Borland Developers Group - Delphi
Subject: [DUG] Web development

Friday question (or Can of Worms)

Hey guys, I'm looking at getting into serious web development. I used to do
this a number of years ago with standard Delphi 6 at that time. 

I have Delphi 7

I've been looking seriously at Ruby on Rails but that would mean learning a
whole new language and process  

There has been a lot of talk of the validity of using IntraWeb with Delphi. 

Perhaps others have a better suggestion? What do others use? Should I bite
the bullet and jump to RoR or upgrade to D2011 or something else?

Steve 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] File/Dir Open at My Computer

2011-05-23 Thread Jolyon Smith
The JVCL has a self-building installer.  Simply run install.bat from the JCL 
folder - this should build and run the installer which in turn - iirc - will 
identify which versions of Delphi you have installed and present a tab of 
installation settings for each Delphi version.

It should all be very straightforward.


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of John Bird
Sent: Tuesday, 24 May 2011 15:49
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] File/Dir Open at My Computer

Have looked at the MegaDemo program and downloaded the whole JVCL V3.40 and 
looks promising -  and arrived at the same point I recall being at in the 
past - trying to figure out how to install it as installation information is 
scarce...   - do you have either info or a link to guide to install on 
D2007?



John

-Original Message- 
From: Pawel Rewak
Sent: Tuesday, May 24, 2011 11:02 AM
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] File/Dir Open at My Computer

Have a look at the JEDI VCL - TJvDriveCombo (in the Jv Lists, Combos,
Trees tab) does this much better and looks good too.


On Mon, May 23, 2011 at 6:36 PM, John Bird johnkb...@paradise.net.nz 
wrote:
 Well it is what I was looking for but I probably won’t use it as it is
 incredibly ugly – as in it has Windows 3.1 look.   Is this really the most
 modern version of selecting a drive I can use on Windows 7?

 John
 From: Rohit Gupta
 Sent: Monday, May 23, 2011 2:37 PM
 To: NZ Borland Developers Group - Delphi List
 Subject: Re: [DUG] File/Dir Open at My Computer

 John,

 the TDriveCombobox should do the trick.



 On 20/05/2011 1:35 a.m., John Bird wrote:

 I want to bring up a dialog to select a drive (Will be usually a removable
 USB drive).   Can I do this with any of the standard Delphi TOpenDialog or
 SelectDirectory etc?

 Ideally I want to bring up a dialog starting at My Computer...(D2007)

 [Aside - I know how to show My Computer by starting Windows Explorer:

 To start with my computer:

 explorer.exe /n,/e,/select, c:\

 To start with desktop:

 %SystemRoot%\explorer.exe /e,%USERPROFILE%\Desktop

 – it can show the drive but doesn’t return the drive letter to Delphi as 
 it
 comes up as a separate process of course]

 John

 __ Information from ESET NOD32 Antivirus, version of virus 
 signature
 database 6134 (20110519) __

 The message was checked by ESET NOD32 Antivirus.

 http://www.eset.com

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
 unsubscribe


 __ Information from ESET NOD32 Antivirus, version of virus 
 signature
 database 6134 (20110519) __

 The message was checked by ESET NOD32 Antivirus.

 http://www.eset.com



 --
 Regards

 Rohit Gupta
 B.E. Elec., M.E., Mem IEEE, Mem IET
 Technical Director
 Computer Fanatics Ltd

 Tel 4892280
 Fax 4892290
 Web www.cfl.co.nz
 
 This email and any attachments contain information, which is confidential
 and may be subject to legal privilege and copyright. If you are not the
 intended recipient, you must not use, distribute or copy this email or
 attachments. If you have received this in error, please notify us
 immediately by return email and then delete this email and any 
 attachments.

 
 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
 unsubscribe

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
 unsubscribe




-- 
Regards,
Pawel Rewak
Practical Programs

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] File/Dir Open at My Computer

2011-05-23 Thread Jolyon Smith
Ah wait, I think I am thinking of the JCL.


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of John Bird
Sent: Tuesday, 24 May 2011 15:49
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] File/Dir Open at My Computer

Have looked at the MegaDemo program and downloaded the whole JVCL V3.40 and 
looks promising -  and arrived at the same point I recall being at in the 
past - trying to figure out how to install it as installation information is 
scarce...   - do you have either info or a link to guide to install on 
D2007?



John

-Original Message- 
From: Pawel Rewak
Sent: Tuesday, May 24, 2011 11:02 AM
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] File/Dir Open at My Computer

Have a look at the JEDI VCL - TJvDriveCombo (in the Jv Lists, Combos,
Trees tab) does this much better and looks good too.


On Mon, May 23, 2011 at 6:36 PM, John Bird johnkb...@paradise.net.nz 
wrote:
 Well it is what I was looking for but I probably won’t use it as it is
 incredibly ugly – as in it has Windows 3.1 look.   Is this really the most
 modern version of selecting a drive I can use on Windows 7?

 John
 From: Rohit Gupta
 Sent: Monday, May 23, 2011 2:37 PM
 To: NZ Borland Developers Group - Delphi List
 Subject: Re: [DUG] File/Dir Open at My Computer

 John,

 the TDriveCombobox should do the trick.



 On 20/05/2011 1:35 a.m., John Bird wrote:

 I want to bring up a dialog to select a drive (Will be usually a removable
 USB drive).   Can I do this with any of the standard Delphi TOpenDialog or
 SelectDirectory etc?

 Ideally I want to bring up a dialog starting at My Computer...(D2007)

 [Aside - I know how to show My Computer by starting Windows Explorer:

 To start with my computer:

 explorer.exe /n,/e,/select, c:\

 To start with desktop:

 %SystemRoot%\explorer.exe /e,%USERPROFILE%\Desktop

 – it can show the drive but doesn’t return the drive letter to Delphi as 
 it
 comes up as a separate process of course]

 John

 __ Information from ESET NOD32 Antivirus, version of virus 
 signature
 database 6134 (20110519) __

 The message was checked by ESET NOD32 Antivirus.

 http://www.eset.com

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
 unsubscribe


 __ Information from ESET NOD32 Antivirus, version of virus 
 signature
 database 6134 (20110519) __

 The message was checked by ESET NOD32 Antivirus.

 http://www.eset.com



 --
 Regards

 Rohit Gupta
 B.E. Elec., M.E., Mem IEEE, Mem IET
 Technical Director
 Computer Fanatics Ltd

 Tel 4892280
 Fax 4892290
 Web www.cfl.co.nz
 
 This email and any attachments contain information, which is confidential
 and may be subject to legal privilege and copyright. If you are not the
 intended recipient, you must not use, distribute or copy this email or
 attachments. If you have received this in error, please notify us
 immediately by return email and then delete this email and any 
 attachments.

 
 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
 unsubscribe

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
 unsubscribe




-- 
Regards,
Pawel Rewak
Practical Programs

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] File/Dir Open at My Computer

2011-05-23 Thread Jolyon Smith
Yes, I was thinking of JCL - but the JVCL has the same installer model... run 
install.bat from the jvcl root folder, and this should build and launch the 
JVCL installer.

What happens from there I don't know - as you may have guessed, I have 
previously installed the JCL but not the J*V*CL.

:)


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of John Bird
Sent: Tuesday, 24 May 2011 15:49
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] File/Dir Open at My Computer

Have looked at the MegaDemo program and downloaded the whole JVCL V3.40 and 
looks promising -  and arrived at the same point I recall being at in the 
past - trying to figure out how to install it as installation information is 
scarce...   - do you have either info or a link to guide to install on 
D2007?



John

-Original Message- 
From: Pawel Rewak
Sent: Tuesday, May 24, 2011 11:02 AM
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] File/Dir Open at My Computer

Have a look at the JEDI VCL - TJvDriveCombo (in the Jv Lists, Combos,
Trees tab) does this much better and looks good too.


On Mon, May 23, 2011 at 6:36 PM, John Bird johnkb...@paradise.net.nz 
wrote:
 Well it is what I was looking for but I probably won’t use it as it is
 incredibly ugly – as in it has Windows 3.1 look.   Is this really the most
 modern version of selecting a drive I can use on Windows 7?

 John
 From: Rohit Gupta
 Sent: Monday, May 23, 2011 2:37 PM
 To: NZ Borland Developers Group - Delphi List
 Subject: Re: [DUG] File/Dir Open at My Computer

 John,

 the TDriveCombobox should do the trick.



 On 20/05/2011 1:35 a.m., John Bird wrote:

 I want to bring up a dialog to select a drive (Will be usually a removable
 USB drive).   Can I do this with any of the standard Delphi TOpenDialog or
 SelectDirectory etc?

 Ideally I want to bring up a dialog starting at My Computer...(D2007)

 [Aside - I know how to show My Computer by starting Windows Explorer:

 To start with my computer:

 explorer.exe /n,/e,/select, c:\

 To start with desktop:

 %SystemRoot%\explorer.exe /e,%USERPROFILE%\Desktop

 – it can show the drive but doesn’t return the drive letter to Delphi as 
 it
 comes up as a separate process of course]

 John

 __ Information from ESET NOD32 Antivirus, version of virus 
 signature
 database 6134 (20110519) __

 The message was checked by ESET NOD32 Antivirus.

 http://www.eset.com

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
 unsubscribe


 __ Information from ESET NOD32 Antivirus, version of virus 
 signature
 database 6134 (20110519) __

 The message was checked by ESET NOD32 Antivirus.

 http://www.eset.com



 --
 Regards

 Rohit Gupta
 B.E. Elec., M.E., Mem IEEE, Mem IET
 Technical Director
 Computer Fanatics Ltd

 Tel 4892280
 Fax 4892290
 Web www.cfl.co.nz
 
 This email and any attachments contain information, which is confidential
 and may be subject to legal privilege and copyright. If you are not the
 intended recipient, you must not use, distribute or copy this email or
 attachments. If you have received this in error, please notify us
 immediately by return email and then delete this email and any 
 attachments.

 
 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
 unsubscribe

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
 unsubscribe




-- 
Regards,
Pawel Rewak
Practical Programs

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] June 6th

2011-05-16 Thread Jolyon Smith
 

Oh heck, well spotted.

 

Shurely shome mishtake ?

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of John Bird
Sent: Tuesday, 17 May 2011 11:17
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] June 6th

 

Monday 6th is Queens birthday holiday in case anyone has not twigged.   Is
that likely to affect travel for anyone from out of town?  Or availability
of anyone who might be on holidays otherwise?   I am from Chch so
availability of cheap flights is important.

 

John

 

 

From: Cameron Hart mailto:cameron.h...@flowsoftware.co.nz  

Sent: Monday, May 16, 2011 10:04 PM

To: NZ Borland Developers Group - Delphi List mailto:delphi@delphi.org.nz


Subject: Re: [DUG] June 6th

 

Is that intentional to be on Queens birthday to be outside of work hours?

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Richard Vowles
Sent: Monday, 16 May 2011 9:49 p.m.
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] June 6th

 

The Delphi day will be June 6th, thats what Embarcadero have booked. They
have a list of topics and I'll ping Jolyon privately. I'll organise to leave
the last hour of the time for people who want to come up with tips and
tricks, so start preparing now!

Richard

-- 
---
Richard Vowles, Technical Advisor
Developers Inc Ltd
web. http://www.developers-inc.co.nz
mob. +64-275-467747 
twitter. developersinc



  _  

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] API to Windows explorer

2011-05-12 Thread Jolyon Smith
I think perhaps the point (being made quite lightly imho) was that 
improvisation - kiwi or otherwise - is not a laudible substitute FOR a robust 
disaster recovery plan.  If nothing else positive comes from events in ChCh, it 
should at least be a wake up call for businesses who are choosing to worry 
about such things only if/when they happen (and essentially are banking on 
never having to worry about it at all).

In this case, a bit of ingenuity and quick thinking (the UPS wasn't going to 
run forever) saved the day - it's a neat story, but it's not a cool idea for 
emergency backup.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of John Bird
Sent: Thursday, 12 May 2011 22:18
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] API to Windows explorer

Good grief lighten up! From what I heard - using a WiFi connection from the 
street was not a plan for disaster recovery, it was good kiwi improvisation.

The point I was making was that in Christchurch in 2011, as happened in 
Greymouth around 1986 with floods,   I dealt with firms where the office was 
destroyed, and the supposedly safe offsite backups also was unavailable.

In Christchurch in an equally damaged and inaccessible network providers 
office, in Greymouth in a flooded bank vault.

Extra redundant backup options are a great idea.

John


Aside – I heard of one firm that had a server and a Wifi router on a UPS
 that had their network guy park outside with a wifi laptop and copy stuff
 from the server before the UPS died.   Couldn’t go in because the the
 front of the building had fallen out into the street.   Thats a cool idea
 for an emergency backup after the event.

 John

With respect, it's one of the silliest ideas I've heard in a long time
because:
a.) if your business continuity depends on that data being available then
you need to take backup's and DR seriously, and
b.) because endangering your staff like this shows you really don't get
it, and
c.) sitting outside a collapsed building will block access  needed by the
emergency services, and
d. etc

Cheers

David


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] API to Windows explorer

2011-05-12 Thread Jolyon Smith
You mean this article ?:

  http://blogs.technet.com/b/markrussinovich/archive/2008/02/04/2826167.aspx



Mark Russinovitch says in that very article:

  The changes apply both to Explorer copies as well as 
   to ones initiated by applications using the CopyFileEx API


So just call CopyFileEx()... no need to try to hook into Windows Explorer.

(Is there a let me read that article for you equivalent to Let me google
that for you ?)

;)



 

-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of John Bird
Sent: Friday, 13 May 2011 13:35
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] API to Windows explorer

Now back to the original question - is there an API to Windows Explorer to 
copy files?


(
I have a nice component HAHFindFile to build the list of folders and files 
in a stringlist, and a routine using TFilestream to do the copy, but I was 
thinking its almost certainly going to be faster and more robust if there 
were an API to Windows Explorer to pass the source and destination folders 
to, and some parameters (eg copy only newer).

I read technical articles from Mark Russinovitch about how Vista and Windows

7 optimise copying files over a network, varying the block sizes etc and 
using caching so I would expect an OS-level API to be much faster.

Does anyone know if such an API exists, and are there options to eg copy 
only later files.  I saw some hints in Google about a COM interface to 
Windows Explorer, but no details if it has options like I am interested in.)



John 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Closing a modal form from code in it

2011-05-07 Thread Jolyon Smith
I'm pretty sure ModalResult is checked by, and is the exit condition for,
the message loop within the ShowModal function itself, so it is checked as
long as Windows messages are being handled by your process correctly.

 

If you call Close without setting ModalResult then the form will indeed
close but the message loop in ShowModal will never terminate and so that
function will never return.

 

Equally, setting ModalResult will cause the form to close without having to
call Close yourself, if showing modally.

 

Long and short - set ModalResult with an appropriate value that it not
mrNone to close a form that is being shown modally.

 

J

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Alistair Ward
Sent: Saturday, 7 May 2011 23:08
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Closing a modal form from code in it

 

Have you tried setting modalResult?

 

The usual way of closing a modal dialog is:

 

modalResult := mrOK;

 

somewhere in an event handler.

 

This is checked (from long ago memory) after most event handlers. The
exception (I think, from the same vague memories) is the FormShow event
itself.

 

Cheers,

Alistair.

On 7 May 2011 21:46, John Bird johnkb...@paradise.net.nz wrote:

I have a modal form that gets called to do some processing (involving Indy),
and when it has finished if all is OK I am trying to get the end code after
the Indy stuff to show status (which it does) and close the form (which it
doesn't).

 

The statement form2.close is being executed but is not closing the form.

What can stop a modal form being closed,  or any ideas what I need to do to
get it to close by itself when its finished?

 

(The form is opened by form2.ShowModal

and the code is in a procedure executed from the OnActivate event  - the
Show event also doesn't work)

 

John


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Auckland mini-conference

2011-05-05 Thread Jolyon Smith
We're using FinalBuilder, tho not much anger involved - it just works (well,
apart from when it stopped working with SVN due to a change in the format of
the results returned by the SVN client, but they soon fixed that and iirc
there was a workaround in the meantime, the details of which I forget).  J

 

 

Anyhoo, the real point I was getting to is that we've hooked our
FinalBuilder builds into FogBugz which we use for our development case list
and involved extending the query axes in FogBugz (with a handful of lines of
C# code) to allow us to retrieve release notes entered against development
cases with reference to SVN repository versions.

 

This allows our builds to be released with release notes extracted from
FogBugz based on which cases have SVN commits since the previous build - a
capability that is strangely missing in the SVN integration provided in
FogBugz.

 

 

We also have a quite sophisticated parameter driven build script which
allows us to use the same script for nightly beta/test builds as well as
release builds and which even takes care of things like branching in SVN for
us when we embark on a new product version.

 

 

Assuming we can find the time to put a presentation together before this
event is scheduled, would how we achieved any/some/all of that be something
of interest, maybe ?

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Richard Vowles
Sent: Friday, 6 May 2011 15:58
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Auckland mini-conference

 

Hi all,

Embarcadero and us are trying to organize a mini-conference focused around
the Delphi community - but where not just Delphi is the focus. I was
thinking there is a wealth of experience out there on all sorts of topics -
from build, deploy, configuration, testing, tips and techniques, etc. So
this is really a call to see if there is anyone in the community who would
like to speak/present stuff they do. Damien is coming out from Australia -
and he has a 1/2 day of material he can cover - I have asked Embarcadero if
we can extend it to a full day and add in content from you guys. Of course,
if no-one wants to present, we'll stick with Damien's presentations.

Personally I'm particularly interested in people who would be using
FinalBuilder (the full version - in anger), AQTime or similar for functional
testing, and mechanisms for unit testing.

You can let me know here or privately - keeping the discussion in the open I
think would be good as we could narrow down topics or get people who would
present together on topics. 

Looking forward to being inundated!

Richard

-- 
---
Richard Vowles, Technical Advisor
Developers Inc Ltd
web. http://www.developers-inc.co.nz
mob. +64-275-467747 
twitter. developersinc




___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Delphi version for 64 bit

2011-05-02 Thread Jolyon Smith
 You can assume that this version will be out later this year.

You can assume anything you want, that won't necessarily make it so.  ;)

To be completely accurate, they have *announced* a 64-bit beta but (as of 6
days ago anyway) that beta still has not yet begun.

Even if a first version is released later this year, it'll take 2 or 3
releases to make it usable for anything other than non-trivial GUI's or
non-GUI back-end processing.

At least that is what *I* am assuming.

:)



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Colin Johnsun
Sent: Tuesday, 3 May 2011 02:54
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi version for 64 bit

Currently none.

Versions from Delphi 2 to Delphi XE (except for Delphi 8) compile to Win32.
Embarcadero has released a beta version of their 64-bit compiler to
beta testers. 

If you need Win64 bit executables have a look at Lazarus/Free Pascal
Compiler. This is similar to Delphi but can compile to Win64.

Cheers,
Colin

2011/5/3 Rogério Martins rogmart...@gmail.com:
 Hi !
 Which delphi version (minimum) can compile Win 64 bit executables ?
 Thanks

 --
 The Ubuntu Counter Project - user number # 33192


 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
 unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] XML data to image problem

2011-04-20 Thread Jolyon Smith
Create a test case that you know should work... i.e. take a known jpeg file,
encode as base 64, embed in an XML and run it thru your code.

If you don't get a valid JPEG file at the end, then you know the code has a
problem - fix it so that you do get a valid JPEG then run it on your real
case again.

If you still don't get a valid JPEG file from your real data then you at
least now know the code is sound and therefore that one or both of your
assumptions about the data is wrong.  Either it isn't a JPEG or it isn't
base64 encoded or it's neither base64 nor a JPEG.


In any event, assumptions are *always* dangerous, but I'm guessing you knew
that already.  :)



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Robert Martin
Sent: Thursday, 21 April 2011 10:40
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] XML data to image problem

Hi

I am getting image data from an XML file.  The author has not provided 
information as to encoding or file type but I am assuming base64 and 
Jpg.  I have the following code which does produce a file but it appears 
corrupt.

 if (aNode  nil)
 and (ANode.NodeValue  Null) then begin
 //Save file
 FileName := TempDir + 'Preview.jpg';
 DeleteFile(FileName);

 FileStream := TFileStream.Create(FileName, fmCreate);
 try
 //Assume node is Base64 encoded binary data
 base64Decoder := TIdDecoderMIME.Create(Self);
 try
 ImageData := 
base64Decoder.DecodeString(ANode.NodeValue)
 finally
 base64Decoder.Free;
 end;

 FileStream.Position := 0;
 FileStream.Write(Pointer(ImageData)^, 
Length(ImageData));

 finally
 FileStream.Free;
 end;
 end


I have tried changing the file extension but it does not open.  I have 
also tried no base 64 decode but that also fails to produce a valid 
file.  Can anyone see anything obviously wrong before I go back to the 
source for further information (they are in the UK so its a day turn 
around AND they are really unhelpful).

Thanks
Rob
___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Emulate a very basic web server using TCPServer

2011-03-20 Thread Jolyon Smith
I suggest you look at the properties of the TIdHTTPRequestInfo object you
get, corresponding to a browser request.

 

All the information you need can be found there I suspect.  J

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Monday, 21 March 2011 16:47
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Emulate a very basic web server using TCPServer

 

I've got a TCP Client/Server app using Indy10 which communicates using my
own protocol, but I have a situation where I want to send information to a
browser using the same TCP Server using the same port, rather than
implementing a separate Indy HTTP server.

 

All I need is to retrieve the URL path entered into the browser, and return
some content based on that.

 

I can currently do everything except determine the URL path.  My IE browser
is sending information like this.

 

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;
GTB6.6; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727; FDM; .NET CLR
3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR
3.5.30729; Open Codecs 0.85.17766)

Accept-Encoding: gzip, deflate

Host: localhost:2323

Connection: Keep-Alive

 

What I entered into the browser was http://localhost:2323/test  and I need
the /test to know what to send back.

 

I assume I need to send something back to the browser to ask for the path.
I could likely spend hours reading the HTTP 1.1 specifications but I'm
hoping someone may know.

 

Cheers,

Ross.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Delphi Starter Edition

2011-03-13 Thread Jolyon Smith
I don't think you can rely on your charitable status to avoid the ridiculous
$1000 license condition as that is $1000 *revenue*, not profit.

Quite how revenue is defined and how Embarcadero would identify and
apportion income as deriving from Starter built apps or services is not
specified.  If you create some code that is used in an area of a web site
that also has a donate facility, for example...  does the income from
those donations count?

There is no special allowance made for non-profit organizations and
charitable donations are not specifically identified separately from
income, so it seems impossible to say for sure that your use of Delphi
Starter would be certain to fall under the  US$1000 revenue threshold
(unless your use of Delphi is entirely and utterly not connected with any
income/donation generating activity in your organisation).


You could just hope that they never come knocking on your door as ask to see
your accounts and set about trying to prove that your license is invalid
(tho actually the boot would be on the other foot - it would no doubt be up
to you to prove that your license *is* valid, not the other way around), but
one would have to think that if they didn't intend ever following through
and applying this revenue limit then they wouldn't have bothered adding it
to the license conditions in the first place.

Speaking for myself, I think the revenue limit on the license is a mistake
(almost as ridiculous as the imposition of Interbase and the removal of
DBExpress) but sadly not one that I expect Embarcadero to correct any time
soon, if ever.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Paul A Norman
Sent: Sunday, 13 March 2011 15:37
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi Starter Edition

Thanks Joylon and Todd, that has sorted that out,

... I had been wondering the way things were worded whether you could
use 3rd party things like Zeos, or if databasing capabilities were
limited strictly to only what was described in the feature matrix.
(Remembering  the Turbo thingies they put out that didn't even let you
add components.)

We are charitable non-commercial (take no payments) so I take it we
would fit under the $USD1000 at all times?

Paul

On 9 March 2011 17:11, Todd todd.martin...@gmail.com wrote:
 Hi Paul

 ZEOS certainly connects to MySql.

 Todd.

 Looking through the feature matrix, I was not sure, can Delphi Starter
 connect to an MySql database on local or other server please?

 Paul

 On 31 January 2011 21:06, Malcolm Groves malcolm.gro...@embarcadero.com
wrote:
 http://www.embarcadero.com/products/delphi/starter

 Cheers
 Malcolm

 Malcolm Groves
 Senior Director, Asia Pacific and Japan
 Embarcadero Technologies
 http://www.embarcadero.com

 Phone: +61 416 264 204
 Skype: malcolmgroves


 CONFIDENTIALITY NOTICE: This email message is for the sole use of the
intended recipient(s) and may contain confidential and privileged
information. Any unauthorized review, use, disclosure or distribution is
prohibited. If you are not the intended recipient, please contact the sender
by reply email and destroy all copies of the original message.

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe


 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Access to street maps

2011-03-13 Thread Jolyon Smith
I am guessing that the certain turnover you have in mind is significantly
higher than the US$1000 revenue limit attached to Starter Edition.

 

If you do the math on those license terms, basically Embarcadero want your
first $1000 revenue for themselves - they take a $200 down payment then grab
the next $800 as soon as you earn it, taking you over the $1000 limit
triggering the point at which you then have to pay to upgrade to Pro,
which will cost you 100% of that $800 you just earned.

 

So you better be sure of earning not just that initial $1000, but AT LEAST
$270/annum thereafter if you want to stay current (that's what your Revenue
Assurance, ahem, I mean Software Assurance will cost you).  Oops,
actually, you'll need to earn $1270, since when you upgrade from Starter to
Pro you'll need an additional $270 for your initial Revenue Assurance
payment.

 

 

Imho this renders Starter Edition dead in the water for the open
source/community/hobby developers that Embarcadero claim to be aiming it at,
for whom revenue is a potentially sporadic and uncertain thing someone
could *easily* earn over $1000 in the first year then significantly less
than that thereafter.  You don't get to deduct any costs from these revenue
numbers, so even if everything you earn from Delphi gets sunk into
hosting/traffic costs for providing your work to the community etc,
Embarcadero don't care - it's not profit they are counting, only
income/revenue.

 

If they absolutely had to have a revenue threshold (as some sort of
corporate/enterprise licensing woobie blanket) , it should have been nearer
$5K or even $10K.

 

imho

 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Steve Peacocke
Sent: Monday, 14 March 2011 09:42
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Access to street maps

 

I was the Product Marketing Manager for the company that, up to a few months
ago, used to supply the data to Google Maps.

 

Yes, essentially you are right and Google have not really worked very hard
at gaining revenue from that source, however that time will come and it is
important to know where you stand. Essentially, once you have turnover, then
you will need to purchase commercial licences but hopefully that will mean
that you are making lots of money. - Google will want some that money.

 

Actually, I think that its a great commercial licence. I only wish Delphi
and some toolmakers used the same licence. I'd love to develop stuff using,
for example the latest Delphi and Woll2Woll's InfoPower tools but I just
can't justify the licence cost until I get over a certain turnover, THEN I
could buy them.

Steve Peacocke
Mobile: 0220 612-611

Linkedin Professional Profile
http://nz.linkedin.com/pub/steve-peacocke/1/a06/489 





On Mon, Mar 14, 2011 at 9:33 AM, Jeremy Coulter jscoul...@gmail.com wrote:

bah.just tick I agree dont read itthen you can plead
ignorance...hehehe

Yeah its only free if you are not going to make $$ from it and not going to
have 50,000 hits a day.pretty muchbut do read the terms just incase
;-)

Jeremy

 

On Mon, Mar 14, 2011 at 9:08 AM, Steve Peacocke st...@peacocke.net wrote:

Caution - Please review the terms of service for yourself. It's only free in
certain circumstances.



Steve Peacocke
Mobile: 0220 612-611

Linkedin Professional Profile
http://nz.linkedin.com/pub/steve-peacocke/1/a06/489 





On Mon, Mar 14, 2011 at 9:06 AM, Jeremy Coulter jscoul...@gmail.com wrote:

yip its free. You just have to register with them to access the Google API
docs etc. I dont know why. Maybe they just want to add your details to their
database :-)

Jeremy

 

On Mon, Mar 14, 2011 at 8:45 AM, Leigh Wanstead leigh.wanst...@gmail.com
wrote:

Hi Jeremy,

May I ask to use google maps service is free?

TIA

Regards
Leigh

 

2011/3/14 Jeremy Coulter jscoul...@gmail.com

The other thing to note too if you want to use Google Maps to display
locations you need to signup and get a key that you need to pass through
each time you make a call which is fine if you will only be calling it from
the same location as it is tied to a Domain name.

We do exactly what you are doing to show surgery locations and various other
things at work. Took a bit of time to figure it out, but it works well.

 

Also something interesting I noticed the other day. My wife was using Wises
online the other day, I noticed they use Google now too...any why not ;-)

 

Jeremy

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Steve Peacocke
Sent: Monday, 14 March 2011 07:28
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Access to street maps

 

Hi Mark,

 

You will need to change the address to the XY coordinates in order to
display the map. Yes, all is possible using JavaScript and the Google Maps
API.

 

http://code.google.com/apis/maps/index.html

 

and

 

http://code.google.com/apis/maps/documentation/javascript/


Re: [DUG] Delphi 7 on a Netbook

2011-03-13 Thread Jolyon Smith
I remember developing in 640x480 in SQLWindows.  Going to 1024x768 was a
HUGE upgrade, made even better if the monitor supported that resolution
non-interlaced.

 

Tho I seem to recall that by the time we got even to Delphi 1.0, 1024x768
was pretty much standard.  Or maybe I was just lucky enough to work in well
heeled and well equipped companies.  J

 

[before that of course, there was 80 x 25 text mode (80 x 30 if you were
really lucky), but I guess we're sticking to GUI era development.  Having
said that, at the same time as fighting with text mode development IDE's on
the PC I was enjoying 1024x768i GUIs using Lattice C and HiSpeed Pascal on
the Amiga ahhh happy days... J]

 

 

Oops, does my geek look big in this ?  LOL

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Alister Christie
Sent: Monday, 14 March 2011 11:40
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi 7 on a Netbook

 

I remember developing in 800x600 or so in Delphi 3.  Going to 1024x768 was a
big upgrade ;-)

I use to record my videos in 800x600, with a largish font - that's a bit
painful in a modern IDE.  I've just restarted making videos and have settled
on 1280x720 (720p) which is supported on YouTube.



Alister Christie
Computers for People
Ph: 04 471 1849 Fax: 04 471 1266
http://www.salespartner.co.nz
PO Box 13085
Johnsonville
Wellington 


On 14/03/2011 10:15 a.m., Steve Peacocke wrote: 

Thanks Rodney, 

 

I'm trying it out - not sure of living in the world of the little
teeny-weeny for too long but it will allow me to get some work done without
lugging around the larger system. plus it allows me to work without the
power plug (Hello cappuccinos) for longer. My laptop only works for about 30
minutes but I can get a good 6 hours from the netbook.

Steve Peacocke
Mobile: 0220 612-611 

Linkedin Professional Profile
http://nz.linkedin.com/pub/steve-peacocke/1/a06/489 





On Mon, Mar 14, 2011 at 10:00 AM, Rodney Chan rc...@compuspec.com wrote:

I have D6/WinXP on my Netbook and it is working fine.  I guess it should be
also OK for D7 as the requrement is similar.

Only concern is the screen is a bit small for doing actually work for a long
period of time.  Other thing is, the screen resolution may be different from
your client.  I use the utility from Asus to scroll the screen so that I can
get a 1024 x 768 (or bigger) virtual screen on my netbook if needed.


-Original Message-
From: delphi-boun...@delphi.org.nz
[mailto:delphi-boun...@delphi.org.nz]On Behalf Of
delphi-requ...@delphi.org.nz
Sent: Monday, 14 March 2011 7:23 a.m.
To: delphi@delphi.org.nz
Subject: Delphi Digest, Vol 89, Issue 16


Send Delphi mailing list submissions to
   delphi@delphi.org.nz

To subscribe or unsubscribe via the World Wide Web, visit
   http://listserver.123.net.nz/mailman/listinfo/delphi
or, via email, send a message with subject or body 'help' to
   delphi-requ...@delphi.org.nz

You can reach the person managing the list at
   delphi-ow...@delphi.org.nz

When replying, please edit your Subject line so it is more specific
than Re: Contents of Delphi digest...


Today's Topics:

  1. Delphi 7 on a Netbook (Steve Peacocke)
  2. Re: Delphi Starter Edition (Paul A Norman)
  3. Delphi for PHP (Graham Marsden)
  4. Re: Delphi for PHP again (Rohit Gupta)
  5. Re: Delphi for PHP (Rohit Gupta)
  6. Access to street maps (mark)


--

Message: 1
Date: Sun, 13 Mar 2011 15:26:56 +1300
From: Steve Peacocke st...@peacocke.net
Subject: [DUG] Delphi 7 on a Netbook
To: List NZ Borland Developers Group - Delphi delphi@delphi.org.nz
Message-ID: 4cc8d2c7-8481-4869-a413-9a3af6871...@peacocke.net
Content-Type: text/plain;   charset=us-ascii


I was wondering if anyone has successfully used Delphi 7 on a netbook (win
xp). I'm heading off and will have only my netbook with me.

As I was working on a Delphi 7 project I was wondering if I could get away
with just the little Netbook (asus eeepc 1001) and not have to take the full
laptop.

Steve Peacocke
0220 612-611





--

Message: 2
Date: Sun, 13 Mar 2011 15:36:38 +1300
From: Paul A Norman paul.a.nor...@gmail.com
Subject: Re: [DUG] Delphi Starter Edition
To: NZ Borland Developers Group - Delphi List delphi@delphi.org.nz
Message-ID:
   aanlktikrq6dny1b47v0yevorsd_ofahj8s3qaho13...@mail.gmail.com
Content-Type: text/plain; charset=ISO-8859-1

Thanks Joylon and Todd, that has sorted that out,

... I had been wondering the way things were worded whether you could
use 3rd party things like Zeos, or if databasing capabilities were
limited strictly to only what was described in the feature matrix.
(Remembering  the Turbo thingies they put out that didn't even let you
add components.)

We are charitable non-commercial (take no payments) so I take it we
would fit under the $USD1000 at all times?

Paul

On 9 March 2011 17:11, Todd 

Re: [DUG] Contents of Delphi digest...

2011-03-13 Thread Jolyon Smith
Ø  Just wondering if there is a Tutorial on how to trim replies?

Ø  I think highlighting the text and deleting works ?

 

It’s a tough one for a mail list, as context for a reply isn’t intrinsically
preserved in the medium.

 

If replying in the main to a number of points/questions from a number of
posts, then “top replying” and leaving the email history intact and
“attached” not only can be useful but in some cases critical (for the reply
to make sense).

 

At other times simply obliterating the email history may be appropriate.

 

At yet other times, more careful editing and selective quoting of specific
passages with relevant replies may be better, though this obviously entails
the most effort.

 

It’s one of those things where One Rule to Rule Them All can’t work (unless
that rule is: “Be considerate in your reply-quoting”)

 

J

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Marshland Engineering
Sent: Thursday, 31 March 2011 13:12
To: delphi@delphi.org.nz
Subject: Re: [DUG] Contents of Delphi digest...

 

 

The last reply I read had 2 lines of new data and about 200 of repeated
data.

 

Cheers Wallace

 

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Delphi Starter Edition

2011-03-08 Thread Jolyon Smith
Yes and No.

Starter Edition does not include DBExpress, only InterbaseExpress so you
cannot use DBExpress to talk to MySQL.  As the name suggests, you can only
use InterbaseExpress with Interbase databases.

However, you can still of course use ADO, ODBC or 3rd party DB Connectivity
libraries (just not 3rd party DBExpress drivers), just as you always had
this option with BDE versions of Delphi that did not include (and prevented
the use of) SQL Links drivers for client/server DB's or DBExpress versions
of drivers that did not include (and prevented the use of) the equivalent
DBExpress drivers.

So yes, you can use MySQL with Delphi Starter, but you'll have to use ADO or
some other MySQL component library to do it.

But no, Starter edition does not come with *anything* in the box that will
enabled you do to this as easily as you could with Interbase.  (note: it
doesn't even include dbGO, but you can still use ADO directly or using some
other ADO wrapper library)




-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Paul A Norman
Sent: Wednesday, 9 March 2011 16:11
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi Starter Edition

Hi Malcolm,

Looking through the feature matrix, I was not sure, can Delphi Starter
connect to an MySql database on local or other server please?

Paul

On 31 January 2011 21:06, Malcolm Groves malcolm.gro...@embarcadero.com
wrote:
 http://www.embarcadero.com/products/delphi/starter

 Cheers
 Malcolm

 Malcolm Groves
 Senior Director, Asia Pacific and Japan
 Embarcadero Technologies
 http://www.embarcadero.com

 Phone: +61 416 264 204
 Skype: malcolmgroves


 CONFIDENTIALITY NOTICE: This email message is for the sole use of the
intended recipient(s) and may contain confidential and privileged
information. Any unauthorized review, use, disclosure or distribution is
prohibited. If you are not the intended recipient, please contact the sender
by reply email and destroy all copies of the original message.

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Move mouse to ListItem

2011-03-07 Thread Jolyon Smith
I wonder if the issue discussed in this thread might be relevant:

http://social.msdn.microsoft.com/Forums/en-CA/vcgeneral/thread/ff2381fd-2783
-431e-ba86-ccdf269d7722


(LVM_GetItemPosition can be broken in report/list view on Vista/Win7
depending on manifest.  TListItem.Position uses LVM_GetItemPosition, rather
than GetItemRect)


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of David O'Brien
Sent: Tuesday, 8 March 2011 15:48
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Move mouse to ListItem

I'm using 2009...

-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz]
On Behalf Of Ross Levis
Sent: Tuesday, 8 March 2011 2:08 p.m.
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Move mouse to ListItem

I did mean vsReport.  Perhaps this was changed in later Delphi versions.
My
D7 documentation says.

Note: Position has no effect unless the list view has a ViewStyle of
vsIcon or vsSmallIcon.

But I'll try it.

Cheers.

-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz]
On Behalf Of David O'Brien
Sent: Tuesday, 8 March 2011 8:51 AM
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Move mouse to ListItem

ListView.Items[i].GetPosition appears to work in vsReport view, or are
we talking another view?

-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz]
On Behalf Of Ross Levis
Sent: Monday, 7 March 2011 6:49 p.m.
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Move mouse to ListItem

This doesn't work in detailed view which I'm using.

Cheers.

-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz]
On Behalf Of David O'Brien
Sent: Monday, 7 March 2011 12:56 PM
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Move mouse to ListItem

ListView.Selected.GetPosition? Returns a TPoint.

-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz]
On Behalf Of Ross Levis
Sent: Friday, 4 March 2011 5:16 p.m.
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Move mouse to ListItem

I plan to use that function, but need the x,y of the selected list item
first.

Jolyon's suggestion of ListView_GetItemRect looks to be heading in the
right direction.

Cheers.
 
-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz]
On Behalf Of Todd
Sent: Friday, 4 March 2011 5:03 PM
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Move mouse to ListItem


Pos := Control.ScreenToClient(Mouse.CursorPos);


 On a keyboard shortcut I want to move the mouse to the start of the 
 currently selected item in a listview.  I know how to move the mouse 
 but
I'm
 not sure how to get the x,y position of the selected item in relation 
 to
the
 listview.  Any ideas?
 
  
 
 Cheers.
 
 
 
 
 
 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with
Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: 

Re: [DUG] Move mouse to ListItem

2011-03-03 Thread Jolyon Smith
These fragments should set you down the right road, at least:  J

 

uses CommCtrl

 

var

   rc: TRect;

   idx: Integer;

 

begin

  idx := Listview.Selected.Index;

 

  ListView_GetItemRect( Listview.Handle, idx, rc, LVIR_BOUNDS );

end;

 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Friday, 4 March 2011 16:50
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Move mouse to ListItem

 

On a keyboard shortcut I want to move the mouse to the start of the
currently selected item in a listview.  I know how to move the mouse but I'm
not sure how to get the x,y position of the selected item in relation to the
listview.  Any ideas?

 

Cheers.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Listview problem

2011-02-24 Thread Jolyon Smith
A WM_VSCROLL message handler works perfectly for me.

 

However, this will only be sent for scrollbar directed scrolling.  To also
handle mousewheel scrolling you will have to implement a WM_MOUSEWHEEL
message handler  (and WM_HMOUSEWHEEL if appropriate to your needs).  Could
it be mouse scrolling that you are missing ?

 

I would also note that you will almost certainly want to distinguish between
H and V scrolling, rather than have a universal some sort of scrolling
has occurred notification.  You may also wish to be able to respond both
before and after scrolling has occurred.

 

 

In my list view class I have:

 

TScrollNotification = (

  snBeforeHScroll,

  snBeforeHWheel,

  snBeforeVScroll,

  snBeforeWheel,

 snHScroll,

  snHWheel,

  snVScroll,

  snWheel

 );

 

 

  procedure TXListview.WMVScroll(var aMessage: TWMVScroll);

  begin

DoScroll(snBeforeVScroll);

inherited;

DoScroll(snVScroll);

  end;

 

  procedure TXListview.WMHScroll(var aMessage: TWMHScroll);

  begin

DoScroll(snBeforeHScroll);

inherited;

DoScroll(snHScroll);

  end;

 

 

 

and similar for mousewheel messages of course, where DoScroll:

 

 

  procedure TXListview.DoScroll(const aNotification: TScrollNotification);

  begin

if (aNotification in [snBeforeHScroll, snBeforeVScroll, snBeforeHWheel,
snBeforeWheel]) then

  CancelEdit;

 

if Assigned(fOnScroll) then

  fOnScroll(self, aNotification);

  end;

 

 

i.e. my listview also provides a facility for sub-item editing and when
scrolling occurs, the first thing I do before doing the actual scrolling is
dismiss any sub-item editor that may be active, before then firing the
OnScroll event to allow my application code to respond as it may require.

 

hth

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of David O'Brien
Sent: Friday, 25 February 2011 15:09
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Listview problem

 

I am working on an application (D2009) where I need to know when a TListView
is Scrolled.

I have used Application.OnMessage to look for WM_VScroll messages, but they
do not happen, also have tried creating the below which I thought should
work:

 

  TLVScrollEvent = procedure(Sender: TObject) of object;

 

  TICListView = class(TListView)

  private

FOnScroll: TLVScrollEvent;

  protected

Procedure WMVScroll( Var Msg: TMessage ); message WM_VSCROLL;

Procedure WMHScroll( Var Msg: TMessage ); message WM_HSCROLL;

property OnScroll: TLVScrollEvent read FOnScroll write FOnscroll ;

  end;

 

procedure Register ;

 

implementation

 

procedure Register;

begin

  RegisterComponents('Dave', [TICListView]);

end;

 

procedure TICListView.WMHScroll(var Msg: TMessage);

begin

  OnScroll ;

  inherited;

end;

 

procedure TICListView.WMVScroll(var Msg: TMessage);

begin

  OnScroll ;

  inherited;

end;

 

which also doesn't fire. I have written a list of all messages fired when
the scrollbar is moved, but there doesn't seem to be anything useful.

 

Anyone have a solution?

 

Regards,

Dave.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Listview problem

2011-02-24 Thread Jolyon Smith
A good spot, but this code doesn't solve it either.  It provides a universal
way of handling scrollbar or mousewheel scroll notifications, although a bit
of extra  work is then required to discriminate between H vs V scrolling,
but when I added this to my listview class it didn't get called as the
result of keyboard scrolling either.

 

Couple of supplementary questions: 

 

1.   Where do you get TWMNotifyLV from?  Why not just use TWMNotify ?

2.   Why not use the  LVN_BEGINSCROLL/LVN_ENDSCROLL constants, rather
than literals + comments ?

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jeremy North
Sent: Friday, 25 February 2011 16:21
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Listview problem

 

Don't forget scrolling also occurs when you use the arrow keys.

 

My contribution (just made up then)...

 

unit ScrollingListView;

 

interface

 

uses
  Windows, Messages, ComCtrls, CommCtrl, Controls;

 

type
  TJSListView = class(TListView)
  private
type
  TJSScrollEvent = procedure (Sender: TObject; const BeginScroll:
Boolean) of object;
var
  FOnEndScroll: TJSScrollEvent;
  FOnBeginScroll: TJSScrollEvent;
  protected
procedure DoScroll(const AStart: Boolean); virtual;
procedure CNNotify(var Message: TWMNotifyLV); message CN_NOTIFY;
  public
property OnBeginScroll: TJSScrollEvent read FOnBeginScroll write
FOnBeginScroll;
property OnEndScroll: TJSScrollEvent read FOnEndScroll write
FOnEndScroll;
  end;

 

implementation

 

{ TJSListView }

 

procedure TJSListView.CNNotify(var Message: TWMNotifyLV);
begin
  if Message.NMHdr.code = -180 then // LVM_BEGINSCROLL
  begin
DoScroll(True);
  end;
  if Message.NMHdr.code = -181 then // LVM_ENDSCROLL
  begin
DoScroll(False);
  end;
  inherited;
end;

 

procedure TJSListView.DoScroll(const AStart: Boolean);
var
  LEvent: TJSScrollEvent;
begin
  if AStart then
LEvent := OnBeginScroll
  else
LEvent := OnEndScroll;
  if Assigned(LEvent) then
LEvent(Self, AStart);
end;

 

end.

 



 

On Fri, Feb 25, 2011 at 2:01 PM, David O'Brien d...@iccs.co.nz wrote:

Sorted it thanks, had mixed versions of code in the component. The events do
fire.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jolyon Smith
Sent: Friday, 25 February 2011 3:43 p.m. 


To: 'NZ Borland Developers Group - Delphi List'

Subject: Re: [DUG] Listview problem 

 

A WM_VSCROLL message handler works perfectly for me.

 

However, this will only be sent for scrollbar directed scrolling.  To also
handle mousewheel scrolling you will have to implement a WM_MOUSEWHEEL
message handler  (and WM_HMOUSEWHEEL if appropriate to your needs).  Could
it be mouse scrolling that you are missing ?

 

I would also note that you will almost certainly want to distinguish between
H and V scrolling, rather than have a universal some sort of scrolling
has occurred notification.  You may also wish to be able to respond both
before and after scrolling has occurred.

 

 

In my list view class I have:

 

TScrollNotification = (

  snBeforeHScroll,

  snBeforeHWheel,

  snBeforeVScroll,

  snBeforeWheel,

 snHScroll,

  snHWheel,

  snVScroll,

  snWheel

 );

 

 

  procedure TXListview.WMVScroll(var aMessage: TWMVScroll);

  begin

DoScroll(snBeforeVScroll);

inherited;

DoScroll(snVScroll);

  end;

 

  procedure TXListview.WMHScroll(var aMessage: TWMHScroll);

  begin

DoScroll(snBeforeHScroll);

inherited;

DoScroll(snHScroll);

  end;

 

 

 

and similar for mousewheel messages of course, where DoScroll:

 

 

  procedure TXListview.DoScroll(const aNotification: TScrollNotification);

  begin

if (aNotification in [snBeforeHScroll, snBeforeVScroll, snBeforeHWheel,
snBeforeWheel]) then

  CancelEdit;

 

if Assigned(fOnScroll) then

  fOnScroll(self, aNotification);

  end;

 

 

i.e. my listview also provides a facility for sub-item editing and when
scrolling occurs, the first thing I do before doing the actual scrolling is
dismiss any sub-item editor that may be active, before then firing the
OnScroll event to allow my application code to respond as it may require.

 

hth

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of David O'Brien
Sent: Friday, 25 February 2011 15:09
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Listview problem

 

I am working on an application (D2009) where I need to know when a TListView
is Scrolled.

I have used Application.OnMessage to look for WM_VScroll messages, but they
do not happen, also have tried creating the below which I thought should
work

Re: [DUG] Validating a TListItem exists

2011-02-01 Thread Jolyon Smith
That assumes that your code hasn't in the meantime added another list item
to the list view and that the memory manager hasn't coincidentally re-used
the memory of a previously freed item when allocating the memory for the new
item ...

 

Yes, this is going to be a rare occurrence... freakishly rare, if it even
happens at all.   But it could happen, and if/when it does it will almost
certainly be a Heisenbug... exhibiting some weird behaviours but no crashes
and virtually impossible to reliably reproduce.

 

It's up to you...  J

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Tuesday, 1 February 2011 18:45
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Validating a TListItem exists

 

ListView.Items.IndexOf() does the trick, so I'll do that in the meantime.

 

Cheers.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jolyon Smith
Sent: Tuesday, 1 February 2011 2:05 PM
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Validating a TListItem exists

 

If the original item has been Free'd, then it either:

 

a)  Points to nothing (literally, empty unused memory)

or

b)  Points to something else entirely

 

You might be extremely lucky and find that

 

c)   If points to nothing, but the memory previously used for the list
item is entirely or partially temporarily as yet unchanged

 

Whatever you find in one particular case, possibly even in one particular
execution run of that one particular case, is not reliable for every case or
for every execution run.

 

There are ways to do what you wish to do, but I am fairly certain that every
single one will involve more work and more risk than simply assuming that
Anushka has already spilled the oil, and consider a deleted list item as
lost and gone forever, even if it might not be.

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Tuesday, 1 February 2011 13:30
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Validating a TListItem exists

 

I was hoping to avoid that.  I was thinking there may be a way of validating
that it is still a TListItem the pointer is pointing to, something like an
is operation, but it looks like some work required to avoid the issue
completely.

 

Cheers.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jolyon Smith
Sent: Tuesday, 1 February 2011 10:59 AM
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Validating a TListItem exists

 

AFAIK when an item is deleted from a listview it is also free'd.
Unavoidably.

 

If you have a reference to a list item that may have been deleted from the
list view, then any attempt to use that reference subsequent to it's being
deleted is likely to fall foul of an access violation (best case: at least
you would get an error to respond to) or be referencing some other memory
that is re-allocated and no longer actually representing the list item it
used to refer to (worst case: since this would be lead to silent unexpected
behaviours).

 

I think the best you can do is add a handler to the Listview.OnDeletion
event and respond to the notifications you will receive at the point at
which any list items are actually deleted.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Monday, 31 January 2011 16:24
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Validating a TListItem exists

 

I'm storing some TListItem's in a TList.  Some of these items could be
removed from the listview at some stage.  I know the items should be removed
from the TList when removed from the listview, but don't ask.

 

Is there a simple method to determine if a listitem reference is still valid
and exists, or do I need to use listview.items.indexof which could be slow.

 

Cheers.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Delphi Starter Edition

2011-01-31 Thread Jolyon Smith
FWIW, this looks promising and gratifyingly similar to something I
previously suggested.  Here's hoping it works out well.


For future reference tho, Embarcadero really need to co-ordinate these sorts
of announcements far, FAR better.  I first read about this last week but
without any concrete information and it initially appeared to be perhaps a
prank/spoof.

The press shouldn't have been given the information until ALL the
information, and the answers to ALL the questions that the information would
raise (but not answer) were available.  But Embarcadero didn't have even one
single mention of any forthcoming Starter Edition on their site.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Malcolm Groves
Sent: Monday, 31 January 2011 21:07
To: ADUG List; NZ Borland Developers Group - Delphi List
Subject: [DUG] Delphi Starter Edition

http://www.embarcadero.com/products/delphi/starter

Cheers
Malcolm

Malcolm Groves
Senior Director, Asia Pacific and Japan
Embarcadero Technologies
http://www.embarcadero.com

Phone: +61 416 264 204
Skype: malcolmgroves


CONFIDENTIALITY NOTICE: This email message is for the sole use of the
intended recipient(s) and may contain confidential and privileged
information. Any unauthorized review, use, disclosure or distribution is
prohibited. If you are not the intended recipient, please contact the sender
by reply email and destroy all copies of the original message.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Delphi Starter Edition

2011-01-31 Thread Jolyon Smith
Available from the AU online store for AU$260, or NZ$335

 USAU   NZ
At forex rates:  200   200.50   258
At Embarcadero rates:200   259  335


I hope (but do not expect that) the US$1000 revenue limit imposed on the
license is similarly generously inflated for the benefit of NZ customers
being asked to pay disproportionately higher for it.  By my reckoning, an
appropriate revenue limit for NZ would be US$1675 (NZ$2166, vs NZ$1293), if
the same spurious rate of exchange is applied.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Leigh Wanstead
Sent: Tuesday, 1 February 2011 09:17
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi Starter Edition

Hi Malcolm,

May I ask how much it cost? I cannot find the price.

Regards
Leigh

-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Malcolm Groves
Sent: Monday, 31 January 2011 9:07 p.m.
To: ADUG List; NZ Borland Developers Group - Delphi List
Subject: [DUG] Delphi Starter Edition

http://www.embarcadero.com/products/delphi/starter

Cheers
Malcolm

Malcolm Groves
Senior Director, Asia Pacific and Japan
Embarcadero Technologies
http://www.embarcadero.com

Phone: +61 416 264 204
Skype: malcolmgroves


CONFIDENTIALITY NOTICE: This email message is for the sole use of the
intended recipient(s) and may contain confidential and privileged
information. Any unauthorized review, use, disclosure or distribution is
prohibited. If you are not the intended recipient, please contact the sender
by reply email and destroy all copies of the original message.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Delphi Starter Edition

2011-01-31 Thread Jolyon Smith
Malcolm, NZ doesn't have a specific store listed in the Buy Online section
of the Embarcadero site, so I was using the AUD prices quoted on the
AUSTRALIA store.  Should we (in NZ) be using the South East Asia store
instead?

That's not much better - in fact it's exactly the same as the AUD store,
since the ASEAN site charges US$194 for the *UPGRADE* and US$260 for a new
Starter license (US$260 == NZ$336).


Conor's link to the International USD Store is the most promising in terms
of avoiding being gouged as an NZ customer, but I am deeply troubled by this
caveat on the order confirmation page of that store:

The End-User License Agreement (EULA) limits usage of the 
 product to the country of purchase. Any usage of Embarcadero 
 products outside the country of purchase is not permitted and 
 may result in suspension or termination of the license 
 without any refund.


1) it is not entirely clear what the Country of Purchase is.  Embarcadero
are a US company, Digital River (who operate the store) are seemingly
simultaneously a Luxembourg and an Irish company, and my billing address is
New Zealand.  What if I were to use a UK credit card, whilst being resident
in NZ (there being no provision for specifically identifying the Country of
Purchase for my own purposes) ?  Or what if I had bought a license whilst
travelling ?  e.g. Using an NZ credit card whilst in AU or the US ?

2) the ability to revoke licenses if I subsequently leave the Country of
Purchase (where-ever that may be) is deeply offensive not to mention
potentially highly disruptive and expensive (and therefore a disincentive)
and arguably a violation of Article 17 of the Universal Declaration of Human
Rights (ianal and don't have the declaration committed to memory - I simply
seemed to recall some provision for the right to enjoy personal property so
looked it up to see, and Article 17 would appear to be what I was
remembering)



I know this is an old sore, and things are routinely more expensive in NZ
(though not in all cases - check out Domino's Pizza prices in the UK vs NZ
for example - LOL).  But in most cases, the overheads of importation and
distribution and the provision of local support and services in relation to
a product do at least go some part toward explaining, if not entirely
excusing, the higher prices here.

But electronically delivered software with no local presence/support has no
such excuses, imho.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Malcolm Groves
Sent: Tuesday, 1 February 2011 10:24
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi Starter Edition

I know we have an issue in Australia, which we're trying to resolve, but the
NZ Shop should be listing in USD (to avoid exactly the sorts of issues we
have in Aus), so GST aside, I'm not sure why you're seeing a big NZD
difference. 

Cheers
Malcolm

-Original Message-
 USAU   NZ
At forex rates:  200   200.50   258
At Embarcadero rates:200   259  335


CONFIDENTIALITY NOTICE: This email message is for the sole use of the
intended recipient(s) and may contain confidential and privileged
information. Any unauthorized review, use, disclosure or distribution is
prohibited. If you are not the intended recipient, please contact the sender
by reply email and destroy all copies of the original message.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Validating a TListItem exists

2011-01-31 Thread Jolyon Smith
AFAIK when an item is deleted from a listview it is also free'd.
Unavoidably.

 

If you have a reference to a list item that may have been deleted from the
list view, then any attempt to use that reference subsequent to it's being
deleted is likely to fall foul of an access violation (best case: at least
you would get an error to respond to) or be referencing some other memory
that is re-allocated and no longer actually representing the list item it
used to refer to (worst case: since this would be lead to silent unexpected
behaviours).

 

I think the best you can do is add a handler to the Listview.OnDeletion
event and respond to the notifications you will receive at the point at
which any list items are actually deleted.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Monday, 31 January 2011 16:24
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Validating a TListItem exists

 

I'm storing some TListItem's in a TList.  Some of these items could be
removed from the listview at some stage.  I know the items should be removed
from the TList when removed from the listview, but don't ask.

 

Is there a simple method to determine if a listitem reference is still valid
and exists, or do I need to use listview.items.indexof which could be slow.

 

Cheers.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Delphi Starter Edition

2011-01-31 Thread Jolyon Smith
Aha, yes - NZ is in that list.  I think I see what happened now...

I followed Conor's link which led to a page identifying itself only as the
International USD Store.  When on that site, there is no NZ site listed
under Worldwide Shops, only Australia or South East Asian (in terms of
nearest/most relevant to NZ).

The South East Asia store identifies itself as ASEAN, so I know where I am
now ... it didn't occur to me to look again at the Worldwide Shops list,
where the South East Asia entry is now replaced by New Zealand !

It makes sense - list *other* shops and not the one you are already at, but
this falls down when the shop you are at isn't identifiable from the list of
other.


Here's an idea... why not make the New Zealand Store identify itself as
something else, oh I dunno... the New Zealand store maybe !?!  Just a
thought.  ;)

This would also address the ambiguity of what Country of Purchase means
when presented with that information on the confirmation page.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of David Brennan
Sent: Tuesday, 1 February 2011 11:49
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Delphi Starter Edition

The Online Stores list for Embarcadero
(http://www.embarcadero.com/online-stores) lists New Zealand as an option
under Asia/Pacific Region for me.

The prices after clicking the link are in USD but having got there by
clicking a link labelled New Zealand I would be pretty confident there are
no unexpected licensing issues.

The revocation if you change country issue is pretty rough. I'm guessing it
is similar for other major software (eg Microsoft?). I'm also guessing it is
to allow pricing to be different in lower income regions without everyone
simply switching to buying all their software on the Botswana store to get
the lowest price. If that is the case I'm also guessing in practice
Embarcadero are very unlikely to go after a single company/individual moving
around. Lot of guessing there though!

Cheers,
David.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jolyon Smith
Sent: Tuesday, 1 February 2011 10:51 a.m.
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Delphi Starter Edition

Malcolm, NZ doesn't have a specific store listed in the Buy Online section
of the Embarcadero site, so I was using the AUD prices quoted on the
AUSTRALIA store.  Should we (in NZ) be using the South East Asia store
instead?

That's not much better - in fact it's exactly the same as the AUD store,
since the ASEAN site charges US$194 for the *UPGRADE* and US$260 for a new
Starter license (US$260 == NZ$336).


Conor's link to the International USD Store is the most promising in terms
of avoiding being gouged as an NZ customer, but I am deeply troubled by this
caveat on the order confirmation page of that store:

The End-User License Agreement (EULA) limits usage of the 
 product to the country of purchase. Any usage of Embarcadero 
 products outside the country of purchase is not permitted and 
 may result in suspension or termination of the license 
 without any refund.


1) it is not entirely clear what the Country of Purchase is.  Embarcadero
are a US company, Digital River (who operate the store) are seemingly
simultaneously a Luxembourg and an Irish company, and my billing address is
New Zealand.  What if I were to use a UK credit card, whilst being resident
in NZ (there being no provision for specifically identifying the Country of
Purchase for my own purposes) ?  Or what if I had bought a license whilst
travelling ?  e.g. Using an NZ credit card whilst in AU or the US ?

2) the ability to revoke licenses if I subsequently leave the Country of
Purchase (where-ever that may be) is deeply offensive not to mention
potentially highly disruptive and expensive (and therefore a disincentive)
and arguably a violation of Article 17 of the Universal Declaration of Human
Rights (ianal and don't have the declaration committed to memory - I simply
seemed to recall some provision for the right to enjoy personal property so
looked it up to see, and Article 17 would appear to be what I was
remembering)



I know this is an old sore, and things are routinely more expensive in NZ
(though not in all cases - check out Domino's Pizza prices in the UK vs NZ
for example - LOL).  But in most cases, the overheads of importation and
distribution and the provision of local support and services in relation to
a product do at least go some part toward explaining, if not entirely
excusing, the higher prices here.

But electronically delivered software with no local presence/support has no
such excuses, imho.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Malcolm Groves
Sent: Tuesday, 1 February 2011 10:24
To: NZ Borland Developers Group

Re: [DUG] Delphi Starter Edition

2011-01-31 Thread Jolyon Smith
Yes, tho with some odd exclusions if the feature matrix is accurate, e.g.
some rather petty limitations in the debugger/COM support imho.  But
overall, this is pretty much what I had in mind when I envisioned a
Community Edition a couple of years ago.  :)

The $1000 revenue limit is also bizarrely low imho - it's high enough to
worm it's way around any non-commercial use restriction, but not high
enough to realistically be anything other than a non-commercial use only
restriction in all but name.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of John Bird
Sent: Tuesday, 1 February 2011 12:07
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi Starter Edition

?
http://www.embarcadero.com/products/delphi   click on feature matrix - looks

like it omits some of the newer professional features - such as code 
formatting, etc.otherwise quite similar to professional.

As the professional edition has steadily got more features over the years, 
its sort of comparable to say a D5 professional or even more.

John 


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Delphi Starter Edition

2011-01-31 Thread Jolyon Smith
It's an annual limit afaik.

But it's a revenue limit, not profit, with no allowance for any the costs
that even a hobbyist or open source developer might incur.  e.g. if someone
makes software available for download they will most likely incur traffic
costs for the downloads.  With a donation scheme in place, the donations
may not even cover the traffic costs, but as soon as those donations hit
$1000, they are in violation of their license terms, even tho they still
aren't actually making any money from their Delphi use.

This is what I mean by it being ridiculously low.

If it was $1000 *profit* then it would be different.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jeremy North
Sent: Tuesday, 1 February 2011 12:58
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi Starter Edition

 The $1000 revenue limit is also bizarrely low imho - it's high enough to
 worm it's way around any non-commercial use restriction, but not high
 enough to realistically be anything other than a non-commercial use only
 restriction in all but name.

It is targeted at open source or hobbyists developers. I don't see any
issues with the limit.

Is the $1000 per year or a running total?
___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Delphi Starter Edition

2011-01-31 Thread Jolyon Smith
I find it depressing that people still can't seem to get away from thinking
that people will set out to cheat Embarcadero by gaming reasonable license
restrictions.

 

Most (most not all) people only cheat when they feel that the rules
aren't fair in the first place.

 

And as for profit being harder to track than revenue, just how are
Embarcadero going to track/monitor revenue in this area in the first place?
What earnings DO they recognise as relevant revenue?  Without requiring that
only registered companies qualify for purchasing these licenses, how do they
expect to compel a set of audited accounts from their Starter licensees ?

 

My guess: They won't be enforcing the license terms in this way at all.
They will operate an honour system, in which case, making that system fair
and reasonable is the best way to ensure compliance.

 

 

But the idea is to attract new users, right?  Users who do Delphi as a hobby
or who have an idea that *might* make a little money (or maybe a lot, tho in
that latter case I don't think Pro license costs will necessarily hold them
back).

 

Comparing to another of my hobbies (photography), if I spend $1000 on
printing photos that I sell to my friends/colleagues for $1000, have I
made $1000 ?

 

If Embarcadero were licensing me my camera they would say yes, even tho my
hobby is a break-even activity for me (allowing only for directly
measureable costs, and not other costs that are involved).  And once I tip
over that $1000 revenue, my license costs go up immensely, and if I don't
pay up, not only do I not get access to the bigger/better/brighter features
(that I don't actually need, since by definition I didn't use them to get
that far in the first place) but I also lose the right to use the tools I
already paid for!!

 

I think I'd choose a different camera, wouldn't you ?

 

In the grand scheme of things I don't see the idea of a revenue limit a
problem per se, but $1000 really isn't very much and by no means establishes
an ability to pay for Professional licenses on an on-going basis.  What if
I earn $1000 in the first 6 months from a flood of donations from
interested users etc.  I am compelled to shell out $800 to remain within the
terms of my license.  But then the donations dry up after that, reducing to
perhaps $500-$800 over the next 12 months?

 

I don't think this is an entirely fantastical situation to imagine.

 

 

Don't get me wrong, I think Delphi Starter is better than what we had before
(i.e. nothing) but this particular aspect of the license is worrying (in
terms of what it suggests in the thinking of those behind the initiative).

 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Kyley Harris
Sent: Tuesday, 1 February 2011 13:04
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi Starter Edition

 

I would think Students too.. 

 

And I guess if you actually start making a $1000 they figure its enough to
pay for the software and then keep making money :D

 

 

On Tue, Feb 1, 2011 at 12:58 PM, Jeremy North jeremy.no...@gmail.com
wrote:

 The $1000 revenue limit is also bizarrely low imho - it's high enough to
 worm it's way around any non-commercial use restriction, but not high
 enough to realistically be anything other than a non-commercial use only
 restriction in all but name.

It is targeted at open source or hobbyists developers. I don't see any
issues with the limit.

Is the $1000 per year or a running total?

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe




-- 
Kyley Harris
Harris Software
+64-21-671-821

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Validating a TListItem exists

2011-01-31 Thread Jolyon Smith
If the original item has been Free'd, then it either:

 

a)  Points to nothing (literally, empty unused memory)

or

b)  Points to something else entirely

 

You might be extremely lucky and find that

 

c)   If points to nothing, but the memory previously used for the list
item is entirely or partially temporarily as yet unchanged

 

Whatever you find in one particular case, possibly even in one particular
execution run of that one particular case, is not reliable for every case or
for every execution run.

 

There are ways to do what you wish to do, but I am fairly certain that every
single one will involve more work and more risk than simply assuming that
Anushka has already spilled the oil, and consider a deleted list item as
lost and gone forever, even if it might not be.

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Tuesday, 1 February 2011 13:30
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Validating a TListItem exists

 

I was hoping to avoid that.  I was thinking there may be a way of validating
that it is still a TListItem the pointer is pointing to, something like an
is operation, but it looks like some work required to avoid the issue
completely.

 

Cheers.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jolyon Smith
Sent: Tuesday, 1 February 2011 10:59 AM
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Validating a TListItem exists

 

AFAIK when an item is deleted from a listview it is also free'd.
Unavoidably.

 

If you have a reference to a list item that may have been deleted from the
list view, then any attempt to use that reference subsequent to it's being
deleted is likely to fall foul of an access violation (best case: at least
you would get an error to respond to) or be referencing some other memory
that is re-allocated and no longer actually representing the list item it
used to refer to (worst case: since this would be lead to silent unexpected
behaviours).

 

I think the best you can do is add a handler to the Listview.OnDeletion
event and respond to the notifications you will receive at the point at
which any list items are actually deleted.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Monday, 31 January 2011 16:24
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Validating a TListItem exists

 

I'm storing some TListItem's in a TList.  Some of these items could be
removed from the listview at some stage.  I know the items should be removed
from the TList when removed from the listview, but don't ask.

 

Is there a simple method to determine if a listitem reference is still valid
and exists, or do I need to use listview.items.indexof which could be slow.

 

Cheers.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Delphi Starter Edition

2011-01-31 Thread Jolyon Smith
The Starter License includes the US$1000 revenue limit as a /condition of
the license/.  If you exceed $1000 then your Starter license is quite simply
no longer valid, in exactly the same way that if you buy in NZ (from the
International USD Store) then move to Australia your licenses are also
simply no longer valid.

You have to pay again or be in violation of your license and risk having it
terminated.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jeremy North
Sent: Tuesday, 1 February 2011 13:58
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi Starter Edition

 In the grand scheme of things I don’t see the idea of a revenue limit a
 problem per se, but $1000 really isn’t very much and by no means
establishes
 an “ability to pay” for Professional licenses on an on-going basis.  What
if
 I “earn” $1000 in the first 6 months from a flood of donations from
 interested users etc.  I am compelled to shell out $800 to remain within
the
 terms of my license.  But then the donations dry up after that, reducing
to
 perhaps $500-$800 over the next 12 months?

Last time I checked, a PRO (or any paid for license from embarcadero)
license doesn't expire.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Delphi Starter Edition

2011-01-31 Thread Jolyon Smith
Is it no other *versions* or no other *editions* of the *same* version?

The installation notes for my XE Starter [:)] say that you cannot have other
higher edition personality installed, but the XE Studio framework is
separate from the BDS 2006 framework, for example, so a Delphi XE Starter
Personality can, by my interpretation, co-exist with BDS 2006, but NOT
Delphi XE Professional.

The machine I want to install XE on is not the one I am on right now tho, so
I can't attempt an install to find out...

If that is not the case, and I cannot have Starter XE installed alongside
older Pro editions, then I shall be requesting a refund as this was not made
clear at the time of purchase (and would make a nonsense of having older
versions explicitly identified as qualifying products for an upgrade
license).



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of David Brennan
Sent: Tuesday, 1 February 2011 13:44
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Delphi Starter Edition

Some quite large companies don't make any profit at all so profit would be a
tricky measure!

The 1000USD seems potentially a little low but I don't think it will matter
much in the real world. I imagine it would be quite likely for someone to be
turning over 2-3k USD with their little hobby software project and having
upgrading to Pro on their TODO list but never quite getting around to it. No
one is likely to know and no one will much care (Embarcadero would have to
care if someone pointed it out but I can't see them attempting to audit tiny
guys with sales of approx 1000USD per year!). OTOH if that hobbyest gets to
the point where his software is making a noticeable splash then Embarcadero
can reasonably point out that his income must be well over 1000USD, no
argument, he has to buy Pro. 

I like it. Seems fairly commonsense.

However I do think the restriction on having no other Delphi/C++ versions
installed is odd. I guess in theory people who have Pro+ versions installed
don't qualify for Standard (although having Pro from work and Standard for
own use seems possible and not unreasonable) but not allowing both Delphi
and C++ Standard to be installed is just weird. Why can't a hobbyist want
both?

David.




-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jolyon Smith
Sent: Tuesday, 1 February 2011 1:15 p.m.
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Delphi Starter Edition

It's an annual limit afaik.

But it's a revenue limit, not profit, with no allowance for any the costs
that even a hobbyist or open source developer might incur.  e.g. if someone
makes software available for download they will most likely incur traffic
costs for the downloads.  With a donation scheme in place, the donations
may not even cover the traffic costs, but as soon as those donations hit
$1000, they are in violation of their license terms, even tho they still
aren't actually making any money from their Delphi use.

This is what I mean by it being ridiculously low.

If it was $1000 *profit* then it would be different.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jeremy North
Sent: Tuesday, 1 February 2011 12:58
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi Starter Edition

 The $1000 revenue limit is also bizarrely low imho - it's high enough to
 worm it's way around any non-commercial use restriction, but not high
 enough to realistically be anything other than a non-commercial use only
 restriction in all but name.

It is targeted at open source or hobbyists developers. I don't see any
issues with the limit.

Is the $1000 per year or a running total?
___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Delphi Starter Edition

2011-01-31 Thread Jolyon Smith
Who said anything about providing unrestricted full access licenses on an
honour system ?  That's an extrapolation of an argument nobody is making to
a conclusion that nobody is suggesting.

 

All I am saying is that imposing a license restriction could be
counter-productive.  We can sit and argue the cases that it works for vs the
cases that it doesn't until the cows come home, all from the comfortable
position of already having access to the Professional/Enterprise/Architect
licenses we already use.

 

I simply suggest the view that US$1000 doesn't work in a sufficiently high
proportion of possible and realistic scenarios that it could act as a strong
DISincentive to the very people that the new Start Edition is intended to
attract.  The marketing message is GET DELPHI FOR $200 NOW [and be forced
to pay $800 more later or lose what you already paid for] vs FREE FOREVER

 

That's not to say that Delphi itself must be FREE FOREVER, only that it
needs a better message than this bait-and-switch if it is to realistically
*compete* with FREE FOREVER in the space that we are told this new edition
is targeted at, and that IS the space it is competing in.

 

And do not forget that I still think this is better than what we had before.
J

 

 

The bigger [potential] problem being that if/when the Starter Edition
*fails* to attract these new users, Embarcadero will turn around and declare
them a failure, that there isn't a market for an entry level Delphi, and
that this vindicates and justifies the higher pricing.

 

Turbo Redux.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Kyley Harris
Sent: Tuesday, 1 February 2011 14:16
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi Starter Edition

 

I understand all your points..

 

Now.. Lets do a survey of Delphi developers.. How many people are there
writing software in delphi and providing unrestricted full access licenses
on an Honor system with the expectation that their clients might pay them
later? excluding any trial limits, feature restrictions etc etc, but relying
on a paper licence unsigned that states some rules that might get enforced.

 

I think the reality is that people will take it if it seems fair, and wont
take it if it doesn't, but there isn't much point worrying about it.  

 

its a buyers market and the real loss will be to embacardo if they have made
a bad decision. 

 

Whats that saying.. Better a million people pirating my software than
pirating the competitions. :) eventually there is a return from someone. 

 

 

On Tue, Feb 1, 2011 at 1:45 PM, Jolyon Smith jsm...@deltics.co.nz wrote:

I find it depressing that people still can't seem to get away from thinking
that people will set out to cheat Embarcadero by gaming reasonable license
restrictions.

 

Most (most not all) people only cheat when they feel that the rules
aren't fair in the first place.

 

And as for profit being harder to track than revenue, just how are
Embarcadero going to track/monitor revenue in this area in the first place?
What earnings DO they recognise as relevant revenue?  Without requiring that
only registered companies qualify for purchasing these licenses, how do they
expect to compel a set of audited accounts from their Starter licensees ?

 

My guess: They won't be enforcing the license terms in this way at all.
They will operate an honour system, in which case, making that system fair
and reasonable is the best way to ensure compliance.

 

 

But the idea is to attract new users, right?  Users who do Delphi as a hobby
or who have an idea that *might* make a little money (or maybe a lot, tho in
that latter case I don't think Pro license costs will necessarily hold them
back).

 

Comparing to another of my hobbies (photography), if I spend $1000 on
printing photos that I sell to my friends/colleagues for $1000, have I
made $1000 ?

 

If Embarcadero were licensing me my camera they would say yes, even tho my
hobby is a break-even activity for me (allowing only for directly
measureable costs, and not other costs that are involved).  And once I tip
over that $1000 revenue, my license costs go up immensely, and if I don't
pay up, not only do I not get access to the bigger/better/brighter features
(that I don't actually need, since by definition I didn't use them to get
that far in the first place) but I also lose the right to use the tools I
already paid for!!

 

I think I'd choose a different camera, wouldn't you ?

 

In the grand scheme of things I don't see the idea of a revenue limit a
problem per se, but $1000 really isn't very much and by no means establishes
an ability to pay for Professional licenses on an on-going basis.  What if
I earn $1000 in the first 6 months from a flood of donations from
interested users etc.  I am compelled to shell out $800 to remain within the
terms of my license.  But then the donations dry up after that, reducing to
perhaps $500-$800 over the next 12

Re: [DUG] Delphi Starter Edition

2011-01-31 Thread Jolyon Smith
One man's Cut Down version is another man's Just exactly what I need and
no bloat version.  You don't wear a morning-suit to the beach (unless
you're scheduled to appear in a music video).  J

 

If you want to try-before-you-buy the Pro version, then get the Pro trial
(and lobby for a more realistic trial period).

 

This was the mistake made with the previous Turbo's imho - they were
essentially what you describe.  The inability to install components made
them useless as realistic development tools, yet they never-the-less had
every single feature of the Professional product crammed in, iirc.

 

Open Source/Hobbyists don't need the likes of DataSnap or even DBExpress,
not even comprehensive refactorings and certainly not 2-way (or arguably
even 1-way) UML modelling capabilities.  Code Templates, CodeFormatting etc
similarly are more a question of personal preference than a professional
must-have.  Heck, I personally never use these in the Pro/Architect
editions !!

 

And these things are now gone from Starter Edition, and a good job too...
let new users concentrate on the core product, the language and the VCL
without getting bogged down in [what are apart from anything else largely
the least reliable] bells and whistles.

 

And let users who don't need these - for them - extraneous features, enjoy
the parts of the product they DO need and WILL use, without having to pay
for all the guff that they have no interest in.  If/when they develop an
interest in them, the trial editions exist for them to have a look-see.

 

 

And that is where another aspect of my discomfort with the $1000 bait/switch
comes from... on the one hand they are cut down versions, and so therefore
it is reasonable that they are cheaper than Professional.  But once you go
over some arbitrary revenue limit, what functionality you need becomes just
as irrelevant then as it used to be before Starter was announced.  Whether
you want/need all the features in Pro or not, you have to pay for them to
get the stuff you DO want/need.

 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Kyley Harris
Sent: Tuesday, 1 February 2011 15:05
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi Starter Edition

 

To be quite honest..

 

if I was *new* and looking at a software language, then what would be far
more appealing to me would be a licence that allowed me to fully try before
I buy, without restrictions. a Cut Down Version wont make me decide to buy a
fully fledged version, because Id have no experience seeing if it does what
I think it should. A time period suitable enough for me to determine if the
product is valuable to me.. After that time period, I'd either expect to pay
a fair price, or to stop using it.. 

 

I'd rather Embacardo targeted selling Pro licenses to everyone for $300
rather than a minority at $3000. lol .. 

 

Its times like these when I fondly remember Turbo Pascal 7.0 and how
wonderful its documentation and simplicity were ;D (and its price)

 

 

On Tue, Feb 1, 2011 at 2:38 PM, Jolyon Smith jsm...@deltics.co.nz wrote:

Who said anything about providing unrestricted full access licenses on an
honour system ?  That's an extrapolation of an argument nobody is making to
a conclusion that nobody is suggesting.

 

All I am saying is that imposing a license restriction could be
counter-productive.  We can sit and argue the cases that it works for vs the
cases that it doesn't until the cows come home, all from the comfortable
position of already having access to the Professional/Enterprise/Architect
licenses we already use.

 

I simply suggest the view that US$1000 doesn't work in a sufficiently high
proportion of possible and realistic scenarios that it could act as a strong
DISincentive to the very people that the new Start Edition is intended to
attract.  The marketing message is GET DELPHI FOR $200 NOW [and be forced
to pay $800 more later or lose what you already paid for] vs FREE FOREVER

 

That's not to say that Delphi itself must be FREE FOREVER, only that it
needs a better message than this bait-and-switch if it is to realistically
*compete* with FREE FOREVER in the space that we are told this new edition
is targeted at, and that IS the space it is competing in.

 

And do not forget that I still think this is better than what we had before.
J

 

 

The bigger [potential] problem being that if/when the Starter Edition
*fails* to attract these new users, Embarcadero will turn around and declare
them a failure, that there isn't a market for an entry level Delphi, and
that this vindicates and justifies the higher pricing.

 

Turbo Redux.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Kyley Harris
Sent: Tuesday, 1 February 2011 14:16


To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi Starter Edition

 

I understand all your points..

 

Now.. Lets do a survey of Delphi developers

Re: [DUG] Delphi Starter Edition

2011-01-31 Thread Jolyon Smith
Ø  I thought Standard was mostly equivalent to the Pro version in terms of
functionality? Or is it crippled in some fashion?

 

Assuming you meant the new “Starter Edition” (since there hasn’t been a
“Standard” edition for as long as I can remember... J ), here’s a link to
the complete feature matrix, updated with the Starter XE differences:

 

https://docs.google.com/viewer?url=http://www.embarcadero.com/products/delph
i/Delphi-Feature-Matrix.pdf

 

 

I wouldn’t call it “crippled”, but it is deliberately limited in comparison
to Professional/Enterprise/Architect.  I suppose you might call it crippled
in the same way that you might call a 1.8 Mondeo “crippled” in comparison to
a 2.5V6 model.  Or you might just call it “suited to a different
purpose/market”. J

Here’s a quick summary of what’s missing (according to the feature matrix),
categorised according to my own personal perspective/opinion:

 

Good Exclusions:

 

-  DBExpress

-  Data Snap

-  UML Modelling

-  Code Formatting

-  Code Templates

-  Code Completion for HTML

-  Source Control (SVN) Integration

-  i18n/L10N tools

-  DUnit Integration

-  AQ Time / FinalBuilder /CodeSite trialware integrations

-  Azure/EC2 integrations

-  RAVE Reports

-  SOAP  / BizSnap

-  IntraWeb

-  WebSnap

-  ER/Studio

 

Odd choices:

 

-  AutoUpdating IDE (does this mean Starter Edition is not intended
to be updated?)

-  Command line tools (TDump, resource compiler etc)

-  Class Explorer (!?!)

-  Resource Manager (not ever knowingly used it myself tho, so this
may be a good choice)

-  Symbol Insight (!?!)

-  Code Folding (!?!)

-  TODO lists (!!?!)

 

Really, really BAD choices:

 

-  Numerous debugger limitations, including:

o   reduced multi-thread tools, no freeze/thaw thread for example

o   reduced breakpoint controls (no data aware triggers)

o   No Evaluator (!!?! I really REALLY hope this doesn’t mean the Ctrl-F7
evaluator – that would be DUMB DUMB DUMB)

o   No expandable local variables (but you DO get expandable watches – go
figure)

 

-  COM limitations, including such mind bending exclusions as :

o   No Type Library Editor

o   No COM Object Wizard

o   No support for automation object event handling

o   No ability to generate component wrappers for imported COM servers
!!?!?!!

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Object is Object vs Object.Classname = 'Object'

2011-01-25 Thread Jolyon Smith
The two are not comparable in function so cannot really be compared for
efficiency:

 

if a is b then

 

Will evaluate true if a is an instance of b or of any class derived from b.

 

if (abc.Classname = 'TMyObject') then

 

Will evaluate true only if abc is an instance of TMyObject and only if the
classname of TMyObject uses the exact capitalisation in the comparison
string.

 

 

So it depends what you are trying to do... if you need to test for an
instance being of a specific class and only a specific class then the
ClassName comparison is valid, but a more efficient and more type-safe
alternative would be:

 

if (a.ClassType = TMyObject) then

 

 

But if you need to detect when a is of class TMyObject or some class that
ultimately derives from TMyObject, then an is or InheritsFrom() test is the
only option.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] WM_TOUCH messages

2011-01-23 Thread Jolyon Smith
My guess (and it is just a guess) is that you are running into an
architectural characteristic of (MS) Windows that only one Window can have
the input focus at any time, so you cannot have messages arriving
simultaneously in different controls.  I may be wrong, but I would be
surprised if touch messages were any different from any other input message
in this respect.

 

i.e. a multi-touch surface is confined to a input/interpretation by a
single windowed control.

 

 

I believe there is a dual/multi input framework available that sits on top
of Windows but I think that it is a managed framework (i.e. .NET) and has
some constraints anyway, being intended for educational/training solutions
(instructor/educator sitting alongside student/pupil).

 

 

Side-bar:  Multi-touch trackbar eh?   hmmm ... you're not implementing a
transporter control interface are you... ?!  

 

TScotty.Create.BeamMeUp  J

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Martin Searancke
Sent: Monday, 24 January 2011 15:46
To: delphi
Subject: [DUG] WM_TOUCH messages

 

I have been cheating and implementing multi touch functionality in my D2009
application by hooking the various touch messages.

I have this all working fine for gestures but on one window I want to get
the actual touch messages so that a user can move multiple slider controls
(TrackBar) at the same time.

 

WM_TOUCH= $0240;

procedure WMTouchNotify(var Msg: TMessage); message WM_TOUCH;

RegisterTouchWindow(Handle, 0);

 

This works fine for touch events on the window itself but not when touching
controls (like the trackbar). What am I missing here - The event does not
fire when touching any child controls on the form?

 

I have tried calling...

RegisterTouchWindow(MyTrackBarControl.Handle, 0);

But this does not work. 

 

Thanks in advance.

Martin

 

-- 

Martin Searancke

LightFactory

+64 21 778 592

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Variabels stored

2011-01-20 Thread Jolyon Smith
Well, to be fair the same is true even if you declare it simply as a public
member.  You change that public member to a public property with read/write
accessors if you need to, without changing the code that uses the public
member.

 

The reason to declare a member as a property is when you positively wish to
hide the implementation, not because you may wish to in the future.

 

 

Note also that for record types, exposure as a property makes such members
harder and unintuitive to work with:

 

  TShape = class

  Private

fRect: TRect;

  public 

property Rect: TRect read fRect write fRect;

  end;

 

 

  shape.Rect.Left := 100;  // Error: Left-side cannot be assigned to 

 

 

you have to instead write:

 

  newRect := shape.Rect;

  newRect.Left := 100;

  shape.Rect := newRect;

 

or

 

  shape.Rect := Rect(100, shape.Rect.Top, shape.Rect.Right,
shape.Rect.bottom);

 

or get real nasty and expose the property by reference:

 

  property Rect: PRect read get_Rect;   //get_Rect returns the PRect of
@fRect

 

allowing you to write:

 

  shape.Rect.Left := 100;  // Now this is fine 

 

But notice now that we have a read/write property that is declared as
read-only and TShape is oblivious to any changes made to its fRect.

 

Or you could expose each field of the record via a separate property (not a
bad idea for  a TRect, but for more complex/larger records this could be
cumbersome).

 

 

This area is a bit sticky, to say the least, and I don't think there's one
single right approach - it depends very much on the specific case at hand.

 

 

 

Having said AAALLL that, I have long since got in the habit of never
exposing public member variables in a class.  J

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of David Moorhouse (DUG)
Sent: Friday, 21 January 2011 07:33
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Variabels stored

 

Because a property hides the implementation details ... you can change to
read / write methods later with no change to the code that is using the
property.  A public field exposes the implementation.

Cheers

D


On 21/01/11 00:44, Ross Levis wrote: 

I don't see the point in doing that, unless the read/write are functions or
procedures.  Just make the string public. 

  

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of David Moorhouse (DUG)
Sent: Thursday, 20 January 2011 11:18 PM
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Variabels stored 

  

Or as field properties if you want to access them from another form ... 

type 

TWallaceForm = class(TForm) 

   btnOK: TButton; 

private 

  FWallacesPrivateVar: string; // private storage 

 public 

   property WallacesPrivateVar: string read  FWallacesPrivateVar write
FWallacesPrivateVar; 

  ... 

end; 

  

Cheers

D

On 20/01/11 16:09, Conor Boyd wrote: 

Probably as a field on the form class that you're dealing with. 

  

e.g. 

  

type 

TWallaceForm = class(TForm) 

   btnOK: TButton; 

... 

  txtWallacesHiddenTextBox: TEdit; 

... 

private 

  FWallacesPrivateVar: string; // use this instead of your hidden
text box. 

// Can create as many
variables (or fields as they're known in Delphi parlance, hence the F
prefix) 

// of as many different
types as you like. 

... 

end; 

  

Hope I've understood what you're asking for correctly. 

  

HTH, 

  

Conor 

  

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Marshland Engineering
Sent: Thursday, 20 January 2011 3:45 p.m.
To: delphi@delphi.org.nz
Subject: [DUG] Variabels stored 

Is there a way to store variables so I can use them from one procedure to
another?   

  

I have been currently storing them in hidden edit.text boxes on the form but
there must be a better way. 

  

Cheers Wallace 

   
   
___  
NZ Borland Developers Group - Delphi mailing list  
Post: delphi@delphi.org.nz  
Admin: http://delphi.org.nz/mailman/listinfo/delphi  
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe  

  

 
 
___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Variables stored

2011-01-20 Thread Jolyon Smith
Assignable typed constants are pointless.

 

If you are going to declare a constant and then use a compiler switch to
make it behave like a variable, then be honest and just use a variable!!

 

Typed constants cannot even be used where normal constants can be:

 

const

   ONE: Integer = 1;

 

   procedure Foo(aIndex: Integer = ONE);   // ERROR: Constant expression
expected

 

or:

 

  case iValue of

ONE: ;  // ERROR: Constant expression expected

  end;

 

Remove the type declaration from the ONE const, and both compile just fine
(note that this is independent of the Assigned Typed Constants compiler
setting).

 

A typed constant is to all intents and purposes a variable, and might as
well be declared as such (note that you can initialise a unit variable as
part of it's declaration):

 

  var

ONE: Integer = 1;

 

 

One final comment - Delphi really has no concept of a global variable.
The highest visibility is unit variable.  You still have to explicitly
use a unit to bring it into scope, and if two units declare variables of
the same name normal scoping rules apply but you can explicitly qualify a
reference using the unit name if you need to override the default scope.

 

Most of the time global/unit variable is close enough that the distinction
doesn't matter, but when it comes to dogma the old rules that global
variables are the spawn of Satan himself needs to be tempered in Delphi
with the fact that they are a bit better behaved than the sort of global
variable that those ritualistic rules were originally devised for.

 

However, it is still true that the occasions when a unit variable is called
for are relatively few, but they should not be simply outlawed for being
something they are not.

 

J

 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Robert martin
Sent: Friday, 21 January 2011 09:18
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Variables stored

 

Hi John

While all you suggest may be true (I don't know about the compiler setting
stuff) I would strongly recommend anybody starting out with programming /
delphi avoids using global variables.  Its a nasty habit to get into :)  

Also the compiler setting you talk about sounds dangerous as someone who
didn't know about it could become highly confused looking at the code or
trying to compile it on a fresh install of Delphi !

Also note I changed the typo spelling of the subject because it was annoying
me :)

Cheers
Rob

On 21/01/2011 9:04 a.m., John Bird wrote: 

There is another way as well, you can declare simple global variables -
depending where you declare it determines it's scope - how visible it it is.

 

In this example string2 can be seen by any unit that uses this one, just as
Form11 (the particular instance of TForm11, and is also a global variable)
is visible.

 

String3 can be seen by all procedures in this unit, but not by anywhere
else.If you have lots of simple variables to store and they don't need
to be inherited etc this is the simplest way to do it.

 

You can take this further:

If I have lots of constants to declare, or variables to store I create a
unit which is code only (no classes) eg called storeunit and declare all the
constants and variables I want there, any form or unit that wants access to
all these variables just has to add storeunit to its uses clause.   This
centralises all such declarations in one place away from a form and is very
tidy.   I will often put simple global functions and procedures in here too,
as they also become globally available, eg various standard ways for
formatting dates and strings.   Also this unit can be uses in different
projects as well.   For this just go to File/New/Unit   and the IDE gives
you a new blank unit already to add stuff to - a simpler unit with no form
or class stuff.

 

Here string4 string5 integer1 integer2 integer3 can all be seen from
anywhere that uses Storeunit

 

It depends on whether you like using global variables or not.   Also its a
good idea to use a clear naming convention for such variables.

 

There are other tricks you can do too -  you can alter compiler settings to
allow assignable constants for a procedure, then any values assigned here
will be preserved between calls to the procedure.   But that seems to be
confusing to me, as it really becomes a variable and not a constant.   I saw
that used in and example where the program wanted a counter of the number of
times the procedure was called, and the counter constant in the procedure
was assigned a new value each time the procedure was called, its quite a
tidy way to do that sort of thing.  In this case the scope (visibility) of
the variable is totally limited to the one procedure.

 

 

type
  TForm11 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
  private
{ Private declarations }
  public
{ Public declarations }
MyString : string;
  end;

var
  

Re: [DUG] Variables stored

2011-01-20 Thread Jolyon Smith
It doesn’t take “with” to break the Delphi refactorings.  Perfectly ordinary, 
healthy, unexceptional, uncomplex code can do that !!  I find the refactorings 
to be next to useless as a result – when they work at all they simply cannot be 
relied on to have worked completely correctly.

 

The one thing “with” does do is “break” the debugger, but even that isn’t 
accurate.  It is more accurate to say that “with” reveals a bug in the debugger 
(scope resolution that does not match that applied by the compiler) that should 
be fixed.

 

There are very, very, VERY (one more time: VERY) few occasions when with should 
be used, but one that I see no problem with [sic] is:

 

  with SomeComboBox do

 ItemIndex := Items.IndexOf( someStringValue );

 

 

(or at least I do when working with combobox/list classes that don’t provide a 
more convenient way of selecting an item by value, rather than index)

 

J

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of Alister Christie
Sent: Friday, 21 January 2011 16:11
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Variables stored

 

With is pretty dangerous because of scoping issues - and it breaks all the 
refactorings.  I'd like to see a with f : MyDataModule.MyDataSet do or 
similar construct.  I believe there is something like this in Prism.





Alister Christie
Computers for People
Ph: 04 471 1849 Fax: 04 471 1266
http://www.salespartner.co.nz
PO Box 13085
Johnsonville
Wellington 


On 21/01/2011 3:32 p.m., Ross Levis wrote: 

Yes.  But I have done things like this.

 

procedure DoSomething;

begin

  with MainForm do

  begin

…

  end;

end;

 

Definitely lazy.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of John Bird
Sent: Friday, 21 January 2011 3:17 PM
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Variables stored

 

Lazy? or simpler and convenient?

 

plain functions that might be useful anywhere in any program are best done like 
this I would think.   Examples are in Delphi units afterall, eg StrUtils

 

John

 

I use some global variables.  I also have what I assume are other bad habits 
like creating plain functions or procedures instead of declaring them inside 
the form class.  Just lazy.

 

Ross.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of Jolyon Smith
Sent: Friday, 21 January 2011 9:44 AM
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Variables stored

 

Assignable typed constants are pointless.

 

If you are going to declare a constant and then use a compiler switch to make 
it behave like a variable, then be honest and just use a variable!!

 

Typed constants cannot even be used where “normal” constants can be:

 

const

   ONE: Integer = 1;

 

   procedure Foo(aIndex: Integer = ONE);   // ERROR: Constant expression 
expected

 

or:

 

  case iValue of

ONE: ;  // ERROR: Constant expression expected

  end;

 

Remove the type declaration from the ONE const, and both compile just fine 
(note that this is independent of the Assigned Typed Constants compiler 
setting).

 

A typed constant is to all intents and purposes a variable, and might as well 
be declared as such (note that you can initialise a unit variable as part of 
it’s declaration):

 

  var

ONE: Integer = 1;

 

 

One final comment – Delphi really has no concept of a “global” variable.  The 
highest visibility is “unit variable”.  You still have to explicitly “use” a 
unit to bring it into scope, and if two units declare variables of the same 
name normal scoping rules apply but you can explicitly qualify a reference 
using the unit name if you need to override the default scope.

 

Most of the time global/unit variable is close enough that the distinction 
doesn’t matter, but when it comes to dogma the old rules that “global variables 
are the spawn of Satan himself” needs to be tempered in Delphi with the fact 
that they are a bit better “behaved” than the sort of global variable that 
those ritualistic rules were originally devised for.

 

However, it is still true that the occasions when a unit variable is called for 
are relatively few, but they should not be simply outlawed for being something 
they are not.

 

J

 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of Robert martin
Sent: Friday, 21 January 2011 09:18
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Variables stored

 

Hi John

While all you suggest may be true (I don't know about the compiler setting 
stuff) I would strongly recommend anybody starting out with programming / 
delphi avoids using global variables.  Its a nasty habit to get into :)  

Also the compiler setting you talk about sounds dangerous as someone who didn't 
know about it could become highly confused looking at the code or trying to 
compile it on a fresh

Re: [DUG] Variables stored

2011-01-20 Thread Jolyon Smith
 you might be able to go even one better by setting the Action = caFree

This is hardly ever a good idea when a form is intended to be used as a
dialog as it is a frequent pattern to pass information back from the dialog
to the invoking code via public properties of the dialog form class:

  Dlg := TSomeDialog.Create(NIL);
  Try
If dlg.ShowMOdal = mrOK then
Begin
  FileName := dlg.FileName;
  // blah blah
End;
  Finally
Dlg.Free;
  End;


Note the use of Free in this context is safe.  Release is advised if you
Free a form in response to some event on the form itself, e.g. in an OnClick
of a button.  This avoids the form being destroyed out from underneath the
feet of the code in the event handler.

But when you have invoked a form using ShowModal, ShowModal will not return
until the message loop created for the form has terminated.  If the form
could be freed from out underneath the feet of this code then you are in
serious trouble.

In general, it is a bad idea to have a situation that could result in a form
being free'd in response to an event on that form.  When I see Release()
being used I am immediately nervous.





 Actually is Self.Create safe - rather than TMyDialog.Create?

Much safer imho.

1) if you renamed your class your method body doesn't need to change.  Yeah
you can use a refactoring which will take care of such details, but why
rely on tool support *more* than you strictly need to ? (and see previous
comments about dubious reliability of ref[a/u]ctorings)

2) if you user poor man's code re-use and copy/pasted this method (perhaps
you have another form where you want a class Execute() method, then if you
have hard-wired the class name in the method body, and if you forget to fix
it in your pasted code (happens ALL too often!) then your second dialog
class is going to instantiate the wrong form class, which could have you
banging your head for a while until you realise your mistake.

3) The self is itself I think redundant. 



___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Arc's

2011-01-18 Thread Jolyon Smith
Drawing an arc is already easy, using the Canvas.Arc() method that you have
already identified.  J

 

You simply need to derive the values required to input to that method.  J

 

Given that you have the start/end points and it seems from the way you have
put it that these are known to be on the arc, all you are missing is the
bounding rectangle for the ellipse.

You have the center point, so if you know the axial dimensions of the
ellipse (width/height) then calculating the bounding rectangle is a simple
matter of:

 

  bound.Left   := center.x - (width div 2);

  bound.Top:= center.y - (height div 2);

  bound.Right  := center.x + (width div 2);

  bound.Bottom := center.y + (height div 2);

 

  Canvas.Arc( bound.Left, bound.Top, bound.Right, bound.Bottom, start.X,
start.Y, end.X, end.Y );

 

If the ellipse is (or could be) rotated then things are more complicated I
think.

 

I forget which is the default direction for arc drawing (clockwise or
counter-clockwise) but if you need to adjust that then I think you can
either simply swap your start/end points or explicitly set the arc direction
using the SetArcDirection() GDI call:

 

http://msdn.microsoft.com/en-us/library/dd162961(v=VS.85).aspx

 

If the start/end points are not actually ON the arc, then you will need to
calculate the intersection of the lines defined by those points w.r.t the
ellipse center.  This is basic trig tho, and any number of online sources
should provide the formulae for these calculations, should you need them.

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Marshland Engineering
Sent: Tuesday, 18 January 2011 21:03
To: delphi@delphi.org.nz
Subject: [DUG] Arc's

 

Is there an easy way of drawing an arc ?  I have center, start and end
co-ordinates as XY. 

 

From what I can see, I need to look at least 16 combinations to work out the
perimeter size depending in which quadrant the start and ends are in.  

 

procedure Arc(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);

 

Use Arc to draw an elliptically curved line with the current Pen. The arc
traverses the perimeter of an ellipse that is bounded by the points (X1,Y1)
and (X2,Y2). The arc is drawn following the perimeter of the ellipse,
counterclockwise, from the starting point to the ending point. The starting
point is defined by the intersection of the ellipse and a line defined by
the center of the ellipse and (X3,Y3). The ending point is defined by the
intersection of the ellipse and a line defined by the center of the ellipse
and (X4, Y4).

DISCLAIMER:  This electronic message together with any attachments is
confidential.  If you are not the intended recipient, do not copy, disclose
or use the contents in any way.  Please also advise us by return e-mail that
you have received the message and then please destroy.  Carter Holt Harvey
is not responsible for any changes made to this message and / or any
attachments after sending by Carter Holt Harvey.  We use virus scanning
software but exclude all liability for viruses or anything similar in this
email or any attachment. 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Auckland Company Developing in Delphi

2011-01-18 Thread Jolyon Smith
And there was I respecting Leigh's attempt at discretion  oh well.


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Todd
Sent: Wednesday, 19 January 2011 14:27
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Auckland Company Developing in Delphi

Because the company he is working for is sacking half their developers.
 Leigh may as well have said What ever you do, don't push the big red
 button - in a group full of curious people - it's obvious what is going
 to happen.

 I don't live in Auckland, and therefore shouldn't care - but I would
 still like to know why Leigh is asking this question.

 Alister Christie
 Computers for People
 Ph: 04 471 1849 Fax: 04 471 1266
 http://www.salespartner.co.nz
 PO Box 13085
 Johnsonville
 Wellington


 On 19/01/2011 1:04 p.m., Jolyon Smith wrote:

 He did ask not to be asked why he was asking.  :)


 -Original Message-
 From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz]
On
 Behalf Of David Brennan
 Sent: Wednesday, 19 January 2011 12:52
 To: 'NZ Borland Developers Group - Delphi List'
 Subject: Re: [DUG] Auckland Company Developing in Delphi

 We're in Auckland too.

 Leigh, I imagine you can assume everyone on this list is using Delphi to
 some degree, but I guess you don't know where they are based? Or are you
 mainly wanting to know who is doing active development as opposed to just
 maintenance?

 Cheers,
 David.

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe


  
 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Validating CDS files

2011-01-17 Thread Jolyon Smith
Which takes me right back to the very first software development course I
ever attended.  One half of a day was spent learning the most important
lesson I ever learned in this business...

Be cautious or even suspicious when a specification/question is provided

in the form of a request for a specific technical solution.


The first thing you should do is obtain an understanding of the *problem*
that the solution is supposed to solve.  Anyone that can ask for a specific
technical solution should be able to provide that solution themselves.  If
they have to ask for help in building the solution, then they are most
likely simply not equipped to identify it as the solution in the first
place, and so they should be guided back to the problem itself.

(Of course, it may be that even with complete understanding the same
technical solution is, after all, arrived at - never rule out blind luck!
LOL)


An example might be someone asking for help in building a flotilla of reed
boats.

   Option 1: Show them how/Help them to build a boat out of reeds

   Option 2: Ask them why they need such a seemingly odd flotilla of boats
...


Take option 2 and imagine they reply:-

   Because I need to get a few hundred people across a river, and 
where we are there are no trees nearby so I have no wood with 
which to build regular boats.  There are plenty of reeds though,
and I heard about this guy that built a boat of reeds and so I 
figured I'd do that but I need someone to tell me how to do it

Then ask them where this river is and where they are.  Then imagine that
when you learn that where they are, you know that there is already a
foot-bridge across the river, just around a bend that they apparently didn't
know about.  TA DA!


They presented a request for a solution to a problem without fully
understanding their own problem domain.  With a proper understanding of the
problem domain, the asked for solution is readily identified as misguided -
at best - and a cheaper, faster, more appropriate solution identified.


In my experience, when a request comes in the form of a specific solution, 9
times out of 10 there is a better, more appropriate solution.  Indeed, quite
often it becomes apparent that the asked for solution would not actually
have even been a solution at all.

The species of reed at hand may not be suitable for building boats out of,
so your flotilla would simply have sunk and you still would not have made it
across the river.

:)


Your responses to questions intended to discover more about the problem
domain have been puzzling in some cases, and flat-out contradictory in
others, which lead me to wonder if you perhaps weren't trying to built a
flotilla of reed boats when there was a foot-bridge just out of sight.

Pardon me for trying to help.

Carry on as you were.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Matthew Comb
Sent: Monday, 17 January 2011 22:34
To: NZ Borland Developers Group - Delphi List
Cc: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Validating CDS files

Hi Jolyon,

I almost wish I hadn't asked this question now :)

I'm well aware of the options, and setting up a webservice to retrieve a
hashed/checksumed payload set, is our preferred approach yes. This is a
legacy piece of software and doesn't adhere to our architectural patterns
and practices.

Knowing and acknowledging this is the better solution, I asked only one
very simple question.

Is there a known way to validate a binary CDS file.

All other solutions and suggestions are appreciated but really not
necessary. I may have lead the thread offtrack. Sorry for that.

Cheers,

Matt.



 I am thoroughly confused now...

 If you are talking about a *stream* that you theorise is being corrupted
 in
 mid-flow over the wire, then I don't see how XML really helps ensuring the
 integrity of that stream, or at least not how it is any more helpful than
 other techniques ... you can't do anything with XML until the document is
 complete as an incomplete document is not valid no matter how valid it may
 be when eventually complete.

 So you can't do any validation until your potentially interrupted stream
 has
 finished streaming and you have a complete file to work with.

 That being the case, if XML is a viable way to circumvent your apparent
 problem then why can you not simply eliminate the streaming part entirely
 ?
 Dump your output into a file on the server side of your communication,
 then
 transmit the entire file, thereby leveraging the integrity checks of the
 connection to ensure reliable transmission.

 Hashing files in this way is a trivially simple and relatively efficient
 matter using MD5, for example.


 I am not entirely convinced that you are solving the right problem here.


 The infrequency of the apparent corruption could surely potentially be as
 much due to an infrequent access to some data that is already 

Re: [DUG] Validating CDS files

2011-01-17 Thread Jolyon Smith
Oh, I should thank you for providing the bones of a blog post.  :)

http://www.deltics.co.nz/blog

Thank you.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Matthew Comb
Sent: Monday, 17 January 2011 22:34
To: NZ Borland Developers Group - Delphi List
Cc: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Validating CDS files

Hi Jolyon,

I almost wish I hadn't asked this question now :)

I'm well aware of the options, and setting up a webservice to retrieve a
hashed/checksumed payload set, is our preferred approach yes. This is a
legacy piece of software and doesn't adhere to our architectural patterns
and practices.

Knowing and acknowledging this is the better solution, I asked only one
very simple question.

Is there a known way to validate a binary CDS file.

All other solutions and suggestions are appreciated but really not
necessary. I may have lead the thread offtrack. Sorry for that.

Cheers,

Matt.



 I am thoroughly confused now...

 If you are talking about a *stream* that you theorise is being corrupted
 in
 mid-flow over the wire, then I don't see how XML really helps ensuring the
 integrity of that stream, or at least not how it is any more helpful than
 other techniques ... you can't do anything with XML until the document is
 complete as an incomplete document is not valid no matter how valid it may
 be when eventually complete.

 So you can't do any validation until your potentially interrupted stream
 has
 finished streaming and you have a complete file to work with.

 That being the case, if XML is a viable way to circumvent your apparent
 problem then why can you not simply eliminate the streaming part entirely
 ?
 Dump your output into a file on the server side of your communication,
 then
 transmit the entire file, thereby leveraging the integrity checks of the
 connection to ensure reliable transmission.

 Hashing files in this way is a trivially simple and relatively efficient
 matter using MD5, for example.


 I am not entirely convinced that you are solving the right problem here.


 The infrequency of the apparent corruption could surely potentially be as
 much due to an infrequent access to some data that is already corrupt on
 the
 server as it is to some sporadic wireless network corruption, no ?


 -Original Message-
 From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz]
 On
 Behalf Of Matthew Comb
 Sent: Monday, 17 January 2011 19:20
 To: NZ Borland Developers Group - Delphi List
 Subject: Re: [DUG] Validating CDS files

 Paul,

 Thanks for your thoughts, I was tending towards reverse engineering the
 format, I could not see any obvious tokens at footer, and wondered if
 someone had beaten me to it.

 I actually prefer the simplicity of your idea of compressing/encrypting
 the xml file. Thats a tidyier solution for now until we can get to the
 hashing

 Not sure why we haven't thought of that already

 Cheers,

 Matt.


 Matthew wrote:

 I wasn't suggesting that wireless was changing byte
 structure, but if you are streaming data, and your datastream
 gets disconnected, then you could end up with an incomplete transfer.

 I'm not 100% sure that midas catches all scenarios when
 working off a remote data instance ?

 Note we use dbx4mysql + midas.

 Note also that I cannot rule out the drivers either and also
 could be the data out of the db server, its a tricky one to
 track down, as you basically have a black box from db -
 dbxmysql + midas...

 What I do know is that its very rare. e.g. maybe 1 in 10,000
 usages corrupts the file and has occurred in more than 1
 location, so it does not appear to be station specific.

 Logically with these stats, I can only put that down to a
 flakey connection, otherwise the error rate would be more often.

 If you can't go the hash route in the short term, it sounds to me like
 you'll need to reverse engineer the cds format to determine whether
 there is a examinable file tail.

 I don't imagine the format will be _that_ hard to reverse engineer but
 then I've done a fair bit of binary reverse engineering so maybe I'm
 being a bit cavalier. If you make a number of simple and small cds files
 and compare and contrast them, you can probably work your way up in
 determining the encoding.

 Assuming it was implemented using some form of streaming class model,
 there may well be a common interface and then a cds outputter and an xml
 outputter. If so, there is probably going to be a fairly 1-to-1 mapping
 between the binary format and the xml format in terms of logical schema.

 These xml inspited compressed binary schemas are often all pretty
 similar - they replace the text tags and attributes with binary tokens
 taken from a dictionary to avoid repetition and reduce the size.

 As an side, often you're better off just zipping the xml rather than
 implementing and debugging your own tokenized 'binary xml' engine but
 that's a 

Re: [DUG] Validating CDS files

2011-01-17 Thread Jolyon Smith
Those developers that came back with TO DO lists were perhaps themselves
not taking the time to understand the customers problems.  The customer told
them those 10,000 features are great, but we'd really like X, Y and Z, so
the developers simply came back to you with that list of X, Y and Z.

Far from analysing too much, they were most likely not analysing *enough*.


That specialist you hired is most likely looking at the X, Y and Z and then
asking the customer... But what do you need X, Y and Z for? then showing
them that they already HAVE X, Y and Z among the 10,000 other features.


That quite neatly demonstrates my point I think.  Understand the problem...
not only might the solution you are asking for not be ideal, but you might
already be in possession of the solution !!!



  I have a legacy piece of software which very very rarely corrupts a
   local data file - fact

The real problem to be solved is how/why the corruption occurs... everything
else is just sticking plaster, not a solution, and even the sticking plaster
can only help if you apply the right sort of dressing correctly.


  Regardless of the better long term solutions, we will take 
   a defensive programming measure to protect against the loading 
   of corrupt files.

And my point in this area was that unless you understand how/where the
corruption is occurring, the defensive measures you might take may very well
end up not being defensive at all.

e.g. the idea of checksuming the output from the server...  if the data
coming from the server is corrupt from the get-go, then check-summing helps
you not one little bit.



You initially blamed the corruption on a flaky wifi connection - highly
unlikely for the reasons that I and others have explained.  You then
explained that you were streaming the data, so the corruption might occur in
sporadic bytes in the stream.

But then you seemed attracted to the idea of using XML as a potential way
forward, which would seem to contradict the streaming nature of the data
transmission.

And now you admit:

   I do not know yet where this corruption occurs. DB Server, Drivers, 
In Memory, Saving of the file, Server DB.





  Its not true to take the standpoint that if someone asks for the solution
   then they should be able to provide it e.g  If I ask for Word 2010 should
   I be capable of sitting down and writing the application suite?

I didn't say that they *should* be able to provide it in the sense that you
took it to mean - I said as to draw attention to the inherent contradiction.
The only way you can confidently ask for a solution in the form of a
solution specification, without explaining the problem, is if you fully
understand the problem and *could* provide the solution yourself.  In which
case, you would never have needed to ask someone else to provide the
solution for you.

In other words, when someone asks for a solution, rather than stating a
problem, the likelihood is that they are asking for the wrong solution from
the very start!


Your Word 2010 example this is a quite different sort of request from what
we are actually discussing (it's not a technical solution just a shopping
list), never-the-less even this inappropriate parallel can be used to
illustrate the same point:


If you ask for Word 2010, should I just sell it to you simply because you
can't write it yourself ?

Or should I first ask what you need it for ?

If you tell me you want it for doing bulk emails, and you heard that Word
2010 has some neat mail-merging capabilities, then I am pretty confident
that I can sell you a better solution for your needs than just handing over
a copy of Word 2010.

I could just give you what you want, but that may not be what you need.




Incidentally, nobody gave me a blog.  I created my blog in order to share
my skills and experience and - if my stats are to be believed - many, many
people appreciate it.

I gain some sense of satisfaction from the fact that people (well, *some*
people at least) seem to appreciate my effort, but it certainly doesn't go
to my head.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Validating CDS files

2011-01-17 Thread Jolyon Smith
You seem to be missing your own time and money factor... an hour spent
analysing a problem can save days spent wasting time building the solution
that was asked for but which ultimately wasn't needed.


   Thats just rubbish

Such a comprehensively and well presented case is hard to argue with.  ;) 



 In other words, when someone asks for a solution, rather than stating a
 problem, the likelihood is that they are asking for the wrong solution
 from the very start!

  Statistically probably correct more often than not, but still an 
   Arrogant assumption that the person is clueless / uninformed of possible 
   solutions.

Any arrogance and any derogatory characterisation of people involved is
entirely up to you.

As a simple statement of fact, people who are not adequately informed often
make wrong choices.  Determining the level of informed-ness of someone that
asks for a specific solution, rather than asking for help in *finding* a
solution, is to my mind simply to be responsible and considerate.



  Its also arrogant to assume you know everything abou the motivation
   And drivers as to why the person asked the question in the first place.

You completely miss the point, which is to positively HELP someone, not
demonstrate superior knowledge, not mock the person asking for the solution,
but precisely to try to ensure that they GET a useful solution.

They asked for help after all.  Don't they deserve it?



  You should sell it to me because I asked to buy it.

You are the one missing the point.  If I just want to make money out of
people, then I certainly will be happy to sell you anything you wish to pay
me for, and if you just want to spend your money take your custom to someone
who is out to take it from you.  Noel Leeming will happily exchange your
$$'s for Word 2010 without a murmur.

But if you asked *ME* for a copy of Word 2010, it would surely be reasonable
to think that you expected to benefit from my experience and knowledge in
IT.  No ? 


I personally like to help people, not just exploit their
gullibility/stupidity/ignorance.  That may be a financially rewarding
approach but it's not good for the soul.

:)



  Again you are incorrectly assuming that the person asking the question 
   Is a retard.

All I can say is that you are the one that seems determined to make such
derogatory assumptions/characterisations.


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Validating CDS files

2011-01-17 Thread Jolyon Smith
LOL

Just wait for the blu-ray, with director's commentary, out-takes and a
special Making of featurette.  :)


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of David Brennan
Sent: Tuesday, 18 January 2011 12:44
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Validating CDS files

Mmmm, I'm enjoying my popcorn as I watch...


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Validating CDS files

2011-01-17 Thread Jolyon Smith
 You are making an assumption that the analysis has not been already done.

 You are assuming that people are not adequately informed.

That can only be determined by inquiring.  I'd rather not assume that
someone is fully informed - that is a more dangerous assumption.  Of course,
one can never account for someone taking unreasonable exception and
mis-interpreting when someone asks questions and challenges the responses in
an attempt to clarify, qualify and HELP.



 I didn't ask you specifically, and didn't ask about the areas you
answered.

You asked the DUG list.  If you didn't want engagement and interaction you
should have just asked Google.

Good luck.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


[DUG] Apologies (Was RE: Validating CDS files)

2011-01-17 Thread Jolyon Smith
I do hope Kyley's comments were intended with tongue in cheek.

 

Matthew's comments about people feeling flamed surprised and saddened
me... I was only replying to his messages, and when someone publicly accuses
me of arrogance and regarding someone as retarded when I absolutely did not,
I feel entitled to defend myself equally as publicly.

 

If that has upset anyone then I apologise, but I certainly don't understand
why it should make anyone feel disinclined to post to the list as Matthew
seems to have been told or indeed why anyone feeling that way didn't think
to address me directly with any concerns about any perceived bad behaviour
on the list.

 

 

I can't quite believe or understand how or why a well intentioned effort to
help someone could have been interpreted so wrongly or why it turned into a
character assassination in the way that it did.

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Kyley Harris
Sent: Tuesday, 18 January 2011 13:40
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Validating CDS files

 

I'm wondering if you analyzed your need for popcorn carefullly. You asked
for popcorn.. you got your popcorn. but perhaps you've been taken for a
ride. If we analyze your need carefully for an hour, what we could have
determined is that you truley wanted a 30 minute comedy show, and some salt
- and -vinegar chips to go with it. Not popcorn at all. Perhaps the desire
for popcorn stemmed from your not correctly seeing your needs in the first
place. I feel its my duty to help you access the situtation so that you get
what you need and not what you want.

We could discuss this further privately, and I'm sure with all my experience
in these situations that a 3 hour lunch break daily, with said included
comedies and chips will satisfy your needs more appropriately.. The Popcorn
is just a bandaid.

On Tue, Jan 18, 2011 at 12:44 PM, David Brennan dugda...@dbsolutions.co.nz
wrote:

Mmmm, I'm enjoying my popcorn as I watch...


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Matthew Comb

Sent: Tuesday, 18 January 2011 11:12 a.m.
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Validating CDS files

 Those developers that came back with TO DO lists were perhaps themselves
 not taking the time to understand the customers problems.  The customer
 told
 them those 10,000 features are great, but we'd really like X, Y and Z,
 so
 the developers simply came back to you with that list of X, Y and Z.

 Far from analysing too much, they were most likely not analysing *enough*.

What your argument does not take into account yet again (which was my
point that was missed), is the time and money factor. If you have a 1 day
or 2 day install, you do not have time to spend all 2 days taking on
customer requests when the customer is not yet up to speed with the
capabilities of the system. A customer often doesn't know what they need
until they get to use the system, then their requirements frequently
change. If you have unlimited time and money then by all means, spend
every waking moment analysing each and every item raised, Cameron would
probably tear his hair out.



 That specialist you hired is most likely looking at the X, Y and Z and
 then
 asking the customer... But what do you need X, Y and Z for? then showing
 them that they already HAVE X, Y and Z among the 10,000 other features.


 That quite neatly demonstrates my point I think.  Understand the
 problem...
 not only might the solution you are asking for not be ideal, but you might
 already be in possession of the solution !!!


I don't think it does at all.



   I have a legacy piece of software which very very rarely corrupts a
local data file - fact

 The real problem to be solved is how/why the corruption occurs...
 everything
 else is just sticking plaster, not a solution, and even the sticking
 plaster
 can only help if you apply the right sort of dressing correctly.

Thats right, that is the root problem, but as this piece of software has
been in the field for 8 years, and is being decommissioned, there isn't a
lot of point in that is there. So a bandaid is more than adequate.



   Regardless of the better long term solutions, we will take
a defensive programming measure to protect against the loading
of corrupt files.

 And my point in this area was that unless you understand how/where the
 corruption is occurring, the defensive measures you might take may very
 well
 end up not being defensive at all.

If you validate a CDS file, and don't load it if it is corrupt. That is a
defensive measure.


 e.g. the idea of checksuming the output from the server...  if the data
 coming from the server is corrupt from the get-go, then check-summing
 helps
 you not one little bit.


Agreed which is why I didn't ask about it.



 You initially blamed the corruption on a flaky wifi connection - highly
 

Re: [DUG] Validating CDS files

2011-01-16 Thread Jolyon Smith
What does validate mean for a CDS file ?

For XML it obviously/intuitively means is a valid XML representation of a
CDS file but for a CDS file, if you dumped it from a client data set in the
first place, what additional validation would be needed to ensure that it is
a CDS file ?


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Matthew Comb
Sent: Monday, 17 January 2011 10:27
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Validating CDS files

Hey Cam, for space size reasons, we're using the CDS format not the XML
format as the files get pretty large.

Matt

 If you have dumped the CDS as XML then you can validate it using XSD.  I
 haven't come across a schema for it but it shouldn't be hard to make.

 Cameron Hart | Development Manager | Flow Software Limited
 P: +64 9 476 3569 x910 | M: +64 21 222 3569 | E:
 cameron.h...@flowsoftware.co.nz
 PO Box 305-237, Triton Plaza, Auckland 0757, New Zealand |
 www.flowsoftware.co.nz

 This message is intended for the addressee named above. It may contain
 privileged or confidential information. If you are not the intended
 recipient of this message you must not use, copy, distribute or disclose
 it to anyone.

 Please consider the environment before printing this email

 -Original Message-
 From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz]
 On Behalf Of Matthew Comb
 Sent: Monday, 17 January 2011 10:03 a.m.
 To: NZ Borland Developers Group - Delphi List
 Cc: NZ Borland Developers Group - Delphi List
 Subject: [DUG] Validating CDS files

 Does anyone know if there is a way to Validate a CDS file (midas) before
 attempting to load it into the dataset ?

 Matt

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
 unsubscribe

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
 unsubscribe



___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Validating CDS files

2011-01-16 Thread Jolyon Smith
 What I'm really after is a file level test to check that file should even
 be attempted. e.g. open file stream seek start and seek end and check a
 couple of bytes... that type of thing.

It seems to me that such a check would be incomplete and therefore
unreliable and that you may introduce this additional check in front of an
attempt to load a CDS files which is still never-the-less corrupt and so
still have to accommodate that potential.

So instead of:

  - attempt to load
- abend if corrupt

You would have:

  - check validity (however you choose to do this)
  - if OK then
- attempt to load
  - abend if corrupt
  - else
  - abend (due to detected corruption)


Notice how the flow simply and completely encapsulates the existing flow, it
doesn't avoid or simplify any part of it.  It may simplify and streamline
the abend flow however - but if your application is required to deal with
failures efficiently because you expect more failure than success then you
should perhaps reconsider your approach entirely.

:)


The overhead of additional loading is only necessary if you deliberately
perform a full load into some temporary object simply to ensure that you
will successfully be able to load it into the actual desired target object.
But if you can simply load it into the target object then you don't need to
duplicate the load attempt - just go ahead and try to load it and deal with
any failure as required.


Introducing pre-load validity checks is a waste of time if an attempt to
load an invalid file causes nothing other than a failed load attempt that
can be safely detected and handled.

Pre-load validity checks would have value if the attempt to load an invalid
file would cause some otherwise undetectable and undesirable side effect.


But it is hard to say for sure what is the correct/most appropriate approach
without more detailed knowledge of the application and its operating
conditions.

+0.02

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Validating CDS files

2011-01-16 Thread Jolyon Smith
H.

Flakey wireless LAN ?  

Surely wifi (or any LAN tech for that matter) has mechanisms built in to the
protocol to ensure this sort of thing does not occur  certainly even
with the flakiest of wifi connections I have never experienced corruption.
The wifi connection is either made, however slowly as a result of the
flakiness, or not made at all.


Are you positive that the corruption is not occurring directly in the
output of the remote server, rather than in the communication of the data ?


Because if that's the case then checksuming will of course be a waste of
time 


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Todd
Sent: Monday, 17 January 2011 14:22
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Validating CDS files

Hi Matthew

It sounds like comparing a MD5 hash of the CDS file prior to sending and 
subsequent to receiving the data stream would provide a sufficient check 
on its integrity.

Todd.
 Hi Todd,

 The ClientDatasets initially get populated via a remote server, and it is
 this process which in rare cases causes the corruption (e.g. customer on
 flakey wireless lan or similar).

 Longterm we will replace this mechanism so the dataset is populated server
 side and send back with a hash which will maintain integrity.

 For the moment, we are stuck with a mechanism which populates this cds
 data and then writes to file.

 Appending some metadata at this point is a valid option. Ill test and see
 if it circumvents the issue. The main issue though is that I'm not sure if
 the ClientDataset at this point knows that the data is corrupt, and
 therefore we could be exporting a corrupt data chunk packed with some
 metadata, which does not help.

 Thats why we really need some protection on load.

 Cheers,

 Matt.




 Hi Matthew

 Are the CDS files being stored as disk files or in a database? How are
 they being corrupted? Faulty back up media? Perhaps you could add some
 meta-data to each file as it is saved.

 Todd.
  
 The driver for the question, is that we have some application client
 datasets which are put into a defaulted state if a corrupt cds file is
 loaded.

 Yes with XML, we can just validate the XML, but we use the binary format
 so that solution does not apply.

 At present we basically have two solutions.

 1. Load into a test clientdataset as suggested by Alistair. This is a
 valid solution but does add considerable load time into the startup.

 2. Can load into application clientdatasets, and dispose and reload if
 error encountered. This is ok also but does require additional loading
 in
 case of error.

 What I'm really after is a file level test to check that file should
 even
 be attempted. e.g. open file stream seek start and seek end and check a
 couple of bytes... that type of thing.

 Matt.





 What does validate mean for a CDS file ?

 For XML it obviously/intuitively means is a valid XML representation
 of a
 CDS file but for a CDS file, if you dumped it from a client data set
 in
 the
 first place, what additional validation would be needed to ensure that
 it
 is
 a CDS file ?


 -Original Message-
 From: delphi-boun...@delphi.org.nz
 [mailto:delphi-boun...@delphi.org.nz]
 On
 Behalf Of Matthew Comb
 Sent: Monday, 17 January 2011 10:27
 To: NZ Borland Developers Group - Delphi List
 Subject: Re: [DUG] Validating CDS files

 Hey Cam, for space size reasons, we're using the CDS format not the XML
 format as the files get pretty large.

 Matt


  
 If you have dumped the CDS as XML then you can validate it using XSD.
 I
 haven't come across a schema for it but it shouldn't be hard to make.

 Cameron Hart | Development Manager | Flow Software Limited
 P: +64 9 476 3569 x910 | M: +64 21 222 3569 | E:
 cameron.h...@flowsoftware.co.nz
 PO Box 305-237, Triton Plaza, Auckland 0757, New Zealand |
 www.flowsoftware.co.nz

 This message is intended for the addressee named above. It may contain
 privileged or confidential information. If you are not the intended
 recipient of this message you must not use, copy, distribute or
 disclose
 it to anyone.

 Please consider the environment before printing this email

 -Original Message-
 From: delphi-boun...@delphi.org.nz
 [mailto:delphi-boun...@delphi.org.nz]
 On Behalf Of Matthew Comb
 Sent: Monday, 17 January 2011 10:03 a.m.
 To: NZ Borland Developers Group - Delphi List
 Cc: NZ Borland Developers Group - Delphi List
 Subject: [DUG] Validating CDS files

 Does anyone know if there is a way to Validate a CDS file (midas)
 before
 attempting to load it into the dataset ?

 Matt

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with
 Subject:
 unsubscribe

 ___
 NZ 

Re: [DUG] Maths problem for the day

2011-01-10 Thread Jolyon Smith
Not Power(), Log10():

 

   Max := Bias.Position * Log10(Files);

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Tuesday, 11 January 2011 14:25
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Maths problem for the day

 

Convert the following into one line.

 

if High(Files)  30 then Max := Bias.Position

else if High(Files)  300 then Max := Bias.Position*2

else if High(Files)  3000 then Max := Bias.Position*3

else if High(Files)  3 then Max := Bias.Position*4

etc

 

I think there must be a way. Probably using the Power function, but I can't
get my head around it.

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Maths problem for the day

2011-01-10 Thread Jolyon Smith
Darn, I got carried away... it's not quite that straightforward (unless your
algorithm can be adjusted accordingly).

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Tuesday, 11 January 2011 14:25
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Maths problem for the day

 

Convert the following into one line.

 

if High(Files)  30 then Max := Bias.Position

else if High(Files)  300 then Max := Bias.Position*2

else if High(Files)  3000 then Max := Bias.Position*3

else if High(Files)  3 then Max := Bias.Position*4

etc

 

I think there must be a way. Probably using the Power function, but I can't
get my head around it.

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Maths problem for the day

2011-01-10 Thread Jolyon Smith
Here ya go: 

 

 Max := Bias.Position *  Trunc( Log10( 10 * ( High(Files) div 3 ) ) );

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Tuesday, 11 January 2011 14:25
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Maths problem for the day

 

Convert the following into one line.

 

if High(Files)  30 then Max := Bias.Position

else if High(Files)  300 then Max := Bias.Position*2

else if High(Files)  3000 then Max := Bias.Position*3

else if High(Files)  3 then Max := Bias.Position*4

etc

 

I think there must be a way. Probably using the Power function, but I can't
get my head around it.

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Maths problem for the day

2011-01-10 Thread Jolyon Smith
Nice one Glen!!

 

I made it harder on myself by self-imposing Integers (and actually you'd
still need to handle High(Files) for 0, 1 and 2 separately as these will
trap Log10() with a ZeroDivide error in my case.   DOH!

 

J

 

That was a fun diversion tho. 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Glenn Crouch
Sent: Tuesday, 11 January 2011 14:37
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Maths problem for the day

 

Something akin to:

 

Max := Int (Math.Log10 (High (Files)/ 3.0 - 0.1)) *
BiasPositon;

 

Above assumes Max is a Float need to convert to Integer otherwise :)

 

Glenn Crouch,  mailto:gl...@esbconsult.com mailto:gl...@esbconsult.com
ESB Consultancy,  http://www.esbconsult.com/ http://www.esbconsult.com

Follow us on Twitter: http://twitter.com/esbglenn 
Home of ESBPCS and ESB Calculators

Kalgoorlie-Boulder, Western Australia 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Tuesday, 11 January 2011 9:25 am
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Maths problem for the day

 

Convert the following into one line.

 

if High(Files)  30 then Max := Bias.Position

else if High(Files)  300 then Max := Bias.Position*2

else if High(Files)  3000 then Max := Bias.Position*3

else if High(Files)  3 then Max := Bias.Position*4

etc

 

I think there must be a way. Probably using the Power function, but I can't
get my head around it.

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Maths problem for the day

2011-01-10 Thread Jolyon Smith
Yep - I think in this case there may be a middle ground, something like:

 

  Case High(Files) of

  0..29: factor := 1;

30..299 : factor := 2;

..

  Else

 ..

  End

 

  Max := Bias.Position * factor;

 

 

More efficient than if/else if/else if and arguably even clearer in
establishing that the threshold values of High(files) affect a multiplier
that is applied to a consistent value to obtain the result (something that
the if/else if/else if itself obfuscates by spreading that detail over
multiple repeated lines)

 

Of course, that assumes that the question was attempting to reduce the
statement to a one-liner with the aim of improving efficiency and code
legibility.  

 

J

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Colin/Mina
Sent: Tuesday, 11 January 2011 15:08
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Maths problem for the day

 

That was my point, the original describes exactly what was intended. One
liners generally don't and tend to introduce errors

 

C.

 

 

- Original Message - 

From: Jolyon Smith mailto:jsm...@deltics.co.nz  

To: 'NZ Borland Developers Group - Delphi List'
mailto:delphi@delphi.org.nz  

Sent: Tuesday, January 11, 2011 2:47 PM

Subject: Re: [DUG] Maths problem for the day

 

Darn, I got carried away... it's not quite that straightforward (unless your
algorithm can be adjusted accordingly).

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Tuesday, 11 January 2011 14:25
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Maths problem for the day

 

Convert the following into one line.

 

if High(Files)  30 then Max := Bias.Position

else if High(Files)  300 then Max := Bias.Position*2

else if High(Files)  3000 then Max := Bias.Position*3

else if High(Files)  3 then Max := Bias.Position*4

etc

 

I think there must be a way. Probably using the Power function, but I can't
get my head around it.

 


  _  


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Delphi roadmap

2011-01-09 Thread Jolyon Smith
MS has tools for OS/X ?!?  ;)

 

The problem I see with their multi-platform direction is that the platforms
they are targeting are all well served by completely free tools.  Unless
Embarcadero sort out their thinking w.r.t. low cost, entry level SKU's for
their software development products and shake off their addiction
to/obsession with enterprise (small e) type developers/customers, they
simply cannot compete in those spaces.

 

Read Will not compete, rather than cannot  - they could be competitive
if they modify their thinking around pricing, but my guess is that they will
choose not to do that, and instead expect/hope those markets will mature
around their ticket price, because the mindset at Borcaderoprise is that
real, grown up software developers pay handsomely for their tools -
everyone else is just tinkering.

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Alister Christie
Sent: Monday, 10 January 2011 10:18
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi roadmap

 

I don't care much for Win64 or OS/X - but I think they are required to make
Delphi a serious competitor to MS tools.  Would like mobile platforms -
Android or iOS - both of which are ARM based.

NVidia already have plenty experience
http://www.nvidia.com/object/tegra.html  with the ARM platform.



Alister Christie
Computers for People
Ph: 04 471 1849 Fax: 04 471 1266
http://www.salespartner.co.nz
PO Box 13085
Johnsonville
Wellington 


On 8/01/2011 10:22 a.m., Malcolm Groves wrote: 

Personally, I'd rather we get Win64, MacOSX, and maybe a mobile platform out
the door before we look at supporting something that may not even have a
market. 
 
Cheers
Malcolm
 
Malcolm Groves
Senior Director, Asia Pacific and Japan
Embarcadero Technologies
http://www.embarcadero.com
 
Phone: +61 416 264 204
Skype: malcolmgroves
 
 
On 08/01/2011, at 7:44 AM, Jan Bakuwel  mailto:jan.baku...@omiha.com
jan.baku...@omiha.com wrote:
 

Hi,
 
We debated what we'd like to see in future version of Delphi from time
to time. It seems that the recent announcement of NVidia and Microsoft
(Project Denver) as outlined here for example:
 
http://www.fiercecio.com/techwatch/story/nvidia-guns-desktop-server-market/2
011-01-07
 
would indicate that Embarcadero has no choice but to adopt the Delphi
compiler for different target architectures (at least to include ARM).
 
Thoughts?
 
Jan
 
___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

 
CONFIDENTIALITY NOTICE: This email message is for the sole use of the
intended recipient(s) and may contain confidential and privileged
information. Any unauthorized review, use, disclosure or distribution is
prohibited. If you are not the intended recipient, please contact the sender
by reply email and destroy all copies of the original message.
 
___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe
 
 
___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Delphi roadmap

2011-01-07 Thread Jolyon Smith
From the article...

Denver frees PCs, workstations and servers from the hegemony and
inefficiency of the x86 architecture


Hegemony...

often mistakenly used to suggest brute power or dominance, when it is
better defined as emphasizing how control is achieved through consensus not
force

WinTel is successful not because Microsoft forced people to buy it and use
it, but because people chose it over the alternatives.


Before committing resources, Embarcadero would do well to wait and see what
actually develops in this space.  Technology companies creating tech to be
sold doesn't necessarily mean that there will be people interested in
buying.

And Microsoft being involved isn't necessarily significant - not even
Microsoft get it right every time.


Just imho




-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jan Bakuwel
Sent: Saturday, 8 January 2011 09:44
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Delphi roadmap

Hi,

We debated what we'd like to see in future version of Delphi from time
to time. It seems that the recent announcement of NVidia and Microsoft
(Project Denver) as outlined here for example:

http://www.fiercecio.com/techwatch/story/nvidia-guns-desktop-server-market/2
011-01-07

would indicate that Embarcadero has no choice but to adopt the Delphi
compiler for different target architectures (at least to include ARM).

Thoughts?

Jan

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Delphi talking to C#

2010-12-13 Thread Jolyon Smith
Simple answer : Yes, lots of different ways.

 

Which is the best/most appropriate will depend on precisely what sort of
information, what frequency, what volume etc...

 

A shared memory mapped file allows two applications to share a piece of
memory, which can provide the basis for very direct IPC (inter-process
communication) but you have to provide synchronisation around the comms (tho
I imagine you could find some libraries that wrap this up for you - I had
one myself at one time - it's not that hard - tho finding one that services
both C# and Delphi could limit the options).

 

You could use TCP/IP between the two processes.

 

Named pipes are another option.

 

Even basic Windows messaging might suffice, depending on your needs.

 

 

I shall stop now and simply point you at:

 

http://www.codeproject.com/KB/threads/Win32IPC.aspx

 

 

Hope that helps.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Bob Pawley
Sent: Tuesday, 14 December 2010 08:31
To: delphi@delphi.org.nz
Subject: [DUG] Delphi talking to C#

 

Hi

 

I have two applications. 

 

One is written in Delphi.

 

The other in MS C#.

 

I need to communicate between the two.

 

I use text files and filewatcher now, but that seems kind of crude and the
information is visible to the user.

 

I know I can use ShellExecute to open one app from the other app, but that
seems to be its extent.

 

Is there some other way of sending information back and forth??

 

Bob

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Delphi talking to C#

2010-12-13 Thread Jolyon Smith
RemObjects is MASSIVE overkill compared to a basic IPC mechanism using a
TCP/IP client-server approach with Indy.

 

It is also hugely expensive if you are using it as nothing more than an
over-elaborate IPC mechanism.  Indy is free.  J

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Sean Cross
Sent: Tuesday, 14 December 2010 09:31
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Delphi talking to C#

 

I use remobjects sdk  to create a web service in Delphi and then call that
from c#.  In my case I don't want to be restricted to having the Delphi app
on the same computer as the c# app.

 

Regards

 

Sean Cross
CIO

 

Catalyst Risk Management
PO Box 230
Napier 4140
DDI: 06-8340362
Mobile: 021270 3466

 

Visit us at http://www.catalystrisk.co.nz http://www.catalystrisk.co.nz/ 

 

Offices in Auckland, Napier, Wellington, Christchurch  Dunedin

 

Disclaimer:
The information contained in this document is confidential to the
addressee(s) and may be legally privileged. Any view or opinions expressed
are those of the author and may not be those of Catalyst Risk Management. No
guarantee or representation is made that this communication is free of
errors, viruses or interference. If you have received this e-mail message in
error please delete it and notify me. Thank you.

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Bob Pawley
Sent: Tuesday, 14 December 2010 8:31 a.m.
To: delphi@delphi.org.nz
Subject: [DUG] Delphi talking to C#

 

Hi

 

I have two applications. 

 

One is written in Delphi.

 

The other in MS C#.

 

I need to communicate between the two.

 

I use text files and filewatcher now, but that seems kind of crude and the
information is visible to the user.

 

I know I can use ShellExecute to open one app from the other app, but that
seems to be its extent.

 

Is there some other way of sending information back and forth??

 

Bob

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Problem redeeming Delphi XE BOGO free product

2010-12-13 Thread Jolyon Smith
I don't see the problem... the BOG-OFF system is working perfectly... come
31st December, everyone that was let down by the past 2 versions and didn't
upgrade because those releases had nothing to offer them, can just BOG-OFF
and use something else instead.

;)


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Cheng Wei (FMI)
Sent: Tuesday, 14 December 2010 12:30
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Problem redeeming Delphi XE BOGO free product

Hi,

Has anyone bought/upgraded to Delphi XE under their Buy One Get One
offer? Did you manage to redeem your free product?

We installed 1 x DBS XE and 4 x Delphi XE, all registered properly.

We go to http://reg.codegear.com/srs6/promotion.jsp?promoId=7 to redeem
the free products but it gives nothing for us to choose from. I emailed
Dev-Inc about the problem and received no reply so far.

Have we missed something? or does anyone know any tricks to get the
qualifying free products.

Regards

Cheng Wei
Software Development Manager
Fairview Metal Industries

M   +64 21 410 776
P+64 9 984 4917
F+64 9 984 4993
  che...@fmi.co.nz
  www.fmi.co.nz

#
Scanned by MailMarshal - M86 Security's comprehensive email content security
solution. 
Download a free evaluation of MailMarshal at www.m86security.com

#

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Problem redeeming Delphi XE BOGO free product

2010-12-13 Thread Jolyon Smith
 Favourites are Firefox V4  (wait until you see how fast it starts 
 up - under 10 secs to page loaded - and the Panorama tab view).

Is 10 secs supposed to be impressive ?

Chrome+ (note: NOT Google Chrome) 1.5.0 - start and load my iGoogle home
page is  4 secs on my system (and that includes all widgets - TradeMe,
Stuff, BBC F1 News, Stack Overflow, Delphi Feeds) having completed their
initial update).



 handle 200+ tabs using same memory as most other browsers 
 with 10-20 tabs.

Whoop-de-doo...

Show me a *USER* that can [productively] handle 10-20 tabs and I'd be
surprised.  :)

200+ tabs... useful for feature list bragging rights, but beyond that... ?

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Problem redeeming Delphi XE BOGO free product

2010-12-13 Thread Jolyon Smith
OK, looks like you (and perhaps FireFox) say tabs where I say thumb-nailed
bookmark ;)

A tab to me is a page actively loaded from a web site.



 Think of it as an alternative to bookmarks and opening
 bookmarks.

From what I (briefly) have seen of Panorama, it's not a revolutionary new
paradigm shift at all, it's just a better way to present and organise...
bookmarks.

200+ bookmarks... yep, I can see organising those can be improved and
useful.

But that's not quite the same as 200+ actual web pages open in active
browser tabs which is what I envisaged when you used the term tab in that
context.

And still, that being the case, opening 200+ thumbnails isn't the same as
connecting to 200+ actual web sites.  Panorama is just Chrome's Most
visited page gallery taken to the next level.


 The MS Office way is to introduce the ribbon menus to find options more
easily.

ime the ribbons do the exact opposite!!  They put options in obscure places
AND disenfranchise the user - if you don't like where MS decide to put an
option, tough - get used to it.

ymmv  :)


 In Delphi applications the most usual approach is to filter 
 a large dataset in a grid.

You are conflating a LOT of different and unrelated things here.

Grouping and visualising bookmarked web sites is unlikely to have much in
common with the need to filter data sets in an database application.


 The Firefox Panorama is quite a new paradigm - organise groups visually on
 screen yourself by spatial placement - the user chooses the size  and 
 placement.

Actually, this is a very OLD idea.

Windows 3.x Program Manager springs immediately to mind as representative of
precisely the same new paradigm.


 Way more intuitive than folders.

How so?  Windows Explorer allows you to customise the size and placement of
folders and even their appearance.

Or put another way...

Windows Explorer Desktop employs a familiar paradigm - organise groups 
visually on  screen yourself by spatial placement - the user chooses the 
size and placement.

Sound familiar ?

;)

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Web Sockets security hole

2010-12-12 Thread Jolyon Smith
I may be wrong but a quick read of the top link suggests to me that the issues 
lies specifically in the implementation of various proxies.

 

If that’s the case, any implications for Delphi would be for people 
implementing proxies using Indy, but NOT for clients or servers themselves.

 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of John Bird
Sent: Monday, 13 December 2010 11:08
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Web Sockets security hole

 

Here is a reference I picked up on the Firefox list about a a security hole in 
Web Sockets –  and affects Java, Flash and HTML5.  Research done by Adam Barth 
of Google.

 

http://www.ietf.org/mail-archive/web/hybi/current/msg04744.html

http://www.adambarth.com/experimental/websocket.pdf

https://bugzilla.mozilla.org/show_bug.cgi?id=616733

 

As I am not an Indy etc expert I was wondering if anyone wanted to comment if 
there is any implication for Delphi?

 

John

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Web Sockets security hole

2010-12-12 Thread Jolyon Smith
I guess what I meant was, the vulnerability exists on the proxy.  Poisioning 
the cache requires deliberate (or freakishly inadvertent accidental) steps 
taken to compromise the proxy.  Yes, other clients then using that proxy are I 
guess potentially compromised but there’s not a whole heck of a lot you can do 
about that, is there?

 

Browsers have a responsibility to prevent themselves from being used in an 
attack, because a browser does something that other connected sockets 
applications don’t do... i.e. download and execute code from arbitrary sources 
– web sites.  Opera and Firefox et al have to close the hole because if they 
didn’t, miscreants could contrive a means to have users visit a site that 
downloads exploit code to be run in the browser.

 

 

You can clean up your Delphi code (assuming it even needs it) all you like, but 
if somebody else comes along and compromises a proxy that your application is 
routing traffic through (whether by choice or dint of circumstance), then you 
are still screwed.  afaict.

 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of John Bird
Sent: Monday, 13 December 2010 11:49
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Web Sockets security hole

 

As I understand, a Web Socket connecting via a proxy can be fooled in the case 
of many proxies to connect to a different site altogether due to a weakness in 
the UPGRADE protocol which can be exploited by poisoning the DNS cache.   The 
CONNECT protocol (not yet implemented) seems to be OK, and wss (Secure sockets 
may be ok).   It looks like a hole in security for the way many or most proxies 
are implemented that affects Web Sockets going via them.

 

I am still unsure how major this is and the implications, but as far as Opera 
and Firefox V4 are concerned they have turned off this protocol in HTML5 until 
it can be made secure.

 

It looks like a relative of the DNS poisoning cache security hole that had 
major releases of patches by a wide range of suppliers done urgently about a 
year ago to fix a basic DNS flaw also involving poisoning the DNS cache to 
point browsers and HTTP traffic to the wrong IP address.

 

My main questions were: is there much Delphi stuff out there using Web Sockets? 
and might this vulnerability with proxies something such people might need to 
take a look at (even if the proxy were not a Delphi product)?

 

(I use diddly squat Indy stuff myself so all of this is at a distance from me – 
just wanted to pass it on)

 

John

From: Jolyon Smith mailto:jsm...@deltics.co.nz  

Sent: Monday, December 13, 2010 11:20 AM

To: 'NZ Borland Developers Group - Delphi List' mailto:delphi@delphi.org.nz  

Subject: Re: [DUG] Web Sockets security hole

 

I may be wrong but a quick read of the top link suggests to me that the issues 
lies specifically in the implementation of various proxies.

 

If that’s the case, any implications for Delphi would be for people 
implementing proxies using Indy, but NOT for clients or servers themselves.

 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of John Bird
Sent: Monday, 13 December 2010 11:08
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Web Sockets security hole

 

Here is a reference I picked up on the Firefox list about a a security hole in 
Web Sockets –  and affects Java, Flash and HTML5.  Research done by Adam Barth 
of Google.

 

http://www.ietf.org/mail-archive/web/hybi/current/msg04744.html

http://www.adambarth.com/experimental/websocket.pdf

https://bugzilla.mozilla.org/show_bug.cgi?id=616733

 

As I am not an Indy etc expert I was wondering if anyone wanted to comment if 
there is any implication for Delphi?

 

John

 

  _  

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Help Detecting Windows Version

2010-12-12 Thread Jolyon Smith
facetious

After your current: 

   Version := current code;

Just add:

   if Version = unknown then
 Version := Windows2008_64Bit;

/facetious

:D

(sorry, couldn't resist - I'm guessing there are other versions that escape
detection too however :) )



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Alan Rose
Sent: Monday, 13 December 2010 12:50
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Help Detecting Windows Version

Hi, has anyone got a function they can share that will detect all
current versions of Windows out there?
F.i. My old routine cant detect Windows Server 2008 64 bit
Tried googling but can only find outdated code like mine.


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Help Detecting Windows Version

2010-12-12 Thread Jolyon Smith
More seriously... on your hunt for info, did you come across this perchance:

http://www.codeguru.com/cpp/w-p/system/systeminformation/article.php/c8973

Not Delphi code, but more general information which should be easily
incorporated in your current algorithm I should think.

The only thing it doesn't show explicitly is determining the bit-ness
(32/64), for which this may help:

http://www.berezniker.com/content/pages/visual-foxpro/how-detect-64-bit-os

Note that there is crucial information in the comments, specifically that if
you intend writing code that will port to Win64 (should Embarcadero ever
deliver) and still correctly identify 64-bit-ness.


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Alan Rose
Sent: Monday, 13 December 2010 12:50
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Help Detecting Windows Version

Hi, has anyone got a function they can share that will detect all
current versions of Windows out there?
F.i. My old routine cant detect Windows Server 2008 64 bit
Tried googling but can only find outdated code like mine.


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Help Detecting Windows Version

2010-12-12 Thread Jolyon Smith
 ProgramFiles(x86) environment variable which is only set 
 on 64 bit versions

Only set **automatically by the OS**- there's presumably nothing stopping
someone from setting such an environment variable for their own purposes
should they choose so to do.

Why would they?  Who knows.  But they *could*.  Perhaps if they wanted to
fool an app that used a crude 64-bitness detection algorithm into doing
something it otherwise wouldn't...  ;)


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of John Bird
Sent: Monday, 13 December 2010 13:47
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Help Detecting Windows Version

?http://stackoverflow.com/questions/601089/detect-whether-current-windows-ve
rsion-is-32-bit-or-64-bit

easiest way depends on whether Windows 7 or Server 2008, or older. 
Simplest and most general over windows versions looks to be 
There are more specific ways added for Windows 7/Vista/Server 2008.

John

Hi, has anyone got a function they can share that will detect all
current versions of Windows out there?
F.i. My old routine cant detect Windows Server 2008 64 bit
Tried googling but can only find outdated code like mine.




___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Help Detecting Windows Version

2010-12-12 Thread Jolyon Smith
Just for the benefit of those not reading the comments etc in the various
articles and pages being posted, be aware that IsWOW64Process() will return
FALSE for a 64-bit process running on a 64-bit OS, because it is not a WOW64
process, but a fully paid up 64-bit process!

IsWOW64Process is, as its name suggests, a way of detecting when a 32-bit
process is running on 64-bit.  It is not strictly speaking determining
whether you are running on 64-bit Windows per se.

Of course, should we ever get a 64-bit compiler, you can be pretty damned
sure you are running on 64-bit Windows if/when you are compiling to a 64-bit
target, so, for a 64-bitness check, if you don't want to bother with
Get[Native]SystemInfo:

  class function TOSInfo.Is64Bit: Boolean
  begin
  {$if CompileTarget=WIN64}  // Purely speculative on my part ...
result := TRUE;
  {$else}
result := IsWOW64;
  {$endif}
  end;

Of course, this will fail if Microsoft ever come up with a way of running a
64-bit process on a 32-bit Windows OS (but if we were going to get a
Win64(S), a la Win32(S), I imagine we would have seen it by now)


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Alan Rose
Sent: Monday, 13 December 2010 14:30
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Help Detecting Windows Version

FWIW I found what I needed regarding 64 bit detection with this code I
found online

class function TOSInfo.IsWOW64: Boolean;
type
  TIsWow64Process = function(  Handle: THandle;  var Res: BOOL ): BOOL;
stdcall;
var
  IsWow64Result: BOOL;
  IsWow64Process: TIsWow64Process;
begin
  IsWow64Process := GetProcAddress( GetModuleHandle('kernel32'),
'IsWow64Process');
  if Assigned(IsWow64Process) then
begin
  if not IsWow64Process(GetCurrentProcess, IsWow64Result) then
raise Exception.Create('Bad process handle');
  Result := IsWow64Result;
end
  else
Result := False;
end;




PRODUCT TYPE
The code to get the right product type (e.g diff between win7 and 2008)
I found in this link
http://code.google.com/p/sbd-utilities/source/browse/lowlevelutils/trunk
/run/uSBD_OS_Version.pas?r=17

Be aware I did find some things in this link like detecting 64 bit and
WMWare did not work,
so just copy parts you need and test carefully.
  



 -Original Message-
 From: delphi-boun...@delphi.org.nz 
 [mailto:delphi-boun...@delphi.org.nz] On Behalf Of Jolyon Smith
 Sent: Monday, 13 December 2010 2:09 p.m.
 To: 'NZ Borland Developers Group - Delphi List'
 Subject: Re: [DUG] Help Detecting Windows Version
 
  ProgramFiles(x86) environment variable which is only set on 64 bit 
  versions
 
 Only set **automatically by the OS**- there's presumably 
 nothing stopping someone from setting such an environment 
 variable for their own purposes should they choose so to do.
 
 Why would they?  Who knows.  But they *could*.  Perhaps if 
 they wanted to fool an app that used a crude 64-bitness 
 detection algorithm into doing something it otherwise wouldn't...  ;)
 
 
 -Original Message-
 From: delphi-boun...@delphi.org.nz 
 [mailto:delphi-boun...@delphi.org.nz] On Behalf Of John Bird
 Sent: Monday, 13 December 2010 13:47
 To: NZ Borland Developers Group - Delphi List
 Subject: Re: [DUG] Help Detecting Windows Version
 
 ?http://stackoverflow.com/questions/601089/detect-whether-curr
 ent-windows-ve
 rsion-is-32-bit-or-64-bit
 
 easiest way depends on whether Windows 7 or Server 2008, or older. 
 Simplest and most general over windows versions looks to be 
 There are more specific ways added for Windows 7/Vista/Server 2008.
 
 John
 
 Hi, has anyone got a function they can share that will detect 
 all current versions of Windows out there?
 F.i. My old routine cant detect Windows Server 2008 64 bit 
 Tried googling but can only find outdated code like mine.
 
 
 
 
 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz 
 with Subject:
 unsubscribe
 
 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz 
 with Subject: unsubscribe
 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Help Detecting Windows Version

2010-12-12 Thread Jolyon Smith
Yep, IsWOW64Process() requires (i.e. is only present in) XP *SP2*

Get[Native]SystemInfo() appears to be the way to go for a consistent
mechanism across all relevant Windows versions, including XP pre-SP2.

http://msdn.microsoft.com/en-us/library/ms724429(v=vs.85).aspx



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of John Bird
Sent: Monday, 13 December 2010 14:45
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Help Detecting Windows Version

?That environment variable was mentioned as a way for eg Windows XP 64 bit, 
as from what someone said like the iswow call might not apply for XP 64bit?

John

 ProgramFiles(x86) environment variable which is only set
 on 64 bit versions

Only set **automatically by the OS**- there's presumably nothing stopping
someone from setting such an environment variable for their own purposes
should they choose so to do.

Why would they?  Who knows.  But they *could*.  Perhaps if they wanted to
fool an app that used a crude 64-bitness detection algorithm into doing
something it otherwise wouldn't...  ;)


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of John Bird
Sent: Monday, 13 December 2010 13:47
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Help Detecting Windows Version

?http://stackoverflow.com/questions/601089/detect-whether-current-windows-ve
rsion-is-32-bit-or-64-bit

easiest way depends on whether Windows 7 or Server 2008, or older.
Simplest and most general over windows versions looks to be
There are more specific ways added for Windows 7/Vista/Server 2008.

John

Hi, has anyone got a function they can share that will detect all
current versions of Windows out there?
F.i. My old routine cant detect Windows Server 2008 64 bit
Tried googling but can only find outdated code like mine.




___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe 


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Indy ConnectTimeout/ReadTimeout recomendations

2010-12-12 Thread Jolyon Smith
The question is how quickly the web site is likely to respond, not how fat
your pipe connecting to it is.  3 seconds could easily be nowhere near long
enough if the server is under heavy load.

 

You say you don't want to delay the routine if the web site is down, but
you presumably don't wish to abort the routine just because the web site is
a bit slow to respond.

 

Depending on what the potentially-delayed-routine in question is doing,
perhaps you could do your URL check in a background thread ?

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Monday, 13 December 2010 16:19
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Indy ConnectTimeout/ReadTimeout recomendations

 

I'm after minimum recommendations for ConnectTimeout and ReadTimeout for
connecting to an HTTP URL.  Assuming a DSL internet connection, could these
be say 3 seconds each and not likely to abort too early in most cases?

 

I'm executing HTTP.Head to determine if a URL is valid but I don't want to
delay the routine too much if the website is down.

 

Thanks.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Current Registrations

2010-12-02 Thread Jolyon Smith
 so long as Delphi keeps working for 30 days without registration!

I'm pretty sure it hasn't allowed unregistered/unactivated use for some
versions now.

Delphi 6 was the last time you didn't have to get permission to use
something you legitimately own in order to use it.

Delphi 7 reportedly allowed you to freely enjoy your purchase, and I
remember using my own D7 in that state at one time, but subsequently/more
recently it didn't seem possible (either my memory was playing tricks on me,
and other people, or they changed something in an update maybe).

iirc with Delphi 2010, at least and possibly earlier versions, if you do not
activate you get dumped straight back out... no grace period.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Current Registrations

2010-12-02 Thread Jolyon Smith
Ø  Delphi 7 doesn't require activation. 

As I said, that was my recollection, but when I tried to use it most
recently I found that my recollection was wrong (or, as I said, that
something else had changed in the meantime – all I know is, I did have to
register it, either at the outset or eventually).

 

Ø  Every version since gives you 30 days use before requiring activation.

Is there some trick to getting the grace period?  Because this doesn’t fit
my experience.

 

On 03/12/2010 11:17 AM, Jolyon Smith jsm...@deltics.co.nz wrote:
 so long as Delphi keeps working for 30 days without registration!
 
 I'm pretty sure it hasn't allowed unregistered/unactivated use for some
 versions now.
 
 Delphi 6 was the last time you didn't have to get permission to use
 something you legitimately own in order to use it.
 
 Delphi 7 reportedly allowed you to freely enjoy your purchase, and I
 remember using my own D7 in that state at one time, but subsequently/more
 recently it didn't seem possible (either my memory was playing tricks on
me,
 and other people, or they changed something in an update maybe).
 
 iirc with Delphi 2010, at least and possibly earlier versions, if you do
not
 activate you get dumped straight back out... no grace period.
 
 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Current Registrations

2010-12-02 Thread Jolyon Smith
Aha.  This may be the key:

 

Ø  if no previous installs of the version have been detected

 

I think in most recent cases, a trial version has been installed initially,
for a “look-see” at the new release, prior to installing the full version.

 

I can also only presume that trial versions of all products follow the
example of RAD PHP XE – the most recent Embarcadero install which I was
unlucky enough to experience - which absolutely did not let you in without
activation (which in my case meant not at all since the activation failed,
but that didn’t stop it consuming the 1 and only activation attempt
permitted.  Game over).

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jeremy North
Sent: Friday, 3 December 2010 14:36
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Current Registrations

 

From memory you select cancel in the activation dialog. Another dialog
shows, dismiss it and then if no previous installs of the version have been
detected you should see the splash screen and it will say something like
Unregisted 30 days remaining in red. 

I might install on a vm tonight and capture it. Any particular version -
except the one that takes over an hour to install. I have all versions.

On 03/12/2010 11:55 AM, Jolyon Smith jsm...@deltics.co.nz wrote:
 Ø Delphi 7 doesn't require activation. 
 
 As I said, that was my recollection, but when I tried to use it most
 recently I found that my recollection was wrong (or, as I said, that
 something else had changed in the meantime – all I know is, I did have to
 register it, either at the outset or eventually).
 
 
 
 Ø Every version since gives you 30 days use before requiring activation.
 
 Is there some trick to getting the grace period? Because this doesn’t fit
 my experience.
 
 
 
 On 03/12/2010 11:17 AM, Jolyon Smith jsm...@deltics.co.nz wrote:
 so long as Delphi keeps working for 30 days without registration!
 
 I'm pretty sure it hasn't allowed unregistered/unactivated use for some
 versions now.
 
 Delphi 6 was the last time you didn't have to get permission to use
 something you legitimately own in order to use it.
 
 Delphi 7 reportedly allowed you to freely enjoy your purchase, and I
 remember using my own D7 in that state at one time, but subsequently/more
 recently it didn't seem possible (either my memory was playing tricks on
 me,
 and other people, or they changed something in an update maybe).
 
 iirc with Delphi 2010, at least and possibly earlier versions, if you do
 not
 activate you get dumped straight back out... no grace period.
 
 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
 unsubscribe
 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Current Registrations

2010-12-01 Thread Jolyon Smith
For trial versions it seems to be 1 (one)

 

Which was a real pain when my Rad PHP trial activation failed, but only
after bumping the count.  Needless to say, I didn't bother trying to sort
that out - I just went back to NetBeans... it has some annoying querks, but
it's free and, more importantly, ownership is free of such hassles as a
flawed and burdensome activation scheme and comes without the worry of
whether I will be able to use what I am already entitled to use the next
time I need to install it on a fresh machine.

 

/rant

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jeremy Coulter
Sent: Thursday, 2 December 2010 10:39
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Current Registrations

 

Does any one know what the Current Registrations count is before you need
to contact Embarcadero to get it reset?

I had been playing around with some Vm's a while back and I noticed my count
is now 4 :-)

 

 

Thanks, Jeremy

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] Toolsets (was Re: Company closing)

2010-11-30 Thread Jolyon Smith
Re: WebKit – if this is the UI toolkit that underpins the native Windows GUI 
(options dialogs etc) of Chrome then you just provided a gold plated example of 
a Windows GUI that doesn’t look/feel like a Windows GUI, but which feels very 
much like a lowest-common-denominator UI, like the very worst of the Java UI’s.

 

If this really is the “state of the art” then we should be aiming higher.  
Much, MUCH higher.  And I don’t think Embarcadero command the same resources as 
Google to the chances of successfully reaching higher ... 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On 
Behalf Of John Bird
Sent: Tuesday, 30 November 2010 9:15 p.m.
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Toolsets (was Re: Company closing)

 

I sort of disagree - A common VCL is the ideal solution.

 

What makes Delphi a success on Windows is that it is Pascal and also close 
enough to the Windows controls that it produces what looks like native Windows 
applications, using the best of Windows XP/Vista/7 appearances.

 

If they do a Mac version I reckon to be cool and admired has to be the same – 
it has to be close to the Cocoa interface and make native Mac applications.   
Each VCL control has to to give most or all of the latest mac control 
equivalents.

 

That way there will be some differences – some properties of controls and 
events on Windows will not have an exact matching mac equivalentprobably 
the best is to just the property or event map to the matching equivalent on mac 
if its close, otherwise ignored.  That way code can be moved back and forth, 
and some parts – eg some events will not work – so the programmers can attack 
them one at a time to insert the mac equivalent...

 

cases like that you have almost no alternative but to have ifdef’d code, but 
hopefully manageably small cases.

 

This is better than having a bland lowest common demominator VCL.

 

There are some examples out there of cross platform applications and frameworks 
– these are quite a long way ahead of Delphi as far as cross platform, so 
unless Delphi can do it in a more elegant way than its been done already it may 
cater for Delphi apps but won’t pick up programmers from other languages.   I 
think the main other successes out there are Webkit (whatever is used as core 
of Chrome and Safari)   QT which I think is underneath Opera, XULRunner which 
is behind Firefox and Thunderbird.   Apple have made cross platform versions of 
iTunes as well, and MS has mac versions of MSOffice – so these also must have 
some strategy for managing code across different OS’s.   Java too – although in 
that case its mainly the JVM that is tailored to each OS?   I would be most 
interested to hear more of how they all do it compared to what Delphi could do 
better.

 

I am also involved in the Firefox community and one of the main debates there 
is how much the code and UI should be same across all and how much it should 
blend in with the OS themes and styling – the next version of Firefox (V4) for 
instance will get quite different appearances (more than now for instance) on 
XP, Windows 7, mac and linux to better fit in with each OS styling.

 

John

 

On 30 November 2010 09:56, Jolyon Smith jsm...@deltics.co.nz wrote:


What we need is a Delphi for Cocoa.

What we *don't* need is a Delphi (or a VCL) for a Lowest Common Denominator
that fits Windows and Mac and Linux and phones and toasters and key-fobs.

 

Totally agree with Jolyon. 

 

Initially, I was really looking forward to Delphi for Mac. But the more I think 
about it, solutions that are not based on the native GUI frameworks for each 
platform will most likely result in sub-par applications. If I want to design a 
cross-platform app for both Windows and Mac, then my design decision would be 
to refactor out all of the non-gui logic into their own units and then build 
separate user interfaces using the native UI components for each platform.

 

As Jolyon stated, what makes sense/looks good in a Mac application does not 
necessarily make it appropriate for a Windows application and vice versa. If 
you want to do a proper job, you will most likely create seperate UI's for each 
platform. If that, being the case, it makes no sense to aim for that lowest 
common denominator because in the end you will please neither of your Windows 
or Mac users.

 

I think Embarcadero's plan to use a common 'VCL will initially satisfy the 
uninitiated who wants to go cross-platform easily and quickly but will be 
annoying if you want to create apps that are designed specifically for the 
platform that they are to be hosted on. I see this as the same problem with the 
attempt to get existing Delphi applications Unicode-ready. The ideas was to 
make it easy for existing code to become Unicode but it made it confusing for 
new apps going forward. I think this will be the same for cross platform 
development for Delphi using this common VCL

Re: [DUG] Automatic build process

2010-11-30 Thread Jolyon Smith

 - FinalBuilder

Nothing more needs to be said.  :)


-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ayers, Stephen
Sent: Wednesday, 1 December 2010 11:50
To: delphi@delphi.org.nz
Subject: [DUG] Automatic build process

 
Hi there

What do people use to automate their build processes.  I have multiple
delphi group projects that I build but the issue is that on some of the
projects there are known errors that stop the build.  Are there any
tools that I can work around these errors with.  The idea will be to
enable nightly builds.

Thanks


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] DelphiDroid

2010-11-29 Thread Jolyon Smith
I think we're talking about two different things:

 

1.There's a proof of concept of a technology that translates Delphi
code to Java.

 

2.   There's apparently been some indication somewhere of a Delphi
compiler targeting Android that has been described as a native compiler.

 

imho Java isn't native code in the sense that most people would think
(native is generally taken to be synonymous with unmanaged).  However, it
could be considered native in the sense that Java is (seemingly) the
lingua franca of Android.

 

 

Iirc there was talk many, many, MANY years ago of a Delphi compiler that
could/would/might emit Java Byte Code.

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Ross Levis
Sent: Monday, 29 November 2010 18:15
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] DelphiDroid

 

That sneak preview page says it creates a full Android (Java) solution so
presumably that means it creates Java code which will run on any Android
supporting Java.

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jolyon Smith
Sent: Monday, 29 November 2010 5:45 PM
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] DelphiDroid

 

Well, that's exactly my point... native means compiled to machine code, in
which case you need to say code for *which* machine...

 

For a more concrete example:  The Delphi compiler does not target the IBM
PC - it targets Intel x86.

 

It also targets Windows on x86, but let us imagine that Windows was still NT
and that NT still supported ALPHA hardware.  Delphi targets Windows, but
it does not produce ALPHA executables since it only targets x86.

 

To say that Delphi targets Windows is not sufficient - you have to say
Windows x86.

 

 

So when you say targets Android, this doesn't appear to be sufficient
information to be a reliable indication of any meaningful, intent, just
highly speculative spit-balling (Ya know, with this new compiler
architecture we (or they) could support Android...).

 

I would be interested to know where you heard the speculation... the source
can be significant in ascertaining the reliability of some messages...  J

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Alister Christie
Sent: Tuesday, 30 November 2010 17:10
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] DelphiDroid

 

From what I heard it will be native - although all I've heard are rumors -
certainly no statement of intent.

Alister Christie
Computers for People
Ph: 04 471 1849 Fax: 04 471 1266
http://www.salespartner.co.nz
PO Box 13085
Johnsonville
Wellington 


On 29/11/2010 4:19 p.m., Jolyon Smith wrote: 

Is that Android 1.5? 1.6? 2.1? 2.2?  Or will it be 3.0?

 

Apart from that, isn't a target for a compiler a bit more than just an
OS/platform/framework ... ?

 

If Delphi is to target Android then it must target the CPU architectures
that Android itself runs on (with iPhone the distinction is blurred since
only one phone hardware platform runs the OS - iPhone the OS is iPhone the
hardware, to intents and purposes).

 

Android might be running on (currently) ARM-Cortex A7, A8, or A9  (as far as
I can tell - I am not an Android owner or otherwise particularly interested
in Android, so this is based on a few mins with my learned friend, Mr Google
J)

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Alister Christie
Sent: Tuesday, 30 November 2010 14:11
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] DelphiDroid

 

My understanding is that both Android and iPhone are being actively
experimented with as targets for the compiler.  We'll probably hear more
once we have OS/X, Win64 and Linux support, which I suspect that it would be
at last 2 years away

Alister Christie
Computers for People
Ph: 04 471 1849 Fax: 04 471 1266
http://www.salespartner.co.nz
PO Box 13085
Johnsonville
Wellington 


On 29/11/2010 1:40 p.m., David Brennan wrote: 

I think Jolyon is right.

 

The difference between a proof of concept (which is basically what the guy
has now) and a robust tool which handles the majority of Delphi features and
libraries is enormous. Several orders of magnitude sounds about right to me
(meaning 100-1000 times more difficult, or even more).

 

I agree with the general principle though that being able to build for
Android (and/or iPhone and others) would be great. However I think the only
way it could really be done in a decent way is by Embarcadero continuing to
extend the back end compiler to support more and more target platforms. They
have made a few references in recent times which suggest they hope to do
this but only time will tell.

 

Cheers,

David.

 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jeremy Coulter
Sent: Monday, 29 November 2010 1:23 p.m.
To: NZ Borland Developers Group

Re: [DUG] Toolsets (was Re: Company closing)

2010-11-29 Thread Jolyon Smith
Similarly chiming in...

The best tool for ploughing a field isn't the best tool for turning the soil
in a flower bed, or even an allotment.

The best tool (and/or GUI framework) for building Windows apps isn't
necessarily the best tool for building Cocoa apps.

What we need is a Delphi for Cocoa.

What we *don't* need is a Delphi (or a VCL) for a Lowest Common Denominator
that fits Windows and Mac and Linux and phones and toasters and key-fobs.



Re: Morfik - I too was interested and had a look even before it was free,
and looked again once it became so.  But I found it too prescriptive for me
and frankly gave up when it balked at my desire to create a project whose
source files happened to be located on a removable USB drive.  Morfik itself
doesn't care, but the Firebird database that it *insists* on creating with
the project cannot be opened from such a drive and so therefore neither can
the project itself.

I did spend some time with a project created on a fixed drive, but again,
whilst the UI model it employs is convenient, it is similarly too
prescriptive - when developing great web apps, imho you need a little more
control over the UI that app presents, unless your idea of what looks like a
great web app happily coincides/can be produced with Morfik's ideas and
capabilities.

This is not a unique problem to Morfik of course - any framework that
dictates/imposes itself has the same problem (unless it's *not* a problem in
your particular case, of course).

And as long as you can live with the risk that your framework might at some
point become unsupported, and can be sure that your app can be hosted by
anyone anywhere without needing specific support for tech that your
framework demands (can Morfik projects be completely detached from a
Firebird DB?)


If I am interested in developing web apps, I will use a tool that is great
at developing web apps, as much as the idea might appeal, I don't think it
necessarily makes sense to try to shoe-horn/mimic a tool that is great for
developing DESKTOP apps into a web app development harness.

Just as I wouldn't hook up a tractor and plough in order to weed my hardy
perennials.

:)

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Company closing

2010-11-28 Thread Jolyon Smith
And more importantly, the crucial thing is knowing which is the right/best
one to use for any particular problem at hand.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Alister Christie
Sent: Monday, 29 November 2010 11:27
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Company closing

 From my experience, learning a new language is fairly easy and straight 
forward, but the libraries are just so huge these days, it's impossible 
to learn even a small fraction in a reasonable amount of time.

For instance in Delphi - if you wanted some sort of collection of 
strings.  If you are just using object pascal you could use an array or 
write your own class (or linked list of Records at a stretch).  Add all 
the standard libraries and you could use a TStringList, TList, TStack, 
some sort of generic collection (list, stack, queue, hash) and probably 
a zillion of other things.

Alister Christie
Computers for People
Ph: 04 471 1849 Fax: 04 471 1266
http://www.salespartner.co.nz
PO Box 13085
Johnsonville
Wellington


On 29/11/2010 10:37 a.m., Berend de Boer wrote:
 Alistair == Alistair Wardaw...@forum8.co.nz  writes:
  Alistair  I'm firmly of the belief that for a good developer the
  Alistair  toolset being used is irrelevant. A person with the
  Alistair  right background and fundamental skills can pick up any
  Alistair  programming language/environment in relatively short
  Alistair  order.

 I think that is quite misguided. To become productive in a new
 environment, takes years. It does not matter how good you think you
 are.

 To be productive in an environment you simply need to know a lot of
 little things. That takes time.

 If you switch to an entirely different platform, 1-tier to REST for
 example, you might never truly
 make it.


  Alistair  I picked up Delphi (v2) very quickly, coming from a
  Alistair  previous background of C and C++, although I had done a
  Alistair  lot of Pascal at university. I have to say that I'm not
  Alistair  looking forward to going back to curly braces...

 But now we're talking about languages that are basically the same with
 a minor difference in syntax. The C++/Delpi/VB switch might be as you
 describe, switching to PHP + the entire web development stack takes
 much longer.


___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Company closing

2010-11-28 Thread Jolyon Smith
Is it a compiler?  Technically I mean - I'd call it a translator.  :)

I wonder how far it can go though, beyond the simple examples I mean.

Translating a push button and a call to ShowMessage() is one thing.  Being
able to translate a complex application with all the libraries that Android
must support strikes me as a number of orders of magnitude more complex.



-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Alister Christie
Sent: Monday, 29 November 2010 12:39
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Company closing

Interestingly the compiler is written in C#

Alister Christie
Computers for People
Ph: 04 471 1849 Fax: 04 471 1266
http://www.salespartner.co.nz
PO Box 13085
Johnsonville
Wellington


On 29/11/2010 12:08 p.m., John Bird wrote:

?http://lenniedevilliers.blogspot.com/2010/09/delphi-for-android-sneak-previ
ew.html

 Just checked out the DelphiDroid - not sure what state its at but simple
 examples are at least working - see a sneak peek video at the above
address.
 Says been tested with Delphi 6.0, 7.0, 2005, 2006 and 2010.

 This is exactly the sort of tools we need - why does Embarcadero not jump
 onto this asap???


 John

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe



___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


Re: [DUG] Company closing

2010-11-28 Thread Jolyon Smith
It's written in C# - it would take a lot more than Android to make me walk
thru the gates into that case sensitivity and curly brace hell.

 

For one thing I don't have an Android phone, and for another I have no
interest in getting one.

 

J

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jeremy Coulter
Sent: Monday, 29 November 2010 13:23
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Company closing

 

you should download it and make it do more then :-)

jeremy

On Mon, Nov 29, 2010 at 1:12 PM, Jolyon Smith jsm...@deltics.co.nz wrote:

Is it a compiler?  Technically I mean - I'd call it a translator.  :)

I wonder how far it can go though, beyond the simple examples I mean.

Translating a push button and a call to ShowMessage() is one thing.  Being
able to translate a complex application with all the libraries that Android
must support strikes me as a number of orders of magnitude more complex.




-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On

Behalf Of Alister Christie
Sent: Monday, 29 November 2010 12:39
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Company closing

Interestingly the compiler is written in C#

Alister Christie
Computers for People
Ph: 04 471 1849 Fax: 04 471 1266
http://www.salespartner.co.nz
PO Box 13085
Johnsonville
Wellington


On 29/11/2010 12:08 p.m., John Bird wrote:

?http://lenniedevilliers.blogspot.com/2010/09/delphi-for-android-sneak-previ
http://lenniedevilliers.blogspot.com/2010/09/delphi-for-android-sneak-previ
%0Aew.html 
ew.html

 Just checked out the DelphiDroid - not sure what state its at but simple
 examples are at least working - see a sneak peek video at the above
address.
 Says been tested with Delphi 6.0, 7.0, 2005, 2006 and 2010.

 This is exactly the sort of tools we need - why does Embarcadero not jump
 onto this asap???


 John

 ___
 NZ Borland Developers Group - Delphi mailing list
 Post: delphi@delphi.org.nz
 Admin: http://delphi.org.nz/mailman/listinfo/delphi
 Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe



___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

 

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Re: [DUG] DelphiDroid

2010-11-28 Thread Jolyon Smith
Well, that's exactly my point... native means compiled to machine code, in
which case you need to say code for *which* machine...

 

For a more concrete example:  The Delphi compiler does not target the IBM
PC - it targets Intel x86.

 

It also targets Windows on x86, but let us imagine that Windows was still NT
and that NT still supported ALPHA hardware.  Delphi targets Windows, but
it does not produce ALPHA executables since it only targets x86.

 

To say that Delphi targets Windows is not sufficient - you have to say
Windows x86.

 

 

So when you say targets Android, this doesn't appear to be sufficient
information to be a reliable indication of any meaningful, intent, just
highly speculative spit-balling (Ya know, with this new compiler
architecture we (or they) could support Android...).

 

I would be interested to know where you heard the speculation... the source
can be significant in ascertaining the reliability of some messages...  J

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Alister Christie
Sent: Tuesday, 30 November 2010 17:10
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] DelphiDroid

 

From what I heard it will be native - although all I've heard are rumors -
certainly no statement of intent.




Alister Christie
Computers for People
Ph: 04 471 1849 Fax: 04 471 1266
http://www.salespartner.co.nz
PO Box 13085
Johnsonville
Wellington 


On 29/11/2010 4:19 p.m., Jolyon Smith wrote: 

Is that Android 1.5? 1.6? 2.1? 2.2?  Or will it be 3.0?

 

Apart from that, isn't a target for a compiler a bit more than just an
OS/platform/framework ... ?

 

If Delphi is to target Android then it must target the CPU architectures
that Android itself runs on (with iPhone the distinction is blurred since
only one phone hardware platform runs the OS - iPhone the OS is iPhone the
hardware, to intents and purposes).

 

Android might be running on (currently) ARM-Cortex A7, A8, or A9  (as far as
I can tell - I am not an Android owner or otherwise particularly interested
in Android, so this is based on a few mins with my learned friend, Mr Google
J)

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Alister Christie
Sent: Tuesday, 30 November 2010 14:11
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] DelphiDroid

 

My understanding is that both Android and iPhone are being actively
experimented with as targets for the compiler.  We'll probably hear more
once we have OS/X, Win64 and Linux support, which I suspect that it would be
at last 2 years away




Alister Christie
Computers for People
Ph: 04 471 1849 Fax: 04 471 1266
http://www.salespartner.co.nz
PO Box 13085
Johnsonville
Wellington 


On 29/11/2010 1:40 p.m., David Brennan wrote: 

I think Jolyon is right.

 

The difference between a proof of concept (which is basically what the guy
has now) and a robust tool which handles the majority of Delphi features and
libraries is enormous. Several orders of magnitude sounds about right to me
(meaning 100-1000 times more difficult, or even more).

 

I agree with the general principle though that being able to build for
Android (and/or iPhone and others) would be great. However I think the only
way it could really be done in a decent way is by Embarcadero continuing to
extend the back end compiler to support more and more target platforms. They
have made a few references in recent times which suggest they hope to do
this but only time will tell.

 

Cheers,

David.

 

 

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Jeremy Coulter
Sent: Monday, 29 November 2010 1:23 p.m.
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Company closing

 

you should download it and make it do more then :-)

jeremy

On Mon, Nov 29, 2010 at 1:12 PM, Jolyon Smith jsm...@deltics.co.nz wrote:

Is it a compiler?  Technically I mean - I'd call it a translator.  :)

I wonder how far it can go though, beyond the simple examples I mean.

Translating a push button and a call to ShowMessage() is one thing.  Being
able to translate a complex application with all the libraries that Android
must support strikes me as a number of orders of magnitude more complex.




-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On

Behalf Of Alister Christie
Sent: Monday, 29 November 2010 12:39
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Company closing

Interestingly the compiler is written in C#

Alister Christie
Computers for People
Ph: 04 471 1849 Fax: 04 471 1266
http://www.salespartner.co.nz
PO Box 13085
Johnsonville
Wellington


On 29/11/2010 12:08 p.m., John Bird wrote:

?http://lenniedevilliers.blogspot.com/2010/09/delphi-for-android-sneak-previ
http://lenniedevilliers.blogspot.com/2010/09/delphi-for-android-sneak-previ
%0Aew.html 
ew.html

 Just checked out the DelphiDroid - not sure what

Re: [DUG] Company closing

2010-11-25 Thread Jolyon Smith
Sorry to hear that Alistair.  Good luck.
 

-Original Message-
From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz] On
Behalf Of Alistair Ward
Sent: Friday, 26 November 2010 15:57
To: delphi@delphi.org.nz
Subject: [DUG] Company closing

Hi All,

I know I haven't been much of a participant in this mailing list, but I 
thought I would start saying goodbyes...

My employer (Forum 8 NZ Ltd) is being closed down by our parent company 
in Japan.

Anybody looking for experienced developers in Christchurch?

Cheers,
Alistair.

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe

___
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe


  1   2   3   4   >