Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2003-04

How to scroll TMemo control in code

17 messages · 8 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Catalin Mincu
to Unknown author: Thanks for the help and I am very glad I now understand how the Text gets sent to…
Show quoted text 11 lines
I am going to use MySQL and my user will pay for the license then it will make my product expensive. Do we have alternative database system for this that is LGPL ( in Delphi land we have Database Desktop where we can distribute it without requiring a license). Yoyong

Try Firebird or Thunderbird (look for something
similar on http://sourceforge.net)

=====
Sincerely yours Catalin

Phone : 0721.333.439
0722.336.491
Mail :
Web : www.geocities.com/cata_mincu
cata76.home.ro

__________________________________________________ Do you Yahoo!?
Yahoo! Tax Center - File online, calculators, forms, and more http://tax.yahoo.com

Unknown author

Thanks for the help and I am very glad I now understand how the Text gets sent to TgtkObject.SetLabel.

By the way, as I understand it MySQL server is GPL'ed, but if I use it in commercial environment I have to pay for the license, am I right? Actually, I am planning
to give Lazarus a try on creating Linux program that runs only in a local computer and planning to sell it to one of our customers. So, as you can see, if I am going to
use MySQL and my user will pay for the license then it will make my product expensive. Do we have alternative database system for this that is LGPL ( in Delphi land we have Database Desktop where we can distribute it without requiring a license).

Yoyong

Internet Mail Message
Received from host:
svcr-216-37-230-2.dsl.svcr.epix.net
[216.37.230.2]

From: Mattias Gaertner on 03/31/2003 09:37 AM GMT

Mattias Gaertner To:
Cc: (bcc: Yoyong Hernan-ET/PGI)
Subject: Re: [lazarus] How to scroll TMemo
control in code
03/31/2003 05:37 PM
Please respond to

Does this mean that I will use TMemoScrollBar or is TMemo a descendant of TMemoScrollBar?

TMemo has now two new properties:

    property HorzScrollBar: TMemoScrollBar;
    property VertScrollBar: TMemoScrollBar;
Show quoted text 10 lines
I will try to check out latest cvs today and give it a try. By the way, I managed to move the scrollbar in code last week end but I noticed that as the contents of memo gets larger and larger, appending text becomes slower. Part of the reason maybe because my code will scroll the TMemo to bottom everytime I add the text. But looking at how TMemo inserts text, it is deleting the entire contents and replace it with a new one (gtkObject.inc). It tried figuring out how the content is updated but to no avail, I just dont really get it. Can somebody please help me understand how the updated text is send to gtk interface????

For example:

TMemo.Lines.Add('new line');
calls
TStrings.Add
calls
TMemoStrings.Insert
sets
FMemo.Text
calls
TCustomEdit.SetText
calls
TControl.SetText
calls
TControl.SetTextBuf
calls
CNSendMessage(LM_SetLabel, ...
calls
SendMsgToInterface(
calls
TInterfaceBase.IntSendMessage3
which is abstract and so it calls
TgtkObject.IntSendMessage3
calls
TgtkObject.SetLabel

Very slow.
To accelerate this, you can improve the TMemoStrings functions to send messages directly to the interface. Invent new messages LM_InsertText and LM_DeleteText. The reading is also very slow. The Text should be stored and only fetched from the inteface, when it has changed. Then you need also a callback.

If you want to do that, just ask and I will give you more deatails.

Mattias

Show quoted text 131 lines
snip.... ...... myMemo : TMemo; ...... procedure TfrmTest.Button1Click(Sender : TObject); var i : Integer; begin for i := 0 to 1000 do begin myMemo.Lines.Add("Hello Lazarus"); end; end; snip..... If I understand it right, we must just append "Hello Lazarus" to the current text that is inside GtkText object. But as I said, looking at gtkobject.inc, we delete the whole text and then insert. Which I believe is the cause of slow down in appending many short text in TMemo. Again, to make my self clear, can somebody help me understand how the lines property of TMemo gets send to gtkObject.inc?????? Regards, Yoyong Internet Mail Message Received from host: svcr-216-37-230-2.dsl.svcr.epix.net [216.37.230.2] From: Mattias Gaertner on 03/29/2003 05:34 PM GMT Mattias Gaertner To: Cc: (bcc: Yoyong Hernan-ET/PGI) Subject: Re: [lazarus] How to scroll TMemo control in code 03/30/2003 01:34 AM Please respond to On Sat, 29 Mar 2003 12:15:19 +0100 Marc Weustink wrote: > At 10:45 29-3-2003 +0100, you wrote: > >On 28 Mar 2003 11:07:59 -0500 > >andrew johnson wrote: > > > > > I think this is a great idea. And FYI.. the only reasons > > > TControlScrollBar is so inflexible is because, a) I didn't know what > > > I was doing. and b) because I was only attempting to implement what > > > was needed for TScrollingWinControl stuff. So, if it is possible to > > > make as many of these changes as possible directly in > > > TControlScrollBar without breaking TScrollingWinControl, and Delphi > > > compatibility in that regard I think it would make more sense to do > > > so. > > > >Yep. > >I changed the FControl in TControlScrollbar into a TWincontrol. Most of > >code only works if the FControl is a TScollingWinControl. For all other > >it does nothing. > > > >Now it's time for implementation. > >The TMemoScrollBar should be mostly readonly, but the position > >property. The TControlScrollbar is currently quite the opposite. It > >updates the position due to messages and set all other values (min, > >max, page) and even calculates the visibility itself. > >Therefore TControlScrollbar should for non-TScrollWinControls only read > >the values from the interface and raise an exception on writing the > >properties. TMemoScrollbar should implement SetPosition. > >TMemo must create/destroy the two TMemoScrollbar. > > > >So, we need functions to read > >Increment, Page, Min, Max, Range, Size, Position, Smooth > >and a function to set the > >Position > > I don't see any harm in setting Increment, Page and Smooth as well (half > page scrolling in stead of pagescrolling or so) > > >I think, we can simple use GetScrollInfo and SetScrollInfo. > > > >Ok? > > Think so. I changed TControlScrollBar, added TMemoScrollBar and added two public scrollbar properties to TCustomMemo. You can read Visible, Position, Range, Page and Size and write Position and Page. Only one new interface function was neccessary: GetScrollBarVisible, which was missing in GetScrollInfo. Increment and Smooth are also missing and are left as an exercise. Mattias _________________________________________________________________ To unsubscribe: mail with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives _________________________________________________________________ To unsubscribe: mail with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives

_________________________________________________________________ To unsubscribe: mail with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives

Marius Popa Adrian
to Unknown author

yes there are alternatives
www.firebirdsql.org
In delphi you can use Ibobjects ,IBX, or FreeIb components ... In lazarus it try to work with FreeIb components but still have troubles (AV) ...

use MySQL and my user will pay for the license then it will make my product expensive. Do we have alternative database system for this that is LGPL ( in Delphi land we have Database Desktop where we can distribute it without requiring a license).
Michael Van Canneyt
to Unknown author: Thanks for the help and I am very glad I now understand how the Text gets sent to…
Show quoted text 13 lines
Thanks for the help and I am very glad I now understand how the Text gets sent to TgtkObject.SetLabel. By the way, as I understand it MySQL server is GPL'ed, but if I use it in commercial environment I have to pay for the license, am I right? Actually, I am planning to give Lazarus a try on creating Linux program that runs only in a local computer and planning to sell it to one of our customers. So, as you can see, if I am going to use MySQL and my user will pay for the license then it will make my product expensive. Do we have alternative database system for this that is LGPL ( in Delphi land we have Database Desktop where we can distribute it without requiring a license).

Try Firebird. FPC supports it.

Michael.

Mattias Gaertner
to Unknown author: Please give me more details and I will try to implement it. Yoyong Internet Mail Message…
Mattias, Please give me more details and I will try to implement it.

Marcs idea of writing a TStrings descendent, that is Text based instead of lines looks very promising for this. Let's call it TStringText. TMemoStrings should then become a descendent of TStringText.
If the TMemo is then still not fast enough, we can add the callback and the two new interface functions.

Mattias

Unknown author

Mattias,

Please give me more details and I will try to implement it.

Yoyong

Internet Mail Message
Received from host:
svcr-216-37-230-2.dsl.svcr.epix.net
[216.37.230.2]

From: Mattias Gaertner on 03/31/2003 09:37 AM GMT

Mattias Gaertner To:
Cc: (bcc: Yoyong Hernan-ET/PGI)
Subject: Re: [lazarus] How to scroll TMemo
control in code
03/31/2003 05:37 PM
Please respond to

Does this mean that I will use TMemoScrollBar or is TMemo a descendant of TMemoScrollBar?

TMemo has now two new properties:

    property HorzScrollBar: TMemoScrollBar;
    property VertScrollBar: TMemoScrollBar;
Show quoted text 10 lines
I will try to check out latest cvs today and give it a try. By the way, I managed to move the scrollbar in code last week end but I noticed that as the contents of memo gets larger and larger, appending text becomes slower. Part of the reason maybe because my code will scroll the TMemo to bottom everytime I add the text. But looking at how TMemo inserts text, it is deleting the entire contents and replace it with a new one (gtkObject.inc). It tried figuring out how the content is updated but to no avail, I just dont really get it. Can somebody please help me understand how the updated text is send to gtk interface????

For example:

TMemo.Lines.Add('new line');
calls
TStrings.Add
calls
TMemoStrings.Insert
sets
FMemo.Text
calls
TCustomEdit.SetText
calls
TControl.SetText
calls
TControl.SetTextBuf
calls
CNSendMessage(LM_SetLabel, ...
calls
SendMsgToInterface(
calls
TInterfaceBase.IntSendMessage3
which is abstract and so it calls
TgtkObject.IntSendMessage3
calls
TgtkObject.SetLabel

Very slow.
To accelerate this, you can improve the TMemoStrings functions to send messages directly to the interface. Invent new messages LM_InsertText and LM_DeleteText. The reading is also very slow. The Text should be stored and only fetched from the inteface, when it has changed. Then you need also a callback.

If you want to do that, just ask and I will give you more deatails.

Mattias

Show quoted text 131 lines
snip.... ...... myMemo : TMemo; ...... procedure TfrmTest.Button1Click(Sender : TObject); var i : Integer; begin for i := 0 to 1000 do begin myMemo.Lines.Add("Hello Lazarus"); end; end; snip..... If I understand it right, we must just append "Hello Lazarus" to the current text that is inside GtkText object. But as I said, looking at gtkobject.inc, we delete the whole text and then insert. Which I believe is the cause of slow down in appending many short text in TMemo. Again, to make my self clear, can somebody help me understand how the lines property of TMemo gets send to gtkObject.inc?????? Regards, Yoyong Internet Mail Message Received from host: svcr-216-37-230-2.dsl.svcr.epix.net [216.37.230.2] From: Mattias Gaertner on 03/29/2003 05:34 PM GMT Mattias Gaertner To: Cc: (bcc: Yoyong Hernan-ET/PGI) Subject: Re: [lazarus] How to scroll TMemo control in code 03/30/2003 01:34 AM Please respond to On Sat, 29 Mar 2003 12:15:19 +0100 Marc Weustink wrote: > At 10:45 29-3-2003 +0100, you wrote: > >On 28 Mar 2003 11:07:59 -0500 > >andrew johnson wrote: > > > > > I think this is a great idea. And FYI.. the only reasons > > > TControlScrollBar is so inflexible is because, a) I didn't know what > > > I was doing. and b) because I was only attempting to implement what > > > was needed for TScrollingWinControl stuff. So, if it is possible to > > > make as many of these changes as possible directly in > > > TControlScrollBar without breaking TScrollingWinControl, and Delphi > > > compatibility in that regard I think it would make more sense to do > > > so. > > > >Yep. > >I changed the FControl in TControlScrollbar into a TWincontrol. Most of > >code only works if the FControl is a TScollingWinControl. For all other > >it does nothing. > > > >Now it's time for implementation. > >The TMemoScrollBar should be mostly readonly, but the position > >property. The TControlScrollbar is currently quite the opposite. It > >updates the position due to messages and set all other values (min, > >max, page) and even calculates the visibility itself. > >Therefore TControlScrollbar should for non-TScrollWinControls only read > >the values from the interface and raise an exception on writing the > >properties. TMemoScrollbar should implement SetPosition. > >TMemo must create/destroy the two TMemoScrollbar. > > > >So, we need functions to read > >Increment, Page, Min, Max, Range, Size, Position, Smooth > >and a function to set the > >Position > > I don't see any harm in setting Increment, Page and Smooth as well (half > page scrolling in stead of pagescrolling or so) > > >I think, we can simple use GetScrollInfo and SetScrollInfo. > > > >Ok? > > Think so. I changed TControlScrollBar, added TMemoScrollBar and added two public scrollbar properties to TCustomMemo. You can read Visible, Position, Range, Page and Size and write Position and Page. Only one new interface function was neccessary: GetScrollBarVisible, which was missing in GetScrollInfo. Increment and Smooth are also missing and are left as an exercise. Mattias _________________________________________________________________ To unsubscribe: mail with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives _________________________________________________________________ To unsubscribe: mail with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives

_________________________________________________________________ To unsubscribe: mail with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives

Unknown author

Is this true? If yes, then this is good news. But I need confirmation from you who are more knowledgeable how GPL works and in particular how is it being applied to MySQL.

Yoyong

Internet Mail Message
Received from host:
svcr-216-37-230-2.dsl.svcr.epix.net
[216.37.230.2]

From: (Marco van de Voort) on 04/02/2003 12:18 PM GMT

To:
(Marco van de Voort) Cc: (bcc: Yoyong Hernan-ET/PGI) Subject: Re: [lazarus] How to scroll TMemo
control in code
04/02/2003 08:18 PM
Please respond to

On Wed, 2 Apr 2003 wrote: > Thanks for the help and I am very glad I now understand how the Text gets

sent

> to TgtkObject.SetLabel. > > By the way, as I understand it MySQL server is GPL'ed, but if I use it in > commercial environment I have to pay for the license, am I right? Actually,

I am

> planning > to give Lazarus a try on creating Linux program that runs only in a local > computer and planning to sell it to one of our customers. So, as you can

see, if

Show quoted text 5 lines
> I am going to > use MySQL and my user will pay for the license then it will make my product > expensive. Do we have alternative database system for this that is LGPL ( in > Delphi land we have Database Desktop where we can distribute it without > requiring a license).

... afaik not, you might have to pay if you modify MySQL itself, and sell it for money. Not if you merely package MySQL with your product.

_________________________________________________________________ To unsubscribe: mail with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives

Marc Weustink
to Mattias Gaertner: On Wed, 2 Apr 2003 17:52:02 +0800 Marcs idea of writing a TStrings descendent, that is…

+ From: Mattias Gaertner
+
+ On Wed, 2 Apr 2003 17:52:02 +0800
+ wrote:
+
+ > Mattias,
+ >
+ > Please give me more details and I will try to implement it. +
+ Marcs idea of writing a TStrings descendent, that is Text based instead of
+ lines looks very promising for this. Let's call it TStringText.
+ TMemoStrings should then become a descendent of TStringText.
+ If the TMemo is then still not fast enough, we can add the
+ callback and the two new interface functions.

Who's going to implement it ?

Marc

Marco van de Voort
to Michael Van Canneyt: Try Firebird. FPC supports it. Michael.
Show quoted text 15 lines
On Wed, 2 Apr 2003 wrote: > Thanks for the help and I am very glad I now understand how the Text gets sent > to TgtkObject.SetLabel. > > By the way, as I understand it MySQL server is GPL'ed, but if I use it in > commercial environment I have to pay for the license, am I right? Actually, I am > planning > to give Lazarus a try on creating Linux program that runs only in a local > computer and planning to sell it to one of our customers. So, as you can see, if > I am going to > use MySQL and my user will pay for the license then it will make my product > expensive. Do we have alternative database system for this that is LGPL ( in > Delphi land we have Database Desktop where we can distribute it without > requiring a license).

... afaik not, you might have to pay if you modify MySQL itself, and sell it for money. Not if you merely package MySQL with your product.

Mattias Gaertner
to Unknown author: Can anyone apply this patch for TMemo? The purpose of this patch is to speed up inserting…
Show quoted text 5 lines
Can anyone apply this patch for TMemo? The purpose of this patch is to speed up inserting of text in TMemo control. The changes are basically on TMemoStrings. It baypasses sending the new text to FMemo, directly sending to the interface via a call to CNSendMessage. I also added LM_InsertText case switch in gtkObject.inc under IntSendMessage3.

Thanks. Applied in cvs.
Because it only appends text I renamed it to LM_APPENDTEXT.

What about TStringText? It would accelerate a lot. The append still uses TStringList.

Here is the patch. (See attached file: memostrings_patch.txt)(See attached file: gtkobject_inc_path.txt)

Next time, send cvs diffs with -u option please. Patching is then easier.

Mattias

Mattias Gaertner
to Unknown author: I am using Lazarus to create the diff, how can I do that in the IDE? About the…
I am using Lazarus to create the diff, how can I do that in the IDE?

The IDE has no cvs commands yet.

Just open a terminal and do

cd lazarus
cvs -z3 diff -u | gzip > laz.diff.gz

About the TStringText, I don't have any clue how to implement it. Maybe you can give more details.
type
  TStringText = class(TStrings)
  private
    fStr: string;
    ...
  end;

see TStrings
add some useful procedures like GetTextLength, GetLineBounds, InsertText, DeleteText, ReplaceText, MoveText, SearchText, ... and override any inherited method from TStrings that should access fStr.

Mattias

Show quoted text 66 lines
Regards, Yoyong From: Mattias Gaertner on 04/08/2003 12:10 AM GMT Mattias Gaertner To: Cc: (bcc: Yoyong Hernan-ET/PGI) Subject: Re: [lazarus] How to scroll TMemo control in code 04/08/2003 08:10 AM Please respond to On Tue, 8 Apr 2003 07:05:16 +0800 wrote: > Can anyone apply this patch for TMemo? The purpose of this patch is to > speed up inserting of text in TMemo control. The changes are basically > on TMemoStrings. It baypasses sending the new text to FMemo, directly > sending to the interface via a call to CNSendMessage. I also added > LM_InsertText case switch in gtkObject.inc under IntSendMessage3. Thanks. Applied in cvs. Because it only appends text I renamed it to LM_APPENDTEXT. What about TStringText? It would accelerate a lot. The append still uses TStringList. > Here is the patch. > (See attached file: memostrings_patch.txt)(See attached file: > gtkobject_inc_path.txt) Next time, send cvs diffs with -u option please. Patching is then easier. Mattias _________________________________________________________________ To unsubscribe: mail with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives _________________________________________________________________ To unsubscribe: mail with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
Unknown author

I am using Lazarus to create the diff, how can I do that in the IDE?

About the TStringText, I don't have any clue how to implement it. Maybe you can give more details.

Regards,

Yoyong

From: Mattias Gaertner on 04/08/2003 12:10 AM GMT

Mattias Gaertner To:
Cc: (bcc: Yoyong Hernan-ET/PGI)
Subject: Re: [lazarus] How to scroll TMemo
control in code
04/08/2003 08:10 AM
Please respond to

Show quoted text 5 lines
Can anyone apply this patch for TMemo? The purpose of this patch is to speed up inserting of text in TMemo control. The changes are basically on TMemoStrings. It baypasses sending the new text to FMemo, directly sending to the interface via a call to CNSendMessage. I also added LM_InsertText case switch in gtkObject.inc under IntSendMessage3.

Thanks. Applied in cvs.
Because it only appends text I renamed it to LM_APPENDTEXT.

What about TStringText? It would accelerate a lot. The append still uses TStringList.

Here is the patch. (See attached file: memostrings_patch.txt)(See attached file: gtkobject_inc_path.txt)

Next time, send cvs diffs with -u option please. Patching is then easier.

Mattias

_________________________________________________________________ To unsubscribe: mail with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives

Unknown author

Can anyone apply this patch for TMemo? The purpose of this patch is to speed up inserting of text in TMemo control. The changes are basically on TMemoStrings. It baypasses sending the new text to FMemo, directly sending to the interface via a call to CNSendMessage. I also added LM_InsertText case switch in gtkObject.inc under IntSendMessage3.

Here is the patch.
(See attached file: memostrings_patch.txt)(See attached file: gtkobject_inc_path.txt)
Regards,

Yoyong

Internet Mail Message
Received from host:
svcr-216-37-230-2.dsl.svcr.epix.net
[216.37.230.2]

From: "Marc Weustink" on 04/03/2003 10:55 AM GMT

"Marc Weustink" To:
Cc: (bcc: Yoyong Hernan-ET/PGI)
Subject: RE: [lazarus] How to scroll TMemo
control in code
04/03/2003 06:55 PM
Please respond to

+ From: Mattias Gaertner
+
+ On Wed, 2 Apr 2003 17:52:02 +0800
+ wrote:
+
+ > Mattias,
+ >
+ > Please give me more details and I will try to implement it. +
+ Marcs idea of writing a TStrings descendent, that is Text based instead of
+ lines looks very promising for this. Let's call it TStringText.
+ TMemoStrings should then become a descendent of TStringText.
+ If the TMemo is then still not fast enough, we can add the
+ callback and the two new interface functions.

Who's going to implement it ?

Marc

_________________________________________________________________ To unsubscribe: mail with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives

-------------- next part --------------
A non-text attachment was scrubbed...
Name: bin00025.bin
Type: application/octet-stream
Size: 4611 bytes
Desc: "Text - character set unknown"
Url : http://localhost/pipermail/lazarus/attachments/20030407/367f4ca3/bin00025.bin -------------- next part --------------
A non-text attachment was scrubbed...
Name: bin00024.bin
Type: application/octet-stream
Size: 451 bytes
Desc: "Text - character set unknown"
Url : http://localhost/pipermail/lazarus/attachments/20030407/367f4ca3/bin00024.bin

Marc Weustink
to Mattias Gaertner: On Tue, 8 Apr 2003 08:34:39 +0800 The IDE has no cvs commands yet. Just open a terminal…

+ From: Mattias Gaertner
+
+
+ On Tue, 8 Apr 2003 08:34:39 +0800
+ wrote:
+
+
+ > About the TStringText, I don't have any clue how to implement it. Maybe
+ > you can give more details.
+
+
+ type
+ TStringText = class(TStrings)
+ private
+ fStr: string;
+ ...
+ end;
+
+ see TStrings
+ add some useful procedures like GetTextLength, GetLineBounds, InsertText,
+ DeleteText, ReplaceText, MoveText, SearchText, ... and override any
+ inherited method from TStrings that should access fStr.

Some ideas I had when I thought of this.

It might handy to keep track of indexes to individual strings in a internal FIndex: Tlist and a FValidIndex: Integer. With the help of these indices one can easaly access the individual strings.
Simple store the index (casted to pointer) of the index of the first LineEndChar (CR or LF) or so

But focus mainly on the usage of FStr. Don't try to create the index, but create it when one accesses Get(AIndex).

A Get(AIndex) would then like:

if AIndex >= FValidIndex then CreateIndex(Aindex)
if AIndex >= FValidIndex then Reaise list error // we couldnt create it so the index doesnt exist
if AIndex = 0

  then idx := 0
  else begin
    idx := Integer(FIndex[AIndex - 1])
    while FStr[idx] in [#10, #13] do Inc(idx) // skip the previous line

terminator

  end
  Result := Copy(FStr, idx, Integer(FIndex[AIndex]) - idx);

CreateIndex in its turn scans FStr and Appends indices to FIndex. It starts scanning from Integer(FList[FValidIndex]) until the required index is reached.

In Move Add Delete etc the FValidIndex is reset to the last known valid index (IE if line 15 is deleted, the valid index becomes 14 (if it was larger)).

Again, this is a way to implement the individual lines. They are expensive. But that is not our problem, since we primarely wamt to access the Test as a whole.

Marc

Unknown author

Ha ha .... this is a problem. I am not doing cvs in Linux. I am using WinCVS under windows and I tranfer the files into the Linux partition. Any idea how to do this?

Yoyong

Internet Mail Message
Received from host:
svcr-216-37-230-2.dsl.svcr.epix.net
[216.37.230.2]

From: Mattias Gaertner on 04/08/2003 09:28 AM GMT

Mattias Gaertner To:
Cc: (bcc: Yoyong Hernan-ET/PGI)
Subject: Re: [lazarus] How to scroll TMemo
control in code
04/08/2003 05:28 PM
Please respond to

I am using Lazarus to create the diff, how can I do that in the IDE?

The IDE has no cvs commands yet.

Just open a terminal and do

cd lazarus
cvs -z3 diff -u | gzip > laz.diff.gz

About the TStringText, I don't have any clue how to implement it. Maybe you can give more details.
type
  TStringText = class(TStrings)
  private
    fStr: string;
    ...
  end;

see TStrings
add some useful procedures like GetTextLength, GetLineBounds, InsertText, DeleteText, ReplaceText, MoveText, SearchText, ... and override any inherited method from TStrings that should access fStr.

Mattias

Show quoted text 66 lines
Regards, Yoyong From: Mattias Gaertner on 04/08/2003 12:10 AM GMT Mattias Gaertner To: Cc: (bcc: Yoyong Hernan-ET/PGI) Subject: Re: [lazarus] How to scroll TMemo control in code 04/08/2003 08:10 AM Please respond to On Tue, 8 Apr 2003 07:05:16 +0800 wrote: > Can anyone apply this patch for TMemo? The purpose of this patch is to > speed up inserting of text in TMemo control. The changes are basically > on TMemoStrings. It baypasses sending the new text to FMemo, directly > sending to the interface via a call to CNSendMessage. I also added > LM_InsertText case switch in gtkObject.inc under IntSendMessage3. Thanks. Applied in cvs. Because it only appends text I renamed it to LM_APPENDTEXT. What about TStringText? It would accelerate a lot. The append still uses TStringList. > Here is the patch. > (See attached file: memostrings_patch.txt)(See attached file: > gtkobject_inc_path.txt) Next time, send cvs diffs with -u option please. Patching is then easier. Mattias _________________________________________________________________ To unsubscribe: mail with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives _________________________________________________________________ To unsubscribe: mail with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives

_________________________________________________________________ To unsubscribe: mail with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives

Stefan. Hille
to Unknown author

Hi

Ha ha .... this is a problem. I am not doing cvs in Linux. I am using WinCVS under windows and I tranfer the files into the Linux partition.

Why don't you use gcvs under linux? wincvs/gcvs are almost the same.

bye,

Stefan

--------------------------------------------------------- Stefan Hille email: 48155 Muenster voice: 0251/664695