FHannes Posted February 9, 2012 Share Posted February 9, 2012 (edited) The beta of SCAR Divi 3.31 is finally available. The entire engine reimplementation is complete, the only thing changed atm is that SCAR only exports WriteLn to plugins now. This won't be changed until the new plugin architecture is introduced in 3.32 or 3.33, but afaik there are no plugins that currently make use of this functionality. New in the beta is support for hex and base64 encoding and also zlib compression! These functions like [wiki=ZLibCompress]ZLibCompress[/wiki] are all documented in the wiki. The final version of the 3.31 build will be released on the 13th of Februari, so you can expect a release candidate soon. The last thing that will be added to the beta before RC is support for SQLite databases. Regular: http://svn.scar-divi.com/scar/ Portable: http://svn.scar-divi.com/scar_portable/ Setup instructions: http://forums.scar-divi.com/showthread.php?505-Downloading-SCAR-Divi-Prerelease Changelog: Bugfixes: - Small bug in loading toolbars/docks - ReadLn didn't return the result - Bug in the settingsmanager caused issues when changing the editor format - CallProc didn't return the proper result - Local variables were bugged in code completion Improvements: - New interface for script engine - Improved compile/running time measurement - Vastly improved speed for displaying variable content while debugging - Updated bitmap encoding Additions: - function FileAge(const Path: string): TDateTime; - function ScriptFile: AnsiString; - function Base64ToStr(const Str: AnsiString): AnsiString; - function StrToBase64(const Str: AnsiString): AnsiString; - function HexToStr(const Str: AnsiString): AnsiString; - function StrToHex(const Str: AnsiString): AnsiString; - function ZLibCompress(const Str: AnsiString): AnsiString; - function ZLibDecompress(const Str: AnsiString): AnsiString; - function WorkspacePath: AnsiString; - const SQL_OK, SQL_ERROR, SQL_FULL, SQL_ROW, SQL_DONE - function SQLOpen(const Path: string; const CreateIfNotFound: Boolean): Integer; - function SQLFree(const DBIndex: Integer): Boolean; - function SQLAssigned(const DBIndex: Integer): Boolean; - function SQLLastID(const DBIndex: Integer): Integer; - procedure SQLQuery(const DBIndex: Integer; const Query: string); - function SQLQueryEx(const QueryIndex: Integer; const Query: string): Integer; - function SQLQueryFree(const QueryIndex: Integer): Boolean; - function SQLQueryAssigned(const QueryIndex: Integer): Boolean; - function SQLQueryStep(const QueryIndex: Integer): Integer; - function SQLQueryReset(const QueryIndex: Integer): Integer; - procedure SQLBindStr(const QueryIndex, ParamIndex: Integer; const Str: string); - procedure SQLBindInt(const QueryIndex, ParamIndex: Integer; const Int: Integer); - function SQLColumnStr(const QueryIndex, ColumnIndex: Integer): string; - function SQLColumnInt(const QueryIndex, ColumnIndex: Integer): Integer; Removed: - BitmapFromString2 Enjoy ~Freddy Edited February 10, 2012 by Freddy Quote Link to comment Share on other sites More sharing options...
Amberleaf Posted February 9, 2012 Share Posted February 9, 2012 Thanks Freddy you're a real work horse. Lots of new stuff to learn on top of everything else I'm trying to cram into my 'lil' bonce. Keep it up we all appreciate your effort and determination. Quote Link to comment Share on other sites More sharing options...
infinitejl Posted February 9, 2012 Share Posted February 9, 2012 win32 error Quote Link to comment Share on other sites More sharing options...
Janilabo Posted February 9, 2012 Share Posted February 9, 2012 Damn Freddy, you are on fire! Nice work!!1 Thanks a lot for ZLib & Base64 functions, they are fairly smexy. Quote Link to comment Share on other sites More sharing options...
FHannes Posted February 9, 2012 Author Share Posted February 9, 2012 win32 error Please be more specific, that information is useless without details. ---------- Post added at 11:42 PM ---------- Previous post was at 10:12 PM ---------- I've uploaded a new copy containing the first bunch of SQLite3 functions: - function SQLOpen(const Path: string; const CreateIfNotFound: Boolean): Integer; - function SQLFree(const DBIndex: Integer): Boolean; - function SQLAssigned(const DBIndex: Integer): Boolean; - function SQLLastID(const DBIndex: Integer): Integer; - procedure SQLQuery(const DBIndex: Integer; const Query: string); - function SQLQueryEx(const QueryIndex: Integer; const Query: string): Integer; - function SQLQueryFree(const QueryIndex: Integer): Boolean; - function SQLQueryAssigned(const QueryIndex: Integer): Boolean; - function SQLQueryStep(const QueryIndex: Integer): Integer; - function SQLQueryReset(const QueryIndex: Integer): Integer; - procedure SQLBindStr(const QueryIndex, ParamIndex: Integer; const Str: string); - procedure SQLBindInt(const QueryIndex, ParamIndex: Integer; const Int: Integer); - function SQLColumnStr(const QueryIndex, ColumnIndex: Integer): string; - function SQLColumnInt(const QueryIndex, ColumnIndex: Integer): Integer; There's going to be quite a lot more of them, but I wanted to start with these and take a break to document them in the wiki. You can find a fairly elaborate example of how to use most of these functions [wiki=SQLOpen]here[/wiki]. Quote Link to comment Share on other sites More sharing options...
Janilabo Posted February 10, 2012 Share Posted February 10, 2012 Yayyy, thanks Freddy! I wonder how many lines you wrote code yesterday.. MUST be at 1000s... Hopefully your WhatPulse has been recording! Quote Link to comment Share on other sites More sharing options...
FHannes Posted February 10, 2012 Author Share Posted February 10, 2012 Yayyy, thanks Freddy!I wonder how many lines you wrote code yesterday.. MUST be at 1000s... Hopefully your WhatPulse has been recording! Heh, not sure how many, just pulsed I just love writing documention though Aside from adding the SQLite3 documentation, I'm also adding some documentation for other previously undocumented functions like [wiki=FindColorSpiral2]FindColorSpiral2[/wiki] Quote Link to comment Share on other sites More sharing options...
Neron Posted February 10, 2012 Share Posted February 10, 2012 I also get win32 error when i click on scar.exe I never instal pre release. I just download all files and put it in one folder in program files Is any procedure to instal pre-release? Becaue I can't wait for function FileAge and ScriptFile and of course Speed! Quote Link to comment Share on other sites More sharing options...
FHannes Posted February 10, 2012 Author Share Posted February 10, 2012 Ah, well, you need to download it with subversion. It's easiest you get TortoiseSVN, when you've installed it you make a new folder where you want to place SCAR, rightclick it and press "SVN Checkout...", next you'll get a window where you have to enter the subversion link at the top, "http://svn.scar-divi.com/scar/" for the regular version. Then press OK. If you want to update your copy to the latest version afterwards, you just rightclick the folder again and press "SVN Update" (and if anything goes wrong when updating it's best you just remove the folder and checkout again in a new one.) I was going to make a video on how to do this, but apparently I already did: http://forums.scar-divi.com/showthread.php?505-Downloading-SCAR-Divi-Prerelease I'll include it in future pre-release posts to avoid any confusion. Quote Link to comment Share on other sites More sharing options...
Bixby Sayz Posted February 10, 2012 Share Posted February 10, 2012 Got a chance to experiment a bit with the db functions last night. This is seriously sexy. Quote Link to comment Share on other sites More sharing options...
FHannes Posted February 10, 2012 Author Share Posted February 10, 2012 Got a chance to experiment a bit with the db functions last night. This is seriously sexy. Since SCAR doesn't currently support pointers it will be hard to support BLOBs, but I'll probably add specific functions to store TPAs and such in a BLOB. Quote Link to comment Share on other sites More sharing options...
Bixby Sayz Posted February 10, 2012 Share Posted February 10, 2012 For those not familiar with SQL I found a nifty freeware tool that lets you build your tables using a nice gui and will generate the SQL code for you: SQLite Administrator Doesn't appear to support adding foreign keys constraints, but if you're getting that deep you most likely already know the syntax. Speaking of which: Freddy, you compiled SQLite with the SQLITE_OMIT_FOREIGN_KEY define? I can create foreign keys using SQLite Administrator's query window but it bombs using SCAR. Not a biggie, kinda overkill really for most SCAR applications. Quote Link to comment Share on other sites More sharing options...
FHannes Posted February 10, 2012 Author Share Posted February 10, 2012 I use DISQLite3 in my projects for SQLite3 support, it's a library that fully integrates with Delphi without requiring additional DLLs, I'm currently using the Personal edition though which does not support foreign key constraints (http://www.yunqa.de/delphi/doku.php/products/sqlite3/feature_chart). However, I'll probably be purchasing the Professional edition in the future, so support will likely be added at some point. Quote Link to comment Share on other sites More sharing options...
FHannes Posted February 12, 2012 Author Share Posted February 12, 2012 I'm going to move the release date to the 14th because I'm rather busy atm. I'm going to add a few more SQLite3 functions and probably add more in upcoming releases, the available set of functions should be sufficient for most purposes. Quote Link to comment Share on other sites More sharing options...