Re: [DUG] Why does this hang?
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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...
Ø Just wondering if there is a Tutorial on how to trim replies? Ø I think highlighting the text and deleting works ? Its a tough one for a mail list, as context for a reply isnt 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. Its one of those things where One Rule to Rule Them All cant 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 dont see the idea of a revenue limit a problem per se, but $1000 really isnt 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
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
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
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
Ø 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 hasnt been a Standard edition for as long as I can remember... J ), heres 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 wouldnt 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 Heres a quick summary of whats 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 doesnt 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'
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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#
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#
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
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
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
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
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
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
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
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
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
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
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
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
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
Ø 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 doesnt 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
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 didnt 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 doesnt 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
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)
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
- 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
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)
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
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
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
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
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
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