Re: [lazarus] vote for bdd related component icon

2007-12-11 Thread Joao Morais

Roberto Padovani wrote:

I would leave the bitmap of a grid only for grids.


+1


my .02


Now .04

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Lazarus 0.9.24 Congrats

2007-11-28 Thread Joao Morais

Bee wrote:

I don't use Delphi 6, but for some projects its in par with Delphi 7.


I'm using Lazarus 9.25 (SVN). For some features, Lazarus is better than 
Delphi 7, even par with Turbo Delphi. But for some other features, 
Delphi 7 is better, for example: integrated help. ;)


You don't need help, you have Ctrl+Click, Ctrl+Space, fpc docs and Google ;)

The debugger and the maturity of the visual classes of the VCL are the 
big advantages of Delphi, IMHO.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Lazarus and InstantObjects ?

2007-11-10 Thread Joao Morais

Al Boldi wrote:

You simply cannot compare a form with three combos
and two grids between dbware and mvp approaches. The former will eat
five groups of data access components, shortcuts to include some
funcionality and a lot of time to configure and debug everything. MVP
will eat five lines of code, nothing more. The same model that will
manage this controls, will also generate the DDL necessary to build the
database metadata for you.


Well, your demo phone app doesn't look so simple.


I wasn't very happy with this app, it is being refactored. After all: 1. 
the project still lacks an expert and better docs; 2. even without an 
expert, after learn all steps everything comes clear (and amusing if you 
are an oop guy ;)); 3. You need to be familiar with OOP, with or without 
an expert. It's harder to start a project, eg you need to write more 
code to see some result, but after write the core classes it is more 
simple to extend and maintain.


Maybe you can just create 
a mini app with just 2 fields: id name , with dbnav/edit-buttons.


Yup. This one, a wiki and a tutorial are in the plans.


BTW, as I said, the MVP would be great for a disconnected presentation
layer like in web development, so it would be really useful to have an
MVP to WebPresentation proxy.  Does your MVP include this feature?

No web features atm, it is included in the 2.0 roadmap though.


Great.  Keep us posted.


Sure.

Can you give a more complete example based on a simple TPerson 
db with 2 fields: id, name

===

I think I have fixed this annoying issue. Just place $M+/$M- around the
forward class declaration, or include a $M+ on the top of the unit.


Still doesn't work.  But I just moved the default published fields into 
public and it compiles and runs, but then I get this dialog:


No service 'Messages' assigned or registered

So I turn {$DEFINE UsePressOPF} on and then I get this 
../Press/Source/Brokers/PressSQLdbBroker.pas(48,16) Error: Identifier not 
found TSQLConnector


I think this is even more off topic here. Would you mind to move 
questions directly to me, or to the support mailing list so others 
interested in this thread can follow.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Lazarus and InstantObjects ?

2007-11-09 Thread Joao Morais

Al Boldi wrote:

Joao Morais wrote:

I am currently working in an IO-like project with a smarter, faster and
more customizable OPF engine, decoupled frameworks (after all data type
and opf aren't the same thing), no dbware or tdataset dependency, and
the best item: no backward compatibility to bother. www.pressobjects.org


Sounds great!

Does your OPF handle data storage natively?


The OPF just creates DDLs and DMLs based on an object oriented model, 
built over a data type framework. The DDLs and DMLs are sent to the 
database through a connection broker, built against Zeos, UIB, SQLdb 
(and also DOA and IBX when compiled with Delphi). Native access is in 
the 2.0 roadmap. Let me know if this answer your question.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Lazarus and InstantObjects ?

2007-11-09 Thread Joao Morais

Al Boldi wrote:
You see, trying to create an OPF as a separate layer that 
connects to the db via a broker is just broken by design, as this will 
introduce a tremendous overhead due to the dual caching problem.


I agree with you that this will cause some overhead, but it is not as 
much as you figured. The main bottleneck of an OPF is the database 
access, how the OPF builds DMLs, do object cache, lazy loading, bulk 
retrieving, etc.


In fact, the correct way forward seems to be to implement the OPF as the 
broker, just like you implement the broker against a specific db-lib.  What 
you get is a db specific OPF that wraps the broker inside it in a native 
fashion.


If I understood you correctly, this means build an OPF tied to an 
specific database, and this isn't a nice approach. In the current design 
I have:


  user - mvp - data type - opf engine broker -
   connection broker (tied with) db engine

You can change every part without changing the others. A small overhead 
do exist actually, and the way to remove it is writing a connection 
broker that doesn't depend of a db suite like SQLdb or Zeos, and that 
doesn't depend of the tdataset as well.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Lazarus and InstantObjects ?

2007-11-09 Thread Joao Morais

Al Boldi wrote:

do object cache, lazy loading, bulk retrieving, etc.


That's where things become interesting, because you have to figure out how to 
interface with your non-OO db, aka relational-DB, without incurring any 
duplicate overhead.


Interesting and amusing.

an OPF should not be considered an 
independent layer, but rather as a wrapper/converter/adapter to the non-OO 
db,


An OPF and its connection brokers consist of an independent layer that 
binds objects of an oo model and a storage mechanism.



A small overhead do exist actually,


I don't think it's small, unless you mean small apps which deal with textual 
data only. For large apps that deal with blobs, the overhead may bring down 
your system.


No, small overhead even to applications that handle large objects. There 
are three points to consider: 1. the real bottleneck is in the database 
and in the network; 2. moving data between layers doesn't mean big 
overhead due to refcount of ansistrings or other managed objects; 3. 
lazy loading of objects and attributes mixed with bulk retrieving.



and the way to remove it is writing a connection
broker that doesn't depend of a db suite like SQLdb or Zeos, and that
doesn't depend of the tdataset as well.


If you do it this way, then you are actually implementing proxies, and 
proxies should not be used unless there is a need for them like for 
border-gateways, because proxies add overhead.


I think you meant wrappers. And yes, wrappers to SQLdbs are necessary in 
this case, because implement wrappers to database API at this stage of 
the project demands an effort that I would like to use to other more 
important tasks like tests, docs and the expert.


What you may want to try is to refactor the OPF, dataBroker, and 
dbConnectionLib into their respective layering components, and then 
recompose a native OPF wrapper based on those layering components.  This 
should give a decoupled system while maintaining native performance.


Perhaps what you are proposing is something I have already implemented. 
I don't use any db* class and have created an abstract data access to 
improve speed as much as possible (or as I can) -- writing wrappers to 
database APIs in future versions. Have a look in the code.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Lazarus and InstantObjects ?

2007-11-09 Thread Joao Morais

Al Boldi wrote:

Joao Morais wrote:

1. the real bottleneck is in the database
and in the network;


Correct.  Let's call this the server-side, which isn't under our control.


Sometimes it is, eg building smart DMLs and smart strategies to retrieve 
data, using prepared statements when possible, and so on.



Then comes the client-side, which we can control.


Improvements in the client side sometimes doesn't worth the effort. If, 
lets say, 90% of the time is in the server side and the network, a 
perfect client side would increase 10% of the performance. The side 
effect is the complexity to maintain and extend the code.


Other improvements that can be made regarding performance is creating 
threads to perform some slow tasks in the background, while the 
application answer some key or mouse events of the user.



Where is the data cached?


Attributes belong to business objects. BOs are reference counted and the 
ones that wasn't removed from the memory are referenced by a cache that 
belongs to the persistence service.



3.lazy loading of objects and attributes mixed with bulk retrieving.


And how does the app access this object-data?


Retrieving its OID through the persistence service. This service will 
query the cache (binary tree -- todo list) in order to know if the 
object was already instantiated. If it exist, its address is returned, 
otherwise the persistence (xml, database, whatever) is queried in order 
to retrieve information to instantiate such object.



and the way to remove it is writing a connection
broker that doesn't depend of a db suite like SQLdb or Zeos, and that
doesn't depend of the tdataset as well.

If you do it this way, then you are actually implementing proxies, and
proxies should not be used unless there is a need for them like for
border-gateways, because proxies add overhead.

I think you meant wrappers. And yes, wrappers to SQLdbs are necessary in
this case, because implement wrappers to database API at this stage of
the project demands an effort that I would like to use to other more
important tasks like tests, docs and the expert.


The problem with this is that, the proper construction of the OOrdb cache 
manager is critically dependent on the native access to the dbAPI.  
Otherwise you may be hindered by the dual-cache problem.


No, only one cache that references objects. No relational data is 
cached, just some datasets.



What you may want to try is to refactor the OPF, dataBroker, and
dbConnectionLib into their respective layering components, and then
recompose a native OPF wrapper based on those layering components.  This
should give a decoupled system while maintaining native performance.

Perhaps what you are proposing is something I have already implemented.
I don't use any db* class and have created an abstract data access to
improve speed as much as possible (or as I can) -- writing wrappers to
database APIs in future versions. Have a look in the code.


Sure.  Can you give us a link to a tarball?


Sure. A 'zipball': 
http://pressobjects.org/snapshot/press-snapshot-20071103-r706.zip or 
subversion: 
https://pressobjects.svn.sourceforge.net/svnroot/pressobjects/trunk


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Lazarus and InstantObjects ?

2007-11-09 Thread Joao Morais

Al Boldi wrote:

The problem with this is that, the proper construction of the OOrdb
cache manager is critically dependent on the native access to the dbAPI.
Otherwise you may be hindered by the dual-cache problem.

No, only one cache that references objects. No relational data is
cached, just some datasets.


Of course you are not caching any relational data, but you said that you are 
using a connection broker to the rdb, which caches the rdb data, which means 
extra overhead.


Hmmm... the rdb or the suite that access the rdb caching data means 
extra resource usage I think, on behalf of performance.



Sure.  Can you give us a link to a tarball?

Sure. A 'zipball':
http://pressobjects.org/snapshot/press-snapshot-20071103-r706.zip or
subversion:
https://pressobjects.svn.sourceforge.net/svnroot/pressobjects/trunk


Ok, I had a quick look through the docs, and it seems that you have the 
design tightly coupled to the MVP.


The MVP _is_ the design, or even better, is the presentation framework.

Is there a way to directly attach LCL 
objects to your OPF?


You don't need to do this. Eg: create a form without code or non-visual 
components, bind BO attributes and components in a single line, and the 
MVP will do the rest for you using informations from the model.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Lazarus and InstantObjects ?

2007-11-08 Thread Joao Morais

Bogusław Brandys wrote:
What is the current state of InstantObjects port to FreePascal ? Could 
we port it totally to use it with Lazarus also ?


I'm interested in it but need a fresh look what was done and what is 
missing (especially missing features of fpc/lazarus which are critical 
to port it completely).


The win32 fpc can (should) compile the runtime stuff of IO, but the 
project has some issues regarding portability (some casts from pointer 
to integer comes to mind). The design stuff is coupled with Borland's 
OTA, need almost to be rewritten from scratch.


I am currently working in an IO-like project with a smarter, faster and 
more customizable OPF engine, decoupled frameworks (after all data type 
and opf aren't the same thing), no dbware or tdataset dependency, and 
the best item: no backward compatibility to bother. www.pressobjects.org


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Free method of any object didn't executes.

2007-11-06 Thread Joao Morais

12 12 wrote:

For example i do the following:

Ser := TSerie.Create(Chart1);
Ser.Free;

I set breakpoint in implementation of TSerie.Destroy.
Neither the debugger stops on breakpoint nor the debugger steps into 
implementation of Free or Destroy.

Is it bug or feature ?


Perhaps you didn't place an override; after the destroy declaration 
neither saw the warning the compiler issued to you.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Delphi Source/Samples/*.pas units

2007-10-29 Thread Joao Morais

Graeme Geldenhuys wrote:

I'll try and find a support email for CodeGear and see
what they say.


Try borland.public.delphi.non-technical at newsgroups.borland.com.

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] report writer 4 Lazarus?

2007-08-22 Thread Joao Morais

Graeme Geldenhuys wrote:

I needed to report from Objects Does LazReport support something
like that?


Provided that you write a lot of code, yes. Variables can be initialized 
with object member names, TUserDataset decendants can be created in 
order to reference container members, OnNeedValue event can be used to 
convert that object member name to the real value.



(Umm, not sure if I asked this before?)


You did, and I said PressObjects implements such approach against Fast 
and FreeReport.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] VOOE Programming.

2007-08-20 Thread Joao Morais

Bram Kuijvenhoven wrote:

Dave Coventry wrote:
I have advised a Visual Basic user of the merits of Lazarus and he 
asked Yes, but can it do VOOE programming.


Actually, I don't know what VOOE programming is ;), but I thought I'd 
pose the question anyhow


Well maybe it's 'Visual Object Oriented Engineering' --- e.g. drag  
drop your UML diagrams and automagically generate the code from it. I 
didn't know that was a feature of VB though ;)


This is the PressObjects (www.pressobjects.org) proposal: import a 
model, the SDK convert the model to class metadatas and generate the code.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Emulate Php Md5 (Crypt) and Sha1

2007-07-03 Thread Joao Morais

Alvise Nicoletti wrote:
Hi to all... did anyone never heard how to implement crypt and sha1 
functions of php inside delphi/lazarus?


My problem is the salt used in the crypt function, cause I'm already 
able to create a md5 succesfully...


That is an example of code about them in php:
define (CRYPT_MD5,1);
[...]
$c=crypt($pg,$s); // CRYPT DI pg in base a s
$code=sha1($TEXT.$DEST)


fpc has an md5 unit. Don't know about sha1, look for Delphi Encryption 
Compendium.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Wince windows crosscompile installer

2007-07-02 Thread Joao Morais

Alvise Nicoletti wrote:

My boss don't pays me to compile my IDE, but to produce software, so he 
got a lot nervous every time a new library for Lazarus cames out, cause 
I often have to reinstall everything (like it's happening now with the 
new version of lnet created by Ales Katona that requires the lastest fpc 
to compile.


So don't install the IDE, but download the fpc and lazarus from the 
sources plus the fpcbuild repository, compile both projects (just a 
make clean all in the console), create a shortcut and enjoy.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Using interfaces to get compiler warnings

2007-06-26 Thread Joao Morais

Graeme Geldenhuys wrote:

On 26/06/07, Michael Van Canneyt [EMAIL PROTECTED] wrote:


The compiler warns you if you create an instance of a class with 
uninmplemented

abstract methods. It even tells you which ones:


It warns you yes, but doesn't prevent you from continuing.  So you can
still get a runtime error when you application is doing it's job.
Delphi, I believe does the same think - but I think even worse, by not
even warning you.


Delphi warns if you create an instance from a class with abstract 
methods, and doesn't warn if you are using a class reference because the 
compiler cannot know which class is being instantiated. Just like fpc does.



I want to prevent developers from not implementing a method and
standing the chance of getting a runtime error.  Interfaces seem to be
the only way to get this behavior?


Yes, but this approach will work properly only if you change your 
instance references from classes to interfaces.



I don't mind if the developer implements blank methods, but at least
it forces them to pay attention.  I have worked with developers that
never seem to look at the Messages window!!


The problem is in the developer, not in your code =)

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Using interfaces to get compiler warnings

2007-06-26 Thread Joao Morais

Michael Van Canneyt wrote:


On Tue, 26 Jun 2007, Graeme Geldenhuys wrote:


On 26/06/07, Michael Van Canneyt [EMAIL PROTECTED] wrote:

The compiler warns you if you create an instance of a class with
uninmplemented
abstract methods. It even tells you which ones:

It warns you yes, but doesn't prevent you from continuing.  So you can
still get a runtime error when you application is doing it's job.
Delphi, I believe does the same think - but I think even worse, by not
even warning you.


I think we could try to make this an error - using some switch.


It wont prevent you from using a class reference to instantiate an 
abstract class.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


[lazarus] combobox.clear under win32 clears text property

2007-06-19 Thread Joao Morais


Hello,

Whenever I call ComboBox.Items.Clear under win32, the text property is 
also cleared. This is not consistent with gtk1 neither d5, where the 
text property stays untouched.


The problem is in the following line:
  Windows.SendMessage(FWin32List, FFlagResetContent, 0, 0);
declared in the TWin32ListStringList.Clear method, win32listsl.inc file.

Is there something that could be improved here?

Thanks.

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Combo.OnClick

2007-06-18 Thread Joao Morais

Joao Morais wrote:


Hello,

The ComboBox.OnClick event is *being* fired when the user opens the 
combo and is *not being* fired when the user click on the option (and 
the combo is closed).


Is this a bug or is this by default?


Something here? If this is really a bug I can try a fix, otherwise I 
know I have to write some codes under ifdefs.


Thanks.

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Combo.OnClick

2007-06-18 Thread Joao Morais

Felipe Monteiro de Carvalho wrote:

On which platform are you and what is the expected behavior?


win32 and gtk1.

I would expect onclick fired when the user chooses another option. This 
should also happen when the user presses up and down arrow keys (opened 
and closed combo).


The onclick event shouldn't be fired when the user opens the combo, 
there is another event to accomplish this.


Thanks.

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Combo.OnClick

2007-06-18 Thread Joao Morais

Felipe Monteiro de Carvalho wrote:

On 6/18/07, Joao Morais [EMAIL PROTECTED] wrote:

I would expect onclick fired when the user chooses another option.


There is OnChange for that.


This is fired when the text is changed. I need an event that says when 
the index is changed.



The onclick event shouldn't be fired when the user opens the combo,
there is another event to accomplish this.


For me the behavior looks logical. When the user click the control it
get's a OnClick.


OnClick doesn't mean exactly a click, you have OnMouseDown to accompish 
this. OnClick means that the user sent information to the control, and 
this doesn't happen when he open a combo (not usually).



In this cases of doubt we usually follow what Delphi does, unless it's
impossible to implement the behavior on Gtk. As soon as I have time I
will test to see how Delphi handles this.


My complaint is because the behavior is different when compared with 
Delphi. Delphi behaves exactly as I described.


Thanks again.

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Combo.OnClick

2007-06-18 Thread Joao Morais

Felipe Monteiro de Carvalho wrote:

On 6/18/07, Joao Morais [EMAIL PROTECTED] wrote:

This is fired when the text is changed. I need an event that says when
the index is changed.


I thougth OnChange would do that ... doesn't it activate when you
change to another option and it has the same caption as before?


I'd say I could survive with OnChange, but it is a bit noisy when using 
combo whose style is csDropDown.



My complaint is because the behavior is different when compared with
Delphi. Delphi behaves exactly as I described.


Then I think it's unlikely anyone will opose such change.


Good news.


Maybe we
need a Wiki page detailing when the most important events should be
activated.

Just start implementing it by Gtk, because if a impossibility of
implementing it is found with gtk you won't have wasted time making
the windows version. It's better to have consistent events then
partially compatible, but inconsistent ones.


Indeed.

I will provide a patch. Thanks.

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Combo.OnClick

2007-06-18 Thread Joao Morais

Luiz Americo Pereira Camara wrote:

Joao Morais wrote:
OnClick doesn't mean exactly a click, you have OnMouseDown to 
accompish this. OnClick means that the user sent information to the 
control, and this doesn't happen when he open a combo (not usually).


Did you tried OnSelect?


Hei, nice event, I can use it under ifdef fpc, otherwise onclick does 
the trick (btw it doesn't exist in D5).


Thanks.

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] CodeTools and a GUI Class Builder

2007-06-16 Thread Joao Morais

Graeme Geldenhuys wrote:

On 15/06/07, Joao Morais [EMAIL PROTECTED] wrote:


This is exactly what I am planning to do. What I have implemented so
far: a pascal parser, a code updater and a model that stores project 
data.


Out of interest... Why did you create a new pascal parser and code
updater, when CodeTools can already do that plus more for you?


Because I need it to D5+ as well, and because it was amusing =)

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] StringGrid.ClientWidth does not count scroll bar

2007-06-15 Thread Joao Morais

Graeme Geldenhuys wrote:

Also note that if you are working with widths in the grids/cells, that
the GridLineWidth is 50% implemented.  It draws the grid lines based
on that value, but then eats into the cell space, which doesn't take
into account the GridLineWidth (always assuming 1).


I'm aware of this. My implementation works perfectly using vcl.

Thanks.

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Is the F2 shortcut in a popup menu working?

2007-06-15 Thread Joao Morais

Graeme Geldenhuys wrote:

What platform and widgetset are you using?


Linux gtk1, fpc 2.1.4 and lazarus trunk;
windows, lazarus 0.9.20.


On 15/06/07, Joao Morais [EMAIL PROTECTED] wrote:


Hello,

I have some popup menus assigned to components. Taking all shortcuts I
have used so far, only the F2 seems to be not working. Something I am
missing?

Thanks,
--
Joao Morais





_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] StringGrid.ClientWidth does not count scroll bar

2007-06-15 Thread Joao Morais

Micha Nelissen wrote:

Joao Morais wrote:

The ClientWidth method does not count the vertical scroll bar width. Is
this by default? This is inconsistent with Delphi, so if this is by
default I know I need to implement a workaround =)


The ClientWidth is the space available for client controls, no ? The
vertical scrollbar occupies some of that space, so it makes sense the
ClientWidth is excluding the scrollbar.


I thik you mean including the scrollbar. Don't think so. I see a 
scrollbar like a component finish instead a space to the user. I need to 
know how many pixels I have to distribute my string grid columns, and a 
scroll bar will make a mess of my calculations whenever the number of 
grid lines will be greater than the client height.



I'm not sure whether this is on purpose, but for example on gtk, the
scrollbar is outside the control usually, but on win32, it's drawn
inside the control.


Nice point! So what about a standard behavior? (btw my gtk1 and win32 
implementations are drawing the scrollbars inside the control)


Thanks.

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] CodeTools and a GUI Class Builder

2007-06-15 Thread Joao Morais

Graeme Geldenhuys wrote:


Has anybody done something like this with CodeTools yet? Creating a
GUI Lazarus addon or seperate application that can build or edit
classes?


I will continue the design stuff for PressObjects presently. I need this 
SDK running in the Lazarus and Delphi IDE so I created an interface to 
change the project sources. One unit implement this interface using 
Borland OTA, another unit implement it using lazideintf.



I would like to build such a tool or help someone that already started
with such a tool. This would be extremely handy in projects like tiOPF
where you need to create hundreds of Business Objects.


This is exactly what I am planning to do. What I have implemented so 
far: a pascal parser, a code updater and a model that stores project data.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


[lazarus] Is the F2 shortcut in a popup menu working?

2007-06-14 Thread Joao Morais


Hello,

I have some popup menus assigned to components. Taking all shortcuts I 
have used so far, only the F2 seems to be not working. Something I am 
missing?


Thanks,
--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


[lazarus] StringGrid.ClientWidth does not count scroll bar

2007-06-14 Thread Joao Morais


Hello,

The ClientWidth method does not count the vertical scroll bar width. Is 
this by default? This is inconsistent with Delphi, so if this is by 
default I know I need to implement a workaround =)


Thanks.

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Report Tools for Lazarus

2007-06-09 Thread Joao Morais

Graeme Geldenhuys wrote:

On 08/06/07, Michael Van Canneyt [EMAIL PROTECTED] wrote:


Reportman should also work with Lazarus. (reportman.sourceforge.net)


I used Reportman with Kylix and Delphi to great success. I generated
reports from Objects, not a Dataset. This worked very well. Can
LazReport do this?


I am using FreeReport with Delphi and building reports in runtime 
against a business class model. I am using a wrapper to the 
TUserDefinedDataSet (don't remember the exact name) class. This has been 
working very well but wasn't so simple to implement, so, it depends what 
are you expecting.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Report Tools for Lazarus

2007-06-09 Thread Joao Morais

Graeme Geldenhuys wrote:

On 09/06/07, Joao Morais [EMAIL PROTECTED] wrote:


I am using FreeReport with Delphi and building reports in runtime
against a business class model. I am using a wrapper to the
TUserDefinedDataSet (don't remember the exact name) class. This has been


This sounds like what ReportBuilder does in Delphi. A very powerful
feature for reporting and allows you to report from just about
anything. At runtime you inject the data you need and to the reporting
engine it looks like a normal Dataset.  Does LazReport have that
TUserDefinedDataset class?


I hope so! =) Since LazReport is based on FreeReport, the answer 
probably is yes.



What I've done with ReportMan is more how QuickReports work.  I use a
OnLoadData type event to populate the TReportLabel (or whatever it is
called) components with data. The reporting engine then handle the
report pages and brought forward totals for me.


I am creating something like a report metadata in runtime, based on the 
class model. Plain members are converted in fields, plain members from 
compositions and aggregations are also included as fields, container 
members and the root BO are included as dataset wrappers. These dataset 
wrappers are managed by the report broker, the Fast/FreeReport one 
creates the TfrDataset (this is the name).



working very well but wasn't so simple to implement, so, it depends what
are you expecting.


I take all open source projects with a pinch of salt. I don't expect
an easy ride.  :-)


By the way, easy rides aren't as amusing as a good challenge =)

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Recent SVN lazarus won't compile. Can't find unitcontnrs.

2007-05-26 Thread Joao Morais

Flávio Etrusco wrote:
Your build environment is messed up. Format your partition and reinstall 
the OS.

Alright, just kidding. Partially.


IOW perhaps you have more than one compiled contnrs that can be reached 
by the compiler, and the compiler found the wrong one.


--
Joao Morais



On 5/26/07, Christian Budde [EMAIL PROTECTED] wrote:

Hi all,

any news/hints on how to compile Lazarus (SVN) with the latest FPC
(SVN). I know that the topic was discussed before, but AFAIK only for 
linux.

I have downloaded the latest SVN versions and successfully compiled the
compiler (using make clean/cycle/all/install). I also moved the unit
directories so that Lazarus do see them. But compiling Lazarus (make
all) result in the compiler message 'Can't find unit contnrs'

Any hints?

Thanks in advance,

Christian

_
 To unsubscribe: mail [EMAIL PROTECTED] with
unsubscribe as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives



_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives



_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] TControl and public Color property???

2007-05-07 Thread Joao Morais

Vincent Snijders wrote:

Graeme Geldenhuys schreef:

On 5/6/07, Michael Van Canneyt [EMAIL PROTECTED] wrote:


TControl non visual ?? How is that ? TLabel or TImage are very visual...
Non-windowed, you mean ?


Ah ok, I got it mixed up.  :-)

Either way, the LCL still has the Color property as 'public' instead
of 'protected'.


An advantage of having it public, is that you can pass a TControl to the 
widget interface and it can access the Color property without resorting 
to cast to decendants. I don't know if this technique is actually used 
though.


There are several properties where this feature would be welcome, eg 
tcustomedit.text, tcustomcheckbox.checked, but you can use the following 
workaround when necessary:


type
  tcustomeditfriend = class(tcustomedit);

...

tcustomeditfriend(edit).edit := 'value';

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] TControl and public Color property???

2007-05-07 Thread Joao Morais

Vincent Snijders wrote:

Joao Morais schreef:

Vincent Snijders wrote:
An advantage of having it public, is that you can pass a TControl to 
the widget interface and it can access the Color property without 
resorting to cast to decendants. I don't know if this technique is 
actually used though.


There are several properties where this feature would be welcome, eg 
tcustomedit.text, tcustomcheckbox.checked, but you can use the 
following workaround when necessary:


Which I consider a hack,


A hack or Object Pascal class-friendship?

which should be necessary if you have the 
ownership of the source of tcustomchecbox.


Sorry?

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] TControl and public Color property???

2007-05-07 Thread Joao Morais

Graeme Geldenhuys wrote:

On 5/7/07, Joao Morais [EMAIL PROTECTED] wrote:
 An advantage of having it public, is that you can pass a TControl to 
the

 widget interface and it can access the Color property without resorting
 to cast to decendants. I don't know if this technique is actually used
 though.

There are several properties where this feature would be welcome, eg
tcustomedit.text, tcustomcheckbox.checked, but you can use the following
workaround when necessary:

type
   tcustomeditfriend = class(tcustomedit);

...

tcustomeditfriend(edit).edit := 'value';



I agree...  And if you are going to use it often, create a local
variable of the 'friend' class so you only need to cast once.


Not a good idea if you have inheritance:

twincontrol
  control: twincontrolfriend

tcustomedit
  control: tcustomeditfriend

...

tcustomeditfriend.getcontrol
begin
  result := inherited control as tcustomeditfriend; // problem here
end;


I write many cross compiler (FPC and Delphi) code and keep breaking
the builds under Delphi due to the differences between LCL and VCL.


Yup. This is exactly my headackes. Cross FPC x Delphi and VCL x LCL 
code. Anyway both fpc and lazarus team are doing an exceptional job 
regarding compatibility.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] [patch] - LCL for fpGUI

2007-04-10 Thread Joao Morais

Graeme Geldenhuys wrote:

I thought all command line svn clients support 'https' as it is part
of the ra_dav RA module.


The svn need to be compiled with --with-ssl.


Try  the following command:  svn --version


Some distributions (such as RHEL 3) provide an svn version which doesn't
support SSL. In that case the line provided in the Wiki won't work, while

svn co http://fpgui.svn.sourceforge.net/svnroot/fpgui/trunk fpgui

will work (as opposed to https://)
Wouldn't it be wise to note it, to make it as easy as possible?


The SF only provide svn access under the https protocol.

--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Anybody on this list use Firebird database with Lazarus?

2007-03-29 Thread Joao Morais

[EMAIL PROTECTED] wrote:

try with http://www.progdigy.com/modules.php?name=UIB, support Lazarus 
and works fine for Firebird, Interbase and Yaffil.


You have also ZeosLib - http://zeos.firmos.at



El jue, 29-03-2007 a las 10:23 -0500, Howard Lee Harkness escribió:

Anybody on this list use Firebird database with Lazarus? I'm looking
for general information on this, and I ran into a dead end while
trying to find the ODBC drivers, so I'm hoping somebody here has found
a better way -- or knows where to find those drivers.


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Expert for Lazarus

2007-02-02 Thread Joao Morais

Mattias Gaertner wrote:


On Sun, 28 Jan 2007 11:50:47 -0200
Joao Morais [EMAIL PROTECTED] wrote:


Hello,

About changing source code, afaics I have access to an specific
source file using 
srceditorintf.SourceEditorWindow.SourceEditorIntfWithFileName('someunit.pas').


Inside the TSourceEditorInterface class I have tons of methods used
to change the sources. Please point out some hints that I can follow
to make safe changes to them.


They are safe. 
Maybe with the exception: Replacing text, moves source marks.


Let's say I need to include one line with This new line and remove 
three lines. I can use Position or Line+Column values.


The line need to be included between lines 5 and 6, or after the 
position 120.


The lines I need to remove are 12, 13 and 14 (now 13, 14 and 15 because 
of the new line). If using the Position approach, characters between 
position 250 and 300, including the last breakline (now between 264 and 
314 because of the new line + #10).


About events, where should I look for beforecompile, aftersave and 
another ide events?


They don't exist yet.
What events do you need exactly?
'BeforeCompile' is too unspecific, because there are dozens actions
between pressing F9 and the real execution of the compiler (e.g. state
checks, auto saves, file checks, auto updates of resource files,
dependency checks, saves, builds, running before compilation tools).


I need to parse some units whenever:

1. the user choose to save the sources -- before or after save -- 
provided that what he is seeing in the editor is received by the parser;


2. before the project is going to be built by fpc, before or after 
checks and savings. A var parameter saying Abort: Boolean would be 
welcome, otherwise I can raise an exception if necessary.


Thanks,
--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


[lazarus] Expert for Lazarus

2007-01-28 Thread Joao Morais


Hello,

About changing source code, afaics I have access to an specific source 
file using 
srceditorintf.SourceEditorWindow.SourceEditorIntfWithFileName('someunit.pas').


Inside the TSourceEditorInterface class I have tons of methods used to 
change the sources. Please point out some hints that I can follow to 
make safe changes to them.


About events, where should I look for beforecompile, aftersave and 
another ide events?


Thanks,
--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


[lazarus] ComboBox issues

2006-11-22 Thread Joao Morais


Hello,

I have observed the following behaviors in the ComboBox component:

- the OnExit event (ComboBox and all other components) is triggered 
whenever I change the focus to another form (including another 
application) -- without changing the focus from one control to another 
in the same form. Is this behavior correct?


- the ComboBox.DropDown doesn't work under win32. It sounds that it 
isn't implemented, but perhaps just need one line somewhere...


- and the DropDown works under gtk but someone, somewhere, thinks that 
the combo wasn't opened -- if the combo is opened via DropDown, pressing 
Enter to select an item doesn't close it, and if I change the focus to 
another control (in the same form) or another form/application, the 
combo will continue there.


BTW I'd like to send a patch instead bothering you, but I need more time 
to learn the internals of the lcl. Perhaps the next issue...


Thanks,
--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] turboCASH on Lazarus proof of concept

2006-03-10 Thread Joao Morais

Michael Van Canneyt wrote:


I'm currently writing specs for a 'serious' application (a grade tracker
for teachers) which will use (embedded) firebird as a back-end database,
which will be using tiOPF or InstantObjects and LazReport - all this in
Lazarus. This is a commercial application, I'm telling this to show our
trust in Lazarus.


I'll continue the port of the InstantObjects framework to FPC just after 
v2.0 is out, let me know if you need something (or let me know when you 
start something).


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] turboCASH on Lazarus proof of concept

2006-03-10 Thread Joao Morais

Michael Van Canneyt wrote:


On Fri, 10 Mar 2006, Joao Morais wrote:


Michael Van Canneyt wrote:


I'm currently writing specs for a 'serious' application (a grade tracker
for teachers) which will use (embedded) firebird as a back-end database,
which will be using tiOPF or InstantObjects and LazReport - all this in
Lazarus. This is a commercial application, I'm telling this to show our
trust in Lazarus.


I'll continue the port of the InstantObjects framework to FPC just after
v2.0 is out, let me know if you need something (or let me know when you
start something).


Database storage using SQLDB or ZeosLib is on the top of the list.


Anyway let me know when you start something on behalf of IO (here or at 
IO's development ng) due to avoid duplicate effort.


Thanks,
--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


[lazarus] Shortcut sugestions

2005-09-01 Thread Joao Morais


Hi all,


I cannot use some usefull (IMHO) shortcuts like F12 to change between 
Form and Editor (Editor-Form doesn't work) and F11 to change between 
Object Inspector and (Form or Editor - last focused), this last case 
F11 doesn't work in OI.


Another sugestion is a shortcut to focus main window (Alt+Letter would 
be perfect, but a simple key, like F10, will help as well).



Thank you,
--
Joao Morais


_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Segmentation fault starting Lazarus

2005-08-29 Thread Joao Morais

Mattias Gaertner wrote:


Could you make a backtrace please.
Instead of continue, use backtrace here.


Hi Mattias,

Are you saying something like this?

=
(gdb) run
Starting program: /lpdata/programas/svnfpc/lazarus/startlazarus

Program received signal SIGSEGV, Segmentation fault.
0x40001078 in ?? ()
(gdb) bt
#0  0x40001078 in ?? ()
#1  0x4000d4c8 in ?? ()
#2  0x400031a3 in ?? ()
#3  0x4e15 in ?? ()
(gdb) bt full
#0  0x40001078 in ?? ()
No symbol table info available.
#1  0x4000d4c8 in ?? ()
No symbol table info available.
#2  0x400031a3 in ?? ()
No symbol table info available.
#3  0x4e15 in ?? ()
No symbol table info available.
(gdb)
=


--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Using XML-RPC with Lazarus/FPC ...

2005-08-27 Thread Joao Morais

Sebastian Günther wrote:


Thomas Zastrow schrieb:


Hello,

I see that there seems to be XML-RPC-functionality comming with FPC
(under \fpcsrc\fcl\net there are some units which are dealing with
XML-RPC).

I need to write a little XML-RPC-Client and don't want to do that in
Java ... ;-)

Perhaps somebody can give a little example or some tips how to build an
XML-RPC-client in Lazarus??? I found no documentation about the units ...



It's not really easy to do; actually only using the XML-RPC server stuff
is recommended to use within FPC (but not with Lazarus, it requires the
old fpAsync architecture).
A new version is in work and (hopefully!) is ready to go soon.


Hi Sebastian,

Plans to include SOAP?

Thanks,
--
Joao Morais

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives