[Lazarus] ZeosLib and FPC 2.2.5
Hello, I'm trying to install ZeosLib 6.6.5 on Lazarus 0.9.29 using FPC 2.2.5, and it has a problem with the current code: BaseFieldTypes: array[TFieldType] of TFieldType = ( ftUnknown, ftString, ftInteger, ftInteger, ftInteger, ftBoolean, ftFloat, ftFloat, ftBCD, ftDateTime, ftDateTime, ftDateTime, ftBytes, ftVarBytes, ftInteger, ftBlob, ftBlob, ftBlob, ftBlob, ftBlob, ftBlob, ftBlob, ftUnknown, ftString, ftString, ftLargeInt, ftADT, ftArray, ftReference, ftDataSet, ftBlob, ftBlob, ftVariant, ftInterface, ftInterface, ftString, ftTimeStamp, ftFMTBcd {$IFDEF FPC2_1UP}, ftString, ftBlob{$ENDIF}); FPC claims that it ends prematurely and more items should be added. Has anyone solved this error (it will be easier then do a parameter by parameter checking by hand) ? Thanks, Ido http://ik.homelinux.org/ -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] New refactoring idea: extract constant
On Wed, Nov 4, 2009 at 17:15, Graeme Geldenhuys wrote: > 2009/11/4 Alexander Klenin : >> 2) Whether to put the constant at the procedure or unit level. > > > Very nice idea and would be very handy! But I would add one more > option - do you want the constant local to the procedure, or unit wide > (implementation section const) or global (interface section const)? This is what I meant by point (2) above -- probably did not say it precisely enough. So, should I create a Mantis ticket? -- Alexander S. Klenin -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Custom file filters in "File Open Dialog" of IDE
On Wed, 4 Nov 2009 08:56:09 +0200 Graeme Geldenhuys wrote: > Hi, > > Is it possible to setup custom file filters in the "File > Open" > dialog of the IDE? I often need to open .XML or .IPF or .TXT files and > there are no such filters by default in the filter combobox. > > Now I can modify my IDE locally and manually add those filters, but if > there is a way to customize it from some options dialog inside the > IDE, that would obviously be preferred. Anybody know if this is > possible? This is not yet possible. Mattias -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] New refactoring idea: extract constant
On Wed, 4 Nov 2009 18:33:57 +1000 Alexander Klenin wrote: > On Wed, Nov 4, 2009 at 17:15, Graeme Geldenhuys > wrote: > > 2009/11/4 Alexander Klenin : > >> 2) Whether to put the constant at the procedure or unit level. > > > > > > Very nice idea and would be very handy! But I would add one more > > option - do you want the constant local to the procedure, or unit > > wide (implementation section const) or global (interface section > > const)? > > This is what I meant by point (2) above -- probably did not say it > precisely enough. > So, should I create a Mantis ticket? ok Mattias -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] ZeosLib and FPC 2.2.5
On Wed, Nov 04, 2009 at 10:30:34AM +0200, ik wrote: > I'm trying to install ZeosLib 6.6.5 on Lazarus 0.9.29 using FPC 2.2.5, and > it has a problem with the current code: > BaseFieldTypes: array[TFieldType] of TFieldType = ( > ftUnknown, ftString, ftInteger, ftInteger, ftInteger, ftBoolean, > ftFloat, > ftFloat, ftBCD, ftDateTime, ftDateTime, ftDateTime, ftBytes, ftVarBytes, > ftInteger, ftBlob, ftBlob, ftBlob, ftBlob, ftBlob, ftBlob, ftBlob, > ftUnknown, > ftString, ftString, ftLargeInt, ftADT, ftArray, ftReference, ftDataSet, > ftBlob, ftBlob, ftVariant, ftInterface, ftInterface, ftString, > ftTimeStamp, ftFMTBcd > {$IFDEF FPC2_1UP}, ftString, ftBlob{$ENDIF}); > > FPC claims that it ends prematurely and more items should be added. > Has anyone solved this error (it will be easier then do a parameter by > parameter checking by hand) ? Current trunk has: (db.pas) TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo, ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString, ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftInterface, ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd, ftFixedWideChar, ftWideMemo); That seems to mostly match. Maybe the FPC2_1up construct fails? -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Lazarus 0.9.28.2 released
On 31/10/2009, Vincent Snijders wrote: > The Lazarus team is glad to announce the 0.9.28.2 release. Thanks Vincent. I have updated the Git mirror with a v0.9.28.2 tag as well. If anybody else is using the Git mirror, your next 'git pull' will get the new tag as well, and you can do local checkouts against it. http://github.com/graemeg/lazarus/tree/v0.9.28.2 -- Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Lazarus releases available for download
Hi, In case the official download location of Lazarus releases are not available. You can always download all tagged releases from the Git mirror in a tarball (archive) format. You can select .tgz or .zip format. http://github.com/graemeg/lazarus/downloads -- Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Lazarus 0.9.28.2 released
Graeme Geldenhuys schreef: On 31/10/2009, Vincent Snijders wrote: The Lazarus team is glad to announce the 0.9.28.2 release. If anybody else is using the Git mirror, your next 'git pull' will get the new tag as well, and you can do local checkouts against it. http://github.com/graemeg/lazarus/tree/v0.9.28.2 On #lazarus-ide, IRC, somebody said that the fixes_0_9_28 branch was out of sync, is that still true? Vincent -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] ZeosLib and FPC 2.2.5
Thanks, I updated the records (with the FPC version) and it compiles properly, but it seems that ZeosLib is not a 64 bit ready. It uses pointer of integer and I experience a lot of weird behavior regarding bookmarks. I require to use Firebird and perform tasks on it. SQLdb does not push the transaction to the database, so I do not know what else to use in Lazarus 64 bit. Ido http://ik.homelinux.org/ On Wed, Nov 4, 2009 at 11:10 AM, Marco van de Voort wrote: > On Wed, Nov 04, 2009 at 10:30:34AM +0200, ik wrote: > > I'm trying to install ZeosLib 6.6.5 on Lazarus 0.9.29 using FPC 2.2.5, > and > > it has a problem with the current code: > > BaseFieldTypes: array[TFieldType] of TFieldType = ( > > ftUnknown, ftString, ftInteger, ftInteger, ftInteger, ftBoolean, > > ftFloat, > > ftFloat, ftBCD, ftDateTime, ftDateTime, ftDateTime, ftBytes, > ftVarBytes, > > ftInteger, ftBlob, ftBlob, ftBlob, ftBlob, ftBlob, ftBlob, ftBlob, > > ftUnknown, > > ftString, ftString, ftLargeInt, ftADT, ftArray, ftReference, > ftDataSet, > > ftBlob, ftBlob, ftVariant, ftInterface, ftInterface, ftString, > > ftTimeStamp, ftFMTBcd > > {$IFDEF FPC2_1UP}, ftString, ftBlob{$ENDIF}); > > > > FPC claims that it ends prematurely and more items should be added. > > Has anyone solved this error (it will be easier then do a parameter by > > parameter checking by hand) ? > > Current trunk has: (db.pas) > > TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, >ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, >ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo, >ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, >ftWideString, ftLargeint, ftADT, ftArray, ftReference, >ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftInterface, >ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd, ftFixedWideChar, >ftWideMemo); > > That seems to mostly match. Maybe the FPC2_1up construct fails? > > -- > ___ > Lazarus mailing list > Lazarus@lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus > -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Lazarus 0.9.28.2 released
On 04/11/2009, Vincent Snijders wrote: > > On #lazarus-ide, IRC, somebody said that the fixes_0_9_28 branch was out of > sync, is that still true? No. The sync (for fixes branch) is not a automated process, but I try and update it once a week (normally Mondays). If somebody urgently needs a fix they can contact me directly or simply cherry-pick the patch they need from "upstream" to there local "fixes" branch. As of 15 minutes ago, the "fixes 0.9.28" branch in Git is synced with SubVersion fixes branch. PS: Please note this "manual sync" process in ONLY for the "fixes" branch. Trunk in SubVersion is automatically synced every 15 minutes with Git's "upstream" branch. Reason for "manual sync" of fixes branch: - Now for the long answer... :-) * SubVersion does not distinguish between tags and branches. * SubVersion does not keep a good history of when branches are started and from what commit they started (I think this is fixed in latest SubVersion) * Git's svn support is not perfect. So based on the above points I decided to manually sync the "fixes" branch. If I automate the "fixes" sync, then the Git repository grows much bigger than needed because (I think) it actually duplicates patches (commits) for the branch and not reuse them. So I simply get a changelog from my previous sync to current revision in fixes branch. I then cherry-pick those revisions into "fixes". This does not increase the Git repository at all because it reuses the original patch (commit). And yes, I do allow for custom changes in fixes branch, which were not merges (like changing the revision number for a release). -- Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] [test] testing mail setup
1 2 3 4 5 6 7 123456789012345678901234567890123456789012345678901234567890123456789012345 Please ignore this message. Regards, - Graeme - -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://opensoft.homeip.net/fpgui/ -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] ZeosLib and FPC 2.2.5
On Wed, 4 Nov 2009, ik wrote: Thanks, I updated the records (with the FPC version) and it compiles properly, but it seems that ZeosLib is not a 64 bit ready. It uses pointer of integer and I experience a lot of weird behavior regarding bookmarks. I require to use Firebird and perform tasks on it. SQLdb does not push the transaction to the database, so I do not know what else to use in Lazarus 64 bit. I use firebird and SQLDB daily. Works like a charm. What do you mean with 'SQLDB does not push the transaction to the database' ? Michael. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] ZeosLib and FPC 2.2.5
Michael Van Canneyt wrote: > > I use firebird and SQLDB daily. Works like a charm. Same here. No problems. Regards, - Graeme - -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://opensoft.homeip.net/fpgui/ -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] ZeosLib and FPC 2.2.5
When Insert data, and I post it, even thou I'm doing: Transaction.Commit; It does not exists on the database itself. and when I close the connection and reopen it, the new values does not exists. I might be missing something here... Ido http://ik.homelinux.org/ On Wed, Nov 4, 2009 at 2:09 PM, Michael Van Canneyt wrote: > > > On Wed, 4 Nov 2009, ik wrote: > > Thanks, I updated the records (with the FPC version) and it compiles >> properly, but it seems that ZeosLib is not a 64 bit ready. >> It uses pointer of integer and I experience a lot of weird behavior >> regarding bookmarks. >> >> I require to use Firebird and perform tasks on it. SQLdb does not push the >> transaction to the database, so I do not know what else to use in Lazarus >> 64 >> bit. >> > > I use firebird and SQLDB daily. Works like a charm. > > What do you mean with 'SQLDB does not push the transaction to the database' > ? > > Michael. > > > -- > ___ > Lazarus mailing list > Lazarus@lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus > -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] ZeosLib and FPC 2.2.5
ik schreef: When Insert data, and I post it, even thou I'm doing: ApplyUpdates? Transaction.Commit; It does not exists on the database itself. and when I close the connection and reopen it, the new values does not exists. I might be missing something here... Vincent -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] ZeosLib and FPC 2.2.5
On Wed, 4 Nov 2009, Vincent Snijders wrote: ik schreef: When Insert data, and I post it, even thou I'm doing: ApplyUpdates? Transaction.Commit; It does not exists on the database itself. and when I close the connection and reopen it, the new values does not exists. I might be missing something here... Like Vincent said: If you use Dataset.Insert; // Set field values here Dataset.Post; Then you need 2 more statements: Dataset.ApplyUpdates; // this will execute the necessary update statements on the database. Dataset.Transaction.Commit; // or better yet, CommitRetaining. To actually update the database. Michael. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] SQLDb Query Insert, Update vs SQL
Hello, How exactly can I make the TSQLQuery work with the Insert query when I do "insert" action on TDBNavigator ? The same question with update. Thanks, Ido http://ik.homelinux.org/ -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] SQLDb Query Insert, Update vs SQL
On Wed, 4 Nov 2009, ik wrote: Hello, How exactly can I make the TSQLQuery work with the Insert query when I do "insert" action on TDBNavigator ? The same question with update. Either you specify the SQL directly in the InsertSQL, UpdateSQL, DeleteSQL properties. Do this in the standard way as in Delphi using parameters: UPDATE MYTABLE SET Field1 = :Field1, Field2 = :Field2 WHERE MyKeyField = :Old_MyKeyField; and similar for insert/delete. or you let SQLDB compute the queries for you, in which case you should set the pfInKey flag of the ProviderFlags property of the key field, and the pfInUpdate flag for all fields that must be updated. Michael. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] SQLDb Query Insert, Update vs SQL
I've added the queries into the InsertSQL nd UpdateSQL however it seems like it is using the SQL code and make "it's own" update and insert (I know this because the index is set to not null, and in the select statement I retrieve it, but on Update and Insert it raises an exception that the ID is mandatory and is null). Ido http://ik.homelinux.org/ On Wed, Nov 4, 2009 at 4:27 PM, Michael Van Canneyt wrote: > > > On Wed, 4 Nov 2009, ik wrote: > > Hello, >> >> How exactly can I make the TSQLQuery work with the Insert query when I do >> "insert" action on TDBNavigator ? >> The same question with update. >> > > Either you specify the SQL directly in the InsertSQL, UpdateSQL, DeleteSQL > properties. > > Do this in the standard way as in Delphi using parameters: > > UPDATE MYTABLE SET > Field1 = :Field1, > Field2 = :Field2 > WHERE > MyKeyField = :Old_MyKeyField; > > and similar for insert/delete. > > or you let SQLDB compute the queries for you, in which case you should > set the pfInKey flag of the ProviderFlags property of the key field, and > the pfInUpdate flag for all fields that must be updated. > > Michael. > > -- > ___ > Lazarus mailing list > Lazarus@lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus > -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] ASCII - IBM's (old) extended character set
Hi, Does Lazarus have a unicode conversion table for this ASCII character set? See url. http://www.web-wise-wizard.com/programming/ascii-ibm-extended-character-set.html As you can see from the url, the characters below Char(32) is very different to standard ASCII table or the ASCII table with CodePage 437. I'm reading old binary data files that used the IBM Extended ASCII characters in text content. At the moment I simply do a the following to replace certain characters. For example, what we know as the standard ascii (bell character), was the a bullet character. s := StringReplace(s, Char(7),'•', [rfReplaceAll, rfIgnoreCase]); Times have changed! I remember those smiley face characters in a old pac-man game I used to play. :-) Regards, - Graeme - -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://opensoft.homeip.net/fpgui/ -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] ZeosLib and FPC 2.2.5
Hello Lazarus-List, Wednesday, November 4, 2009, 12:12:26 PM, you wrote: i> I require to use Firebird and perform tasks on it. SQLdb does not push the i> transaction to the database, so I do not know what else to use in Lazarus 64 i> bit. I'm using SQLDb (win32) and Firebird and it pushes transactions fine. Which is your exact problem ? -- Best regards, JoshyFun -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Lazarus for Windows Mobile
-- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] SQLDb Query Insert, Update vs SQL
Hello Lazarus-List, Wednesday, November 4, 2009, 3:35:14 PM, you wrote: i> I've added the queries into the InsertSQL nd UpdateSQL however it seems like i> it is using the SQL code and make "it's own" update and insert (I know this i> because the index is set to not null, and in the select statement I retrieve i> it, but on Update and Insert it raises an exception that the ID is mandatory i> and is null). Update and Insert SQL (custom) requires a quite recent patch, or a fpc 2.0.x (if my memory serves me). -- Best regards, JoshyFun -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Lazarus for Windows Mobile
Olá, Sim, o Lazarus pode ser utilizado no Windows para cross-compilar programas para Windows Mobile 6 (ou qualquer outra versão). Aqui estão as instruções de instalação: http://wiki.lazarus.freepascal.org/Windows_CE_Interface#Using_the_stable_add-on_installer Você vai desenvolver para um dispostivo rodando Windows Mobile tipo PocketPC ou tipo Smartphone? O tipo Windows Mobile Smartphone não possuí touch screen e só suporta menus muito limitados. Eu escrevi o suporte para menus do WM Smartphone recentemente, então é melhor usar um snapshot se for desenvolver para essa versão. Eu acho que é bastante estável pois a grande maioria dos bugs reportados já foi corrigida e não há muitos bugs abertos. Mas se você encontrar algum bug é só abrir um bug report que eu concerto. abraços, === automatic translation bellow === Yes, Lazarus may be used in Windows to cross-compile programs for Windows Mobile 6 (or any other version). Here are the installation instructions: http://wiki.lazarus.freepascal.org/Windows_CE_Interface # Using_the_stable_add-on_installer You will develop for a device node running Windows Mobile PocketPC type or type Smartphone? Type Windows Mobile Smartphone does not possess touch screen and supports only very limited menu. I wrote the support for WM Smartphone menus lately, so it is best to use a snapshot if you develop for this version. I think it is quite stable because the vast majority of the reported bugs have been corrected and there aren't many open bugs. But if you find any bug just open a bug report that I fix. -- Felipe Monteiro de Carvalho -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Lazarus for Windows Mobile
-- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Lazarus for Windows Mobile
HP iPAQ 216 has a touchscreen and works in PocketPC mode, so you can use without problems the stable release 0.9.29.2. The processor is Intel PXA270, normal ARM processor, which makes things easier. Just follow the install instructions in the wiki. -- Felipe Monteiro de Carvalho -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Lazarus for Windows Mobile
OT : Seeing the word affirmative always reminds me of Aliens ( the movie with Newt, not little green men ). Dominique. On Wed, 04 Nov 2009 18:02:02 +0100, "Arí Ricardo Ody" wrote: -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] syncro mode[Re: Auto indentation]
On Wed, 04 Nov 2009 00:27:20 + Martin wrote: > Further thought about auto indent (for paste) and syncro/template > mode. I disabled auto indent during syncro/template editing. > The only reliable position is the final caret pos (based on that you > can do indent on return) I use that now for ecLineBreak. > - the line-range will be too big. > - the inital caret position will be unusable. because the if any cell > was above the caret pos, then the text will have moved downwards, > while the initial caretpos would still be on top > > > syncro and template edit are created in Sourceeditor around line > 2565. They are owned and destroyed by synedit (however synedit only > knows they are plugins, and has no idea what they do) > > SourceEditor could keep a reference to the syncro and template module. > > Both of them have an Active property. If it is true, you should not > indent-on-paste > > --- > The alternative is to have an "OnBeforePaste" event, and modify the > text to be pasted, *before* synedit inserts it > (or keep the to-be-pasted text, and act backwards on the final caret > pos) I guess this is the better solution for ecPaste. Can you add such an event? Mattias -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Lazarus for Windows Mobile
-- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Lazarus for Windows Mobile
OT = Off Topic. On Wed, 04 Nov 2009 21:12:33 +0100, "Arí Ricardo Ody" wrote: -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] ASCII - IBM's (old) extended character set
On Wed, 04 Nov 2009 16:48:47 +0200, Graeme Geldenhuys wrote about [Lazarus] ASCII - IBM's (old) extended character set: [snip] > As you can see from the url, the characters below Char(32) is very > different to standard ASCII table or the ASCII table with CodePage > 437. In the days before wide National Language Support, IBM and M$ shipped PC-DOS and MS-DOS, respectively, with two code pages: 437 and 850. These pre-dated the ISO standard for these character sets. However, iconv (and many other conversion utilities) still supports them as code pages IBM437 and IBM850, as distinct from CP437 and CP850. -- Regards, Dave [RLU #314465] === david.w.n...@ntlworld.com (David W Noon) === -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] syncro mode[Re: Auto indentation]
Mattias Gaertner wrote: On Wed, 04 Nov 2009 00:27:20 + Martin wrote: Further thought about auto indent (for paste) and syncro/template mode. I disabled auto indent during syncro/template editing. you need the same for TSynPluginTemplateEdit (template edit, which includes it's own syncro mode) TSynPluginTemplateEdit.Create(FEditor); FSyncroEdit := TSynPluginSyncroEdit.Create(FEditor); - the line-range will be too big. - the inital caret position will be unusable. because the if any cell was above the caret pos, then the text will have moved downwards, while the initial caretpos would still be on top syncro and template edit are created in Sourceeditor around line 2565. They are owned and destroyed by synedit (however synedit only knows they are plugins, and has no idea what they do) SourceEditor could keep a reference to the syncro and template module. Both of them have an Active property. If it is true, you should not indent-on-paste --- The alternative is to have an "OnBeforePaste" event, and modify the text to be pasted, *before* synedit inserts it (or keep the to-be-pasted text, and act backwards on the final caret pos) I guess this is the better solution for ecPaste. Can you add such an event? Yes, the question is, if it is ok for codetools, since it would be called before the paste => that is you have to interpret the to-be-pasted text before it is part of the source At the moment you can indent based on the complete source *after* the paste The alternative is a combination: - in the OnPaste event you store the text to be pasted (as well as the mode normal, column ) - in the OnIndent, you take the final caret pos and you know how far to go back (since the pasted text always ends at the final caret pos) I'll update you, when I got it done. Martin -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] syncro mode[Re: Auto indentation]
On Wed, 04 Nov 2009 20:51:57 + Martin wrote: > Mattias Gaertner wrote: > > On Wed, 04 Nov 2009 00:27:20 + > > Martin wrote: > > > > > >> Further thought about auto indent (for paste) and syncro/template > >> mode. > >> > > > > I disabled auto indent during syncro/template editing. > > > you need the same for TSynPluginTemplateEdit (template edit, which > includes it's own syncro mode) > > TSynPluginTemplateEdit.Create(FEditor); > FSyncroEdit := TSynPluginSyncroEdit.Create(FEditor); Please check svn rev 22435. >[...] > > I guess this is the better solution for ecPaste. > > Can you add such an event? > > > > > Yes, the question is, if it is ok for codetools, since it would be > called before the paste => that is you have to interpret the > to-be-pasted text before it is part of the source np > At the moment you can indent based on the complete source *after* > the paste > > The alternative is a combination: > - in the OnPaste event you store the text to be pasted (as well as > the mode normal, column ) > - in the OnIndent, you take the final caret pos and you know how far > to go back (since the pasted text always ends at the final caret pos) > > > I'll update you, when I got it done. Thanks. Mattias -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] syncro mode[Re: Auto indentation]
I just stumbled on the below if SrcEdit.EditorComponent.SelectionMode<>smNormal then exit; will not prevent the indent if an smColum mode block is inserted. The mode of the data inserted has nothing to do with the mode of the current block. And after the insert, there is no block, therefore it can not be checked. the new event will explicitly report the mode. The advantage of OnPaste is that it will also be called for quick-paste (middle mouse) which indenter currently is not. Only thing that will not call anything, is drop-drag-edit (can be addressed later) Martin ecPaste: begin if not CodeToolsOpts.IndentOnPaste then exit; if SrcEdit.EditorComponent.SelectionMode<>smNormal then exit; if LogCaret.X>1 then inc(FirstLinePos); if LogCaret.Y=LastLinePos then dec(LastLinePos); if LastLinePos -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] ASCII - IBM's (old) extended character set
Graeme Geldenhuys schrieb: Does Lazarus have a unicode conversion table for this ASCII character set? See url. http://www.web-wise-wizard.com/programming/ascii-ibm-extended-character-set.html AFAIK that's the IBM OEM charset. Dunno an Ansi/ISO name for it. DoDi -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Auto indentation
Graeme Geldenhuys schrieb: Source code formatting is a matter of taste. Regardless of the internal storage of horizontal formatting, the result does not please everybody. Yes I know that, but elastic tabstops is so far the best formatting option I could find. And I would definitely us it for my own projects - if it existed in Lazarus. Also, as I mentioned, the gEdit plugin that enables elastic tabstops has a option to automatically do conversions. So you can work with elastic tabstops enabled, but when saved, the file gets converted back to using spaces. What will happen when you commit your changes? Will everybody have to work with your formatting, casted into spaces? Also elastic tabstops touch on a point that most formatting arguments (tabs vs spaces) do not pick up on. Formatting MUST be done by the Editor in a visual only way - same as what editors visually do Code Folding, or drawing Procedure Divider lines. Code Folding markers or Procedure Divider lines are not something in your actual code content. This "eye candy" is applied over your code and *not* in the source code itself. That's acceptable, even if I have no use for such eye candy. Same thing should apply to code formatting, which is what Elastic Tabstops does. You press the Tab key, which inserts the char $09 - nothing more! Now the editor does the formatting for you, but doesn't modify the source code contents to do it. I'd agree with different tabstop codes, so that the formatting can be undone or suppressed at any time. I'd appreciate a version control system that separates formatting from content, and thus would track only changes in the content, regardless of whitespace and line breaks. Then switch to Git. It has had this option since the beginning of Git (a few years back). Maybe you didn't understand my point? essential changes. Furthermore the *language* should allow for automatic formatting, and the OPL has certain deficiencies in this area. Rubbish, you just said formatting is a personal thing! Plus the compiler doesn't give a crap what formatting you use, as long as the code syntax is valid. This is exactly how it should work. Formatting is definitely NOT a language feature. Automatic formatting has to know about the language, in order to know where to indent and outdent blocks, or how to build columns of other items. If somebody wants to have formatted tables, he'll have to insert formatting *instructions*, so that the layout can be restored later - but where should such instructions be stored? This has been done for years in C programming. Have you not noticed the first line in many C source code files, it specifies the tab width in a commented line. I never saw that, but what's the use of such indicators? But that is also not ideal, because now you are forcing YOUR formatting onto other people that open that file. Again, Elastic tabstops solves the problem nicely, because you personally define the formatting of a Tab character ($09) in your editor - *without* needing to modify the source code to get formatting correctly. This only applies to tabs at the begin of a line, where formatting also can be done automatically. If you are still confused as to what Elastic Tabstops do, then re-read my earlier post that explains it. Sorry, it doesn't explain much. It shows how the output could look like, if everything works. Each line in that example only uses two Tab characters, but based on your customizations of elastic tabstop settings, the formatting will be different between users, but still align correctly for everybody. Where "correct" reflects the opinion of the inventor. That applies even if you use a variable width font too! So you are no more limited to only coding with monospace type fonts. That's right, from the technical view. Nonetheless the use of proportional fonts is limited in programming, in detail with tables and numbers. At least all (hex) digits should have the same width. With small characters, like 'i', it's hard to position the cursor for insertion or deletion. Moving the cursor through consecutive lines can become a nightmare :-( DoDi -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Auto indentation
Hans-Peter Diettrich wrote: Graeme Geldenhuys schrieb: Also, as I mentioned, the gEdit plugin that enables elastic tabstops has a option to automatically do conversions. So you can work with elastic tabstops enabled, but when saved, the file gets converted back to using spaces. What will happen when you commit your changes? Will everybody have to work with your formatting, casted into spaces? If any commit converts tabs to spaces, then elastic tabs do not solve any problem any more or less than any other tab handling does. In this case the stored text has only spaces. If you check it out again, and wish to edit it, you need an editor, that detects where those spaces should be tabs (magical guessing according to your taste) Such conversion (to spaces / from spaces) can be applied to any form of tabs that you have in your source code NOTE: The conversion of tabs to spaces can be defined in 2 ways: 1) tabs a converted to an as many spaces as needed, so the look on the pc of the converter does not change 2) tabs and consecutive tabs (as well as consecutive spaces) are converted to a single space nly (except in strings or other white space sensitive areas) The first solution does not solve anything, as the checked in text still expresses the format of the one writer who converted it. => Format is still part of the content, not applied to a content The 2nd form will work (exceptions see further down) but requires are really good formater for any one wanting to work with this text Same thing should apply to code formatting, which is what Elastic Tabstops does. You press the Tab key, which inserts the char $09 - nothing more! Now the editor does the formatting for you, but doesn't modify the source code contents to do it. I'd agree with different tabstop codes, so that the formatting can be undone or suppressed at any time. Tab stops in the source (white space insensitive area / outside strings etc) are formating. They are formatting, because they cause different layout, unless they can be ignored / handled same as spaces After all Graeme would only need a single (or 2) tab char in the source, in order to align comments at the end of several lines I need maybe between 1 and 10 tab stops per line so my editor shows the comments aligned (using normal tabs) If all editors are to handle them elastic, then they carry format into the content content, and thus would track only changes in the content, regardless of whitespace and line breaks. Line breaks are interesting. Since some people write: if a then begin or: if a then begin the line break itself embeds formatting into the content. If you want to archive, what you describe (format free content) then all whitespaces (including tabs, newline) must be stored as simple space (except some basic interpreters, which have linebreak as part of the language) Applying tabs and linebreaks is eye candy, that your editor should apply on top of the content. Linebreaks could be used for paragraph like grouping of statements, that represent a logical entity in your code, yet are not presented as a procedure of their own. --- I may have shlightly disconnected from reality while writing the above Martin -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] syncro mode[Re: Auto indentation]
Martin wrote: Mattias Gaertner wrote: I guess this is the better solution for ecPaste. Can you add such an event? Yes, the question is, if it is ok for codetools, since it would be called before the paste => that is you have to interpret the to-be-pasted text before it is part of the source At the moment you can indent based on the complete source *after* the paste The alternative is a combination: - in the OnPaste event you store the text to be pasted (as well as the mode normal, column ) - in the OnIndent, you take the final caret pos and you know how far to go back (since the pasted text always ends at the final caret pos) I'll update you, when I got it done. Added. There are now SynEdit.OnPaste: TSynCopyPasteEvent SynEdit.OnCutCopy: TSynCopyPasteEvent // you do not need I still have to do the tests. It doesnt breek anything existing, but I havent checked if the events do 100% as advertised The event is called immediately before the actual paste happens. TSynCopyPasteEvent = procedure( Sender: TObject; // the synedit var AText: String; // the text, which you can modify, before it will be pasted var AMode: TSynSelectionMode; // smNormal, smColumn ALogStartPos: TPoint; // The position at which it will be inserted *** var AnAction: TSynCopyPasteAction // see below ) of object; TSynCopyPasteAction = ( scaContinue, // do the insert as normal scaPlainText, // do the insert, but (except for smColumn,smNormal,smLine) ignore all synedit specifics (such as fold info that came with the paste) scaAbort// do not insert anything ); *** ALogStartPos: TPoint; // The position at which it will be inserted *** Is the position where the new text will start. However the event does not include any information, if a block selection exists. A BlockSelection MAY be deleted before the paste - if it is not persistent - if eoOverwriteSelection is set -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] ASCII - IBM's (old) extended character set
- Original Message - From: "Graeme Geldenhuys" To: "Lazarus mailing list" Sent: Thursday, November 05, 2009 1:48 AM Subject: [Lazarus] ASCII - IBM's (old) extended character set Hi, Does Lazarus have a unicode conversion table for this ASCII character set? See url. http://www.web-wise-wizard.com/programming/ascii-ibm-extended-character-set.html As you can see from the url, the characters below Char(32) is very different to standard ASCII table or the ASCII table with CodePage 437. I'm reading old binary data files that used the IBM Extended ASCII characters in text content. At the moment I simply do a the following to replace certain characters. For example, what we know as the standard ascii (bell character), was the a bullet character. s := StringReplace(s, Char(7),'•', [rfReplaceAll, rfIgnoreCase]); Times have changed! I remember those smiley face characters in a old pac-man game I used to play. :-) Regards, - Graeme - Hi Graeme, I don't know if it helps, but the Windows font "Terminal" contains exactly all those 255 ASCII characters... cheers, Paul -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus