Sign in Join

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

Mailing lists / lazarus / 2013-03

Ok I give up!

46 messages · 16 people · –

Reply by email Subscribe to this list Your subscription

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

appjaws

Hi,
How do you write the contents of a Memo to a file and read back into a Memo? I have tried all sorts, I am using Lazarus 1.0.6 on linux. How this started was because I wanted to write the content of my Memo to the clipboard and be able to paste it back in again, but I couldn't figure out how to do this in the linux version.
Another thing how can I find out legal qualifiers i.e. Memo.Clear , Memo.Text (both illegal). What is legal?
Thank you for any help
Paul

---This message has been sent using Thunderbird on kubuntu---

Reply by email

Reinier Olislagers
to appjaws
appjaws wrote
Hi, How do you write the contents of a Memo to a file and read back into a Memo?

Memo1.Lines.SaveToFile
Memo1.Lines.LoadFromFile

Another thing how can I find out legal qualifiers i.e. Memo.Clear , Memo.Text (both illegal). What is legal?

Type Memo. then press ctrl-space, then identifier completion will show you legal qualifiers.

You can also go to the declaration of the tmemo (using alt-up) and see the source code to inspect the properties/methods/functions but as you'll see TMemo descends from TCustomMemo, probably inheriting some properties etc, and the inheritance tree goes on up.

Finally, built in help is a nice aid: with your cursor on TMemo, press F1 and you'll see properties and methods that are available.

There are probably more ways...

Reply by email

Michael Van Canneyt
to appjaws: How do you write the contents of a Memo to a file and read back into a Memo? I have tried…
appjaws wrote
Hi, How do you write the contents of a Memo to a file and read back into a Memo? I have tried all sorts, I am using Lazarus 1.0.6 on linux.

Simple:

Memo1.Lines.SaveToFile('/home/yourname/yourfile.txt');

And

Memo1.Lines.LoadFromFile('/home/yourname/yourfile.txt');
Show quoted text 5 lines
How this started was because I wanted to write the content of my Memo to the clipboard and be able to paste it back in again, but I couldn't figure out how to do this in the linux version. Another thing how can I find out legal qualifiers i.e. Memo.Clear , Memo.Text (both illegal). What is legal?

Again, simple:

1. use code completion. Type
Memo.
Normally, if you wait ater typing the dot, the list of available qualifiers will appear by itself after some time.

2. At least the published qualifiers are visible in the Object Inspector. They are accessible in code with exactly the same names.

Michael.

Reply by email

Juha Manninen
to appjaws: How do you write the contents of a Memo to a file and read back into a Memo? I have tried…
appjaws wrote
Another thing how can I find out legal qualifiers i.e. Memo.Clear , Memo.Text (both illegal). What is legal?

See Memo.Lines.
It has Clear and Text and everything that TStrings supports.

How to find it? With a new component I usually look at its properties in Object Inspector, and use the code completion feature of the IDE to see available methods.
Usually their names are intuitive and self documenting. For example Memo.Lines is pretty clear.
If I don't find what I wanted then I must read documentation or use Google.

Regards,
Juha

Reply by email

Hans-Peter Diettrich
to Juha Manninen
Show quoted text 12 lines
On Sat, Mar 2, 2013 at 2:05 PM, appjaws wrote: > Another thing how can I find out legal qualifiers i.e. Memo.Clear , > Memo.Text (both illegal). What is legal? See Memo.Lines. It has Clear and Text and everything that TStrings supports. How to find it? With a new component I usually look at its properties in Object Inspector, and use the code completion feature of the IDE to see available methods. Usually their names are intuitive and self documenting. For example Memo.Lines is pretty clear.

What is *not* clear, to the OP and many other users, that the required functionality is *not* found directly in TMemo, but resides in a property (.Lines) of it. In such cases code completion is of little help :-(

DoDi

Reply by email

Reinier Olislagers
to Hans-Peter Diettrich
Hans-Peter Diettrich wrote 12 lines
Juha Manninen schrieb: > On Sat, Mar 2, 2013 at 2:05 PM, appjaws wrote: >> Another thing how can I find out legal qualifiers i.e. Memo.Clear , >> Memo.Text (both illegal). What is legal? > > See Memo.Lines. > It has Clear and Text and everything that TStrings supports. What is *not* clear, to the OP and many other users, that the required functionality is *not* found directly in TMemo, but resides in a property (.Lines) of it. In such cases code completion is of little help :-(

True, but what other suggestion do you have apart from the ones already posted?

Reply by email

Michael Van Canneyt
to Hans-Peter Diettrich: What is *not* clear, to the OP and many other users, that the required functionality is…
Hans-Peter Diettrich wrote 17 lines
Juha Manninen schrieb: > On Sat, Mar 2, 2013 at 2:05 PM, appjaws wrote: >> Another thing how can I find out legal qualifiers i.e. Memo.Clear , >> Memo.Text (both illegal). What is legal? > > See Memo.Lines. > It has Clear and Text and everything that TStrings supports. > > How to find it? With a new component I usually look at its properties > in Object Inspector, and use the code completion feature of the IDE to > see available methods. > Usually their names are intuitive and self documenting. For example > Memo.Lines is pretty clear. What is *not* clear, to the OP and many other users, that the required functionality is *not* found directly in TMemo, but resides in a property (.Lines) of it. In such cases code completion is of little help :-(

You must learn the LCL or VCL.

No amount of IDE help will ever take away that need.

Yes, you must still study. It is inevitable.

Luckily, there is a well-informed community which can provide answers quickly.

As again demonstrated by the answers today.

Michael.

Reply by email

appjaws
to Reinier Olislagers: Memo1.Lines.SaveToFile Memo1.Lines.LoadFromFile Type Memo. then press ctrl-space, then…
Reinier Olislagers wrote 6 lines
On 2-3-2013 13:05, appjaws wrote: > Hi, > How do you write the contents of a Memo to a file and read back into a > Memo? Memo1.Lines.SaveToFile Memo1.Lines.LoadFromFile
I tried the following line but I just get an error message :-
Call.pas(87,17) Error: Illegal qualifier
MemoCallNote.Lines.SaveToFile ('/home/paul/tmpinfo/MyTempFile.txt');
Show quoted text 5 lines
> Another thing how can I find out legal qualifiers i.e. Memo.Clear , > Memo.Text (both illegal). What is legal? Type Memo. then press ctrl-space, then identifier completion will show you legal qualifiers.

I didn't fine .Lines.SaveToFile?

Show quoted text 8 lines
You can also go to the declaration of the tmemo (using alt-up) and see the source code to inspect the properties/methods/functions but as you'll see TMemo descends from TCustomMemo, probably inheriting some properties etc, and the inheritance tree goes on up. Finally, built in help is a nice aid: with your cursor on TMemo, press F1 and you'll see properties and methods that are available.

I don't think my built in help is working, F1 does nothing. How do I enable built in help?

Thank you to all who responded
Paul

---This message has been sent using Thunderbird on kubuntu---

Reply by email

Reinier Olislagers
to appjaws
appjaws wrote 12 lines
On 02/03/13 12:16, Reinier Olislagers wrote: > On 2-3-2013 13:05, appjaws wrote: >> Hi, >> How do you write the contents of a Memo to a file and read back into a >> Memo? > Memo1.Lines.SaveToFile > Memo1.Lines.LoadFromFile I tried the following line but I just get an error message :- Call.pas(87,17) Error: Illegal qualifier MemoCallNote.Lines.SaveToFile ('/home/paul/tmpinfo/MyTempFile.txt');

So is MemoCallNote a TMemo? What text is exactly at line 87, position 17?

If I drop a memo and a button on a form and assign this to the button's
OnClick event:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.SaveToFile('d:\cop\t\test.txt');
end;
... it works (on my windows machine - you'd obviously have to change the
path on Linux).
Show quoted text 6 lines
>> Another thing how can I find out legal qualifiers i.e. Memo.Clear , >> Memo.Text (both illegal). What is legal? > Type Memo. then press ctrl-space, then identifier completion will show > you legal qualifiers. I didn't fine .Lines.SaveToFile?

But did you find Lines? After Lines, do the same for .SaveToFile

I'm starting to suspect that what you think is a memo may not actually be a memo.

If you want to, you can upload your project as a zip somewhere and I'll have a look...

> Finally, built in help is a nice aid: with your cursor on TMemo, press > F1 and you'll see properties and methods that are available. I don't think my built in help is working, F1 does nothing.

What version of Lazarus are you using - post 1.0 should have built in help.

How do I enable built in help?

http://wiki.lazarus.freepascal.org/Installing_Help_in_the_IDE

Reply by email

Hans-Peter Diettrich
to Reinier Olislagers: True, but what other suggestion do you have apart from the ones already posted?
Show quoted text 7 lines
> What is *not* clear, to the OP and many other users, that the required > functionality is *not* found directly in TMemo, but resides in a > property (.Lines) of it. In such cases code completion is of little help > :-( True, but what other suggestion do you have apart from the ones already posted?

Only the obvious one: add the frequently used TStrings methods also to TMemo. Either explicitly or in some more elegant way.

E.g. the IStrings interface could be added to TMemo, implemented by Lines. That's the usual workaround for the lack of multiple inheritance, which here and in other list based controls would be the intuitive way for having both the list and control methods and properties in the class.

DoDi

Reply by email

Hans-Peter Diettrich
to Juha Manninen: On Sat, Mar 2, 2013 at 2:54 PM, Hans-Peter Diettrich Code completion finds the Lines…
Show quoted text 7 lines
On Sat, Mar 2, 2013 at 2:54 PM, Hans-Peter Diettrich wrote: > What is *not* clear, to the OP and many other users, that the required > functionality is *not* found directly in TMemo, but resides in a property > (.Lines) of it. In such cases code completion is of little help :-( Code completion finds the Lines property without problems.

How is this helpful in finding the property, which finally implements Clear or some other task?

DoDi

Reply by email

Leonardo M. Ramé
to appjaws: I tried the following line but I just get an error message :- Call.pas(87,17) Error:…
appjaws wrote 8 lines
On 02/03/13 12:16, Reinier Olislagers wrote: >On 2-3-2013 13:05, appjaws wrote: >>Hi, >>How do you write the contents of a Memo to a file and read back into a >>Memo? MemoCallNote.Lines.SaveToFile ('/home/paul/tmpinfo/MyTempFile.txt');

Is there a space between SaveToFile and the opening parentheses?. Try removing it.

Reply by email

Sven Barth
to Leonardo M. Ramé
Leonardo M. Ram? wrote 14 lines
On 2013-03-02 13:49:48 +0000, appjaws wrote: > On 02/03/13 12:16, Reinier Olislagers wrote: >> On 2-3-2013 13:05, appjaws wrote: >>> Hi, >>> How do you write the contents of a Memo to a file and read back into a >>> Memo? > > MemoCallNote.Lines.SaveToFile ('/home/paul/tmpinfo/MyTempFile.txt'); > Is there a space between SaveToFile and the opening parentheses?. Try removing it.

This should not make a difference...

Regards,
Sven

Reply by email

Juha Manninen
to Hans-Peter Diettrich: How is this helpful in finding the property, which finally implements Clear or some other…
Hans-Peter Diettrich wrote
> Code completion finds the Lines property without problems. How is this helpful in finding the property, which finally implements Clear or some other task?

First you find Lines, then you find Clear. It is very helpful. :)

Your idea of using interface for method delegation is actually good. It is actually the only elegant way to duplicate those methods on TMemo.
I like the idea of extending LCL components instead of only imitating VCL like a monkey ... which brings us to FireMonkey ... Delphi itself moved to a more modern library design already.

Using interfaces in a library requires proper design and thinking. Interfaces must be created for core functionality and injected to many classes. It is certainly doable. Java did it.
Lots of effort is required to do it properly though.

Regards,
Juha

Reply by email

appjaws
to appjaws: I tried the following line but I just get an error message :- Call.pas(87,17) Error:…

Any ideas on the built in help, I'm using linux with lazarus 1.0.6 and fpc 2.6.0
<snip>

> Finally, built in help is a nice aid: with your cursor on TMemo, press > F1 and you'll see properties and methods that are available.

I don't think my built in help is working, F1 does nothing. How do I enable built in help?

Thank you to all who responded
Paul

---This message has been sent using Thunderbird on kubuntu---

Reply by email

Martin
to appjaws: I tried the following line but I just get an error message :- Call.pas(87,17) Error:…
appjaws wrote 12 lines
On 02/03/13 12:16, Reinier Olislagers wrote: > On 2-3-2013 13:05, appjaws wrote: >> Hi, >> How do you write the contents of a Memo to a file and read back into a >> Memo? > Memo1.Lines.SaveToFile > Memo1.Lines.LoadFromFile I tried the following line but I just get an error message :- Call.pas(87,17) Error: Illegal qualifier MemoCallNote.Lines.SaveToFile ('/home/paul/tmpinfo/MyTempFile.txt');

"MemoCallNote.Lines" is a TMemo on your form ( TForm1 )?

The above line of code is in a function or procedure that BELONGS to TForm1 ?

That is a function or procedure like this

     procedure TForm1.somename;

?

If it is in a function or procedure that does NOT have the name of TForm1 in it, then it will not work.

Reply by email

waldo kitty
to Hans-Peter Diettrich: What is *not* clear, to the OP and many other users, that the required functionality is…
Hans-Peter Diettrich wrote
What is *not* clear, to the OP and many other users, that the required functionality is *not* found directly in TMemo, but resides in a property (.Lines) of it. In such cases code completion is of little help :-(

this is what i was going to write but you said it better than i could have... this has been the biggest problem i've faced in trying to move to this environment as well as learning the new routines and capabilities... it seems like every time i start digging about for a way to do something, i find that another of my self-built library tools i've used for years is already included... it seems that the more i dig, the less i need my own tools...

but back to the above, yes... i wanted to do something similar as the OP, too... you'd think that memo.savetofile and memo.loadfromfile would be a natural thing and it would automatically do what needed to be done...

Reply by email

Reinier Olislagers

Hi Paul,

I'm going to respond to the list as well so they know what's going on.

Paul wrote 5 lines
Thank you Reinier for your offer to look at my code.I am new to Lazarus and am working through some delphi books to try and learn, but this has got me stumped. I tried a new form with Memo1 and used your code and it worked and the file was written to.

<snip form definition Paul included>

Normally it would be easier to send/upload both the .lfm and the .pas file for the form - or better the entire project (easy via project/publish project, then zip up the result - then you only include relevant source files)

Also, saying what Lazarus version you're using normally helps...

That said, .:
procedure TmpCut;
begin
  MemoCallNote.Lines.SaveToFile(MyTempFile);
  MemoCallNote.Clear;
end;

This is a regular procedure, not part of your form (the TFormCall object). Without further changes, this code knows nothing about TFormCall, including its MemoCallNote object. That's where the invalid qualifier problems come from.

The easiest way to fix this is to move TmpCut to the private part of the form:
interface
...
type

{ TFormCall }
TFormCall = class(TForm)
...

  private
    { private declarations }
    procedure TmpCut;

...
this declares a procedure TmpCut as part of the form... and it has access to form properties etc.

However, you'll need to modify the procedure body from procedure TmpCut;
to
procedure TFormCall.TmpCut;
to match the declaration above.

Note: all of this typed by hand, hope I did it ok.

Hope this is clear & it works for you.

Reply by email

Reinier Olislagers
to appjaws: Any ideas on the built in help, I'm using linux with lazarus 1.0.6 and fpc 2.6.0 <snip> I…
appjaws wrote 8 lines
Any ideas on the built in help, I'm using linux with lazarus 1.0.6 and fpc 2.6.0 <snip> >> Finally, built in help is a nice aid: with your cursor on TMemo, press >> F1 and you'll see properties and methods that are available. I don't think my built in help is working, F1 does nothing. How do I enable built in help?

Well, did you read the wiki article I posted the link for? What happened?

Reply by email

appjaws
to Reinier Olislagers
Reinier Olislagers wrote 19 lines
On 2-3-2013 17:41, appjaws wrote: > Any ideas on the built in help, I'm using linux with lazarus 1.0.6 and > fpc 2.6.0 > <snip> >>> Finally, built in help is a nice aid: with your cursor on TMemo, press >>> F1 and you'll see properties and methods that are available. > > I don't think my built in help is working, F1 does nothing. > How do I enable built in help? Well, did you read the wiki article I posted the link for? What happened? -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Yes thank you I will have a go tomorrow.
Paul

---This message has been sent using Thunderbird on kubuntu---

Reply by email

Mark Morgan Lloyd
to appjaws
appjaws wrote 15 lines
On 02/03/13 17:21, Reinier Olislagers wrote: > On 2-3-2013 17:41, appjaws wrote: >> Any ideas on the built in help, I'm using linux with lazarus 1.0.6 and >> fpc 2.6.0 >> <snip> >>>> Finally, built in help is a nice aid: with your cursor on TMemo, press >>>> F1 and you'll see properties and methods that are available. >> >> I don't think my built in help is working, F1 does nothing. >> How do I enable built in help? > > Well, did you read the wiki article I posted the link for? What happened? Yes thank you I will have a go tomorrow. Paul

Note that if you download the helpfiles manually, you might have to be careful of exactly where you put them: it's easy to have a situation you've unpacked them in a slightly different directory from where lhelp expects.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Flávio Etrusco
to Hans-Peter Diettrich: Only the obvious one: add the frequently used TStrings methods also to TMemo. Either…
Hans-Peter Diettrich wrote 23 lines
Reinier Olislagers schrieb: >> What is *not* clear, to the OP and many other users, that the required >> functionality is *not* found directly in TMemo, but resides in a >> property (.Lines) of it. In such cases code completion is of little help >> :-( > > > True, but what other suggestion do you have apart from the ones already > posted? Only the obvious one: add the frequently used TStrings methods also to TMemo. Either explicitly or in some more elegant way. E.g. the IStrings interface could be added to TMemo, implemented by Lines. That's the usual workaround for the lack of multiple inheritance, which here and in other list based controls would be the intuitive way for having both the list and control methods and properties in the class. DoDi

I might be wrong, but I guess it won't be very long before name clashes occur and this comfort and discoverability becomes a mess of confusing and ugly identifiers.
IMO the correct fix, if it's indeed missing, would be documentation for TMemo wrt common usage.

-Fl?vio

Reply by email

waldo kitty
to Mark Morgan Lloyd: Note that if you download the helpfiles manually, you might have to be careful of exactly…
Mark Morgan Lloyd wrote
Note that if you download the helpfiles manually, you might have to be careful of exactly where you put them: it's easy to have a situation you've unpacked them in a slightly different directory from where lhelp expects.

agreed... and if following the given instructions, things do work but files are not where they should apparently be...

by that i mean that chm files are placed in html directory instead of chm directory or whatever the instructions call for... it was something i noticed a while back but never followed up on...

Reply by email

Kostas Michalopoulos
to waldo kitty

Do SaveToFile/LoadFromFile handle Unicode/UTF8 properly? The TStrings stuff is in LCL which AFAIK doesn't use UTF8.

waldo kitty wrote 24 lines
On 3/2/2013 13:20, Mark Morgan Lloyd wrote: > Note that if you download the helpfiles manually, you might have to be > careful > of exactly where you put them: it's easy to have a situation you've > unpacked > them in a slightly different directory from where lhelp expects. > agreed... and if following the given instructions, things do work but files are not where they should apparently be... by that i mean that chm files are placed in html directory instead of chm directory or whatever the instructions call for... it was something i noticed a while back but never followed up on... -- ______________________________**_________________ Lazarus mailing list .**freepascal.org http://lists.lazarus.**freepascal.org/mailman/**listinfo/lazarus<http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20130304/98373a3d/attachment.html>

Reply by email

Mattias Gaertner
to Kostas Michalopoulos
Do SaveToFile/LoadFromFile handle Unicode/UTF8 properly? The TStrings stuff is in LCL which AFAIK doesn't use UTF8.

The content is loaded correctly, but the Filename passed to SaveToFile/LoadFromFile must be system encoding.
Maybe you can use TStringListUTF8 instead.

Mattias

Reply by email

appjaws
to Reinier Olislagers: Well, did you read the wiki article I posted the link for? What happened?
Reinier Olislagers wrote 11 lines
On 2-3-2013 17:41, appjaws wrote: > Any ideas on the built in help, I'm using linux with lazarus 1.0.6 and > fpc 2.6.0 > <snip> >>> Finally, built in help is a nice aid: with your cursor on TMemo, press >>> F1 and you'll see properties and methods that are available. > > I don't think my built in help is working, F1 does nothing. > How do I enable built in help? Well, did you read the wiki article I posted the link for? What happened?

Help is installed in Install/Uninstall Packaged ChmHelpPkg 0.1 is on the installed side. However, F1 is not working, when I look at Tools, Options, Key Mapping, Help menu commands, Context sensitive help [F1] is shown but F1 does not do anything so I tried to change the key using the edit button but the new key was not displayed alongside the entry (Where [F1] was) and the new key did not work.
The next entry 'Edit context sensitive help [Ctrl+Shift+F1] does work. So I am baffled as to what to try next.

I do now have my file procedures working and even have the clipboard working.....Thank you to all who helped.

Paul

---This message has been sent using Thunderbird on kubuntu---

Reply by email

Reinier Olislagers
to appjaws
appjaws wrote 19 lines
On 02/03/13 17:21, Reinier Olislagers wrote: > On 2-3-2013 17:41, appjaws wrote: >> Any ideas on the built in help, I'm using linux with lazarus 1.0.6 and >> fpc 2.6.0 >> <snip> >>>> Finally, built in help is a nice aid: with your cursor on TMemo, press >>>> F1 and you'll see properties and methods that are available. >> >> I don't think my built in help is working, F1 does nothing. >> How do I enable built in help? > > Well, did you read the wiki article I posted the link for? What happened? Help is installed in Install/Uninstall Packaged ChmHelpPkg 0.1 is on the installed side. However, F1 is not working, when I look at Tools, Options, Key Mapping, Help menu commands, Context sensitive help [F1] is shown but F1 does not do anything so I tried to change the key using the edit button but the new key was not displayed alongside the entry (Where [F1] was) and the new key did not work.

Perhaps it's not the key mapping that's wrong?....

The next entry 'Edit context sensitive help [Ctrl+Shift+F1] does work. So I am baffled as to what to try next.

... Try reading the next section & checking the settings & chm files are okay instead of just the part about the key mappings.

Reply by email

appjaws
to Reinier Olislagers
Reinier Olislagers wrote 28 lines
On 4-3-2013 12:21, appjaws wrote: > On 02/03/13 17:21, Reinier Olislagers wrote: >> On 2-3-2013 17:41, appjaws wrote: >>> Any ideas on the built in help, I'm using linux with lazarus 1.0.6 and >>> fpc 2.6.0 >>> <snip> >>>>> Finally, built in help is a nice aid: with your cursor on TMemo, press >>>>> F1 and you'll see properties and methods that are available. >>> >>> I don't think my built in help is working, F1 does nothing. >>> How do I enable built in help? >> >> Well, did you read the wiki article I posted the link for? What happened? > > Help is installed in Install/Uninstall Packaged ChmHelpPkg 0.1 is on the > installed side. However, F1 is not working, when I look at Tools, > Options, Key Mapping, Help menu commands, Context sensitive help [F1] is > shown but F1 does not do anything so I tried to change the key using the > edit button but the new key was not displayed alongside the entry (Where > [F1] was) and the new key did not work. Perhaps it's not the key mapping that's wrong?.... > The next entry 'Edit context sensitive help [Ctrl+Shift+F1] does work. > So I am baffled as to what to try next. ... Try reading the next section & checking the settings & chm files are okay instead of just the part about the key mappings.

Thank you for the reply,
I have followed the 'installing_Help_in_the_IDE document and F1 still does not work.
/usr/share/lazarus/1.06 is where the components docs etc are installed. /usr/lib64/fpc/2.6.0 is where pascal is installed/ HelpEXE :- /usr/share/lazarus/1.0.6/components/chmhelp/lhelp/lhelp HelpFilesPath :- /usr/share/lazarus/1.0.6/docs/chm/ fpc docs :- /usr/share/doc/fp-docs/$(FPCVER)

As far as I can tell everything seems to be in the correct place and referenced correctly.

Any other ideas?
regards
Paul

---This message has been sent using Thunderbird on kubuntu---

Reply by email

Reinier Olislagers
to appjaws
appjaws wrote 36 lines
On 04/03/13 11:28, Reinier Olislagers wrote: > On 4-3-2013 12:21, appjaws wrote: >> On 02/03/13 17:21, Reinier Olislagers wrote: >>> On 2-3-2013 17:41, appjaws wrote: >>>> Any ideas on the built in help, I'm using linux with lazarus 1.0.6 and >>>> fpc 2.6.0 >>>> <snip> >>>>>> Finally, built in help is a nice aid: with your cursor on TMemo, >>>>>> press >>>>>> F1 and you'll see properties and methods that are available. >>>> >>>> I don't think my built in help is working, F1 does nothing. >>>> How do I enable built in help? >>> >>> Well, did you read the wiki article I posted the link for? What >>> happened? >> >> Help is installed in Install/Uninstall Packaged ChmHelpPkg 0.1 is on the >> installed side. However, F1 is not working, when I look at Tools, >> Options, Key Mapping, Help menu commands, Context sensitive help [F1] is >> shown but F1 does not do anything so I tried to change the key using the >> edit button but the new key was not displayed alongside the entry (Where >> [F1] was) and the new key did not work. > Perhaps it's not the key mapping that's wrong?.... > >> The next entry 'Edit context sensitive help [Ctrl+Shift+F1] does work. >> So I am baffled as to what to try next. > > ... Try reading the next section & checking the settings & chm files are > okay instead of just the part about the key mappings. > Thank you for the reply, I have followed the 'installing_Help_in_the_IDE document and F1 still does not work. /usr/share/lazarus/1.06 is where the components docs etc are installed.

I hope you mean this is the directory where Lazarus is installed (where the lazarus and startlazarus executables are)

/usr/lib64/fpc/2.6.0 is where pascal is installed/

Thanks, but fairly irrelevant unless you have chm/html help files and want to fiddle with things...

HelpEXE :- /usr/share/lazarus/1.0.6/components/chmhelp/lhelp/lhelp

That looks good.

HelpFilesPath :- /usr/share/lazarus/1.0.6/docs/chm/

That looks good. Do you have
fcl.chm lazutils.chm lcl.chm prog.chm ref.chm rtl.chm toc.chm user.chm
in there?
If not, download the chm documentation from sourceforge and unpack the chms there (see the wiki article)

fpc docs :- /usr/share/doc/fp-docs/$(FPCVER)

Again, irrelevant

As far as I can tell everything seems to be in the correct place and referenced correctly.

I don't know. You haven't told us your tools/options/help/help options settings. Following the instructions in the wiki (with everything in the ....chm directory mentioned above), CHM Help Viewer's HelpFilesPath should be empty.
Likewise the various Help Databases settings should be unchanged from a default install (mostly empty).

Hope with this you can get it going!

Reply by email

appjaws
to Reinier Olislagers
Reinier Olislagers wrote 7 lines
On 4-3-2013 16:54, appjaws wrote: > On 04/03/13 11:28, Reinier Olislagers wrote: >> On 4-3-2013 12:21, appjaws wrote: >>> On 02/03/13 17:21, Reinier Olislagers wrote: >>>> On 2-3-2013 17:41, appjaws wrote: >>>>> Any ideas on the built in help, I'm using linux with lazarus 1.0.6 and >>>>> fpc 2.6.0

<snip>

> /usr/share/lazarus/1.06 is where the components docs etc are installed. I hope you mean this is the directory where Lazarus is installed (where the lazarus and startlazarus executables are)

Yes that is correct.

<snip>

Show quoted text 7 lines
> HelpEXE :- /usr/share/lazarus/1.0.6/components/chmhelp/lhelp/lhelp That looks good. > HelpFilesPath :- /usr/share/lazarus/1.0.6/docs/chm/ That looks good. Do you have fcl.chm lazutils.chm lcl.chm prog.chm ref.chm rtl.chm toc.chm user.chm in there?

Yes all correct.

<snip>

Show quoted text 10 lines
> As far as I can tell everything seems to be in the correct place and > referenced correctly. I don't know. You haven't told us your tools/options/help/help options settings. Following the instructions in the wiki (with everything in the ....chm directory mentioned above), CHM Help Viewer's HelpFilesPath should be empty. Likewise the various Help Databases settings should be unchanged from a default install (mostly empty). Hope with this you can get it going!
Viewers section
HTML Browser
	AutoRegister := False
	BrowserParms := %s
	BrowserPath := ''
	Name := ''
	Tag := 0
CHM Help Viewer
	HelpExe := /usr/share/lazarus/1.0.6/components/chmhelp/lhelp/lhelp
	HelpExeParm := ''
	HelpFilePath := ''
	HelpLabel := lazhelp
	Name := ''
	Tag := 0
Databases section
StartPage
	AutoRegister := False
	BaseURL := ''
	KeywordPrefix := ''
	Name := ''
	Tag := 0
RTLUnits
	AutoRegister := False
	BaseURL := ''
	KeywordPrefix := ''
	Name := ''
	Tag := 0
FCLUnits
	AutoRegister := False
	BaseURL := ''
	KeywordPrefix := ''
	Name := ''
	Tag := 0
FreePascal Compiler messages
	AdditionsFile := ''
	AutoRegister := False
	BaseURL := ''
	FPCTranslationFile := ''
	KeywordPrefix := ''
	Name := ''
	Tag := 0
FPC Language Reference
	Name := ''
	Tag := 0
LCL - Lazarus Component Librart
	AutoRegister := False
	BaseURL := ''
	KeywordPrefix := ''
	Name := ''
	Tag := 0
FreePascal Compiler directives
	Name := ''
	Tag := 0
External Help
	Name := ''
	Tag := 0

Well it still does not work, I thought it might be a permissions problem because /home/paul/,config/lhelp had permissions set to root, but even running lazarus as root didn't solve the problem, F1 will not work.

This is /home/paul/,config/lhelp/ihelp-.conf

<?xml version="1.0"?>
<CONFIG>
<Position>
<Left Value="261"/>
<Top Value="244"/>
<Width Value="758"/>
<Height Value="535"/>
</Position>
<LastFileOpen Value="/usr/share/lazarus/1.0.6/docs/chm/user.chm"/> <Recent>
<ItemCount Value="5"/>
<Item0 Value="file:///usr/share/lazarus/1.0.6/docs/chm/user.chm"/> <Item1 Value="file:///usr/share/lazarus/1.0.6/docs/chm/toc.chm"/> <Item2 Value="file:///usr/share/lazarus/1.0.6/docs/chm/rtl.chm"/> <Item3 Value="file:///usr/share/lazarus/1.0.6/docs/chm/ref.chm"/> <Item4 Value="file:///usr/share/lazarus/1.0.6/docs/chm/lcl.chm"/> </Recent>
<TChmContentProvider>
<TabControlWidth Value="227"/>
</TChmContentProvider>
</CONFIG>

Is F1 the only way to access the integrated help?

Why is this so difficult?
Why isn't it automatically installed when Lazarus is installed?

Any other ideas?
regards
frustrated Paul

---This message has been sent using Thunderbird on kubuntu---

Reply by email

Jürgen Hestermann
to appjaws
appjaws wrote 9 lines
Is F1 the only way to access the integrated help? Why is this so difficult? Why isn't it automatically installed when Lazarus is installed? Any other ideas? regards frustrated Paul

Yes, I feel the same.
I used TurboPascal and Delphi over decades and there was no hassle with installing/copying/configuring the help. This should be part of the installation routine (even snapshots).

But it seems that those who have the knowledge to change this are not willing to do so and those who are willing don't have the knowledge.

Reply by email

Reinier Olislagers
to appjaws: <snip> Yes that is correct. <snip> Yes all correct. <snip> Viewers section HTML Browser…
appjaws wrote 9 lines
On 04/03/13 18:20, Reinier Olislagers wrote: > On 4-3-2013 16:54, appjaws wrote: >> On 04/03/13 11:28, Reinier Olislagers wrote: >>> On 4-3-2013 12:21, appjaws wrote: >>>> On 02/03/13 17:21, Reinier Olislagers wrote: >>>>> On 2-3-2013 17:41, appjaws wrote: >>>>>> Any ideas on the built in help, I'm using linux with lazarus >>>>>> 1.0.6 and >>>>>> fpc 2.6.0

<snip stuff that seems OK>

>> HelpEXE :- /usr/share/lazarus/1.0.6/components/chmhelp/lhelp/lhelp > That looks good.

Well, is there an lhelp executable there with correct permissions?.... (see below)

> >> HelpFilesPath :- /usr/share/lazarus/1.0.6/docs/chm/

<snip stuff that seems OK>

> Hope with this you can get it going! Viewers section

<snip stuff that seems OK>

CHM Help Viewer HelpExe := /usr/share/lazarus/1.0.6/components/chmhelp/lhelp/lhelp

See above; make sure there's an lhelp executable there If not, run Lazarus as root, open the lhelp project there, compile, check.

An additional troubleshooting step: you can run lhelp stand alone as your regular user and try to open the chms in the path mentioned above.

<snip stuff that seems OK>>

Well it still does not work, I thought it might be a permissions problem because /home/paul/,config/lhelp had permissions set to root, but even running lazarus as root didn't solve the problem, F1 will not work.

Mmmm, no idea what /home/paul/,config/lhelp is (perhaps you meant .config but still....
Could well be the settings for lhelp.
It's in your directory, I'd fix the permissions anyway with chown --recursive paul:paul /home/paul/.config/lhelp/* (or whatever the actual command is, this is more a guess)

Show quoted text 26 lines
This is /home/paul/,config/lhelp/ihelp-.conf <?xml version="1.0"?> <CONFIG> <Position> <Left Value="261"/> <Top Value="244"/> <Width Value="758"/> <Height Value="535"/> </Position> <LastFileOpen Value="/usr/share/lazarus/1.0.6/docs/chm/user.chm"/> <Recent> <ItemCount Value="5"/> <Item0 Value="file:///usr/share/lazarus/1.0.6/docs/chm/user.chm"/> <Item1 Value="file:///usr/share/lazarus/1.0.6/docs/chm/toc.chm"/> <Item2 Value="file:///usr/share/lazarus/1.0.6/docs/chm/rtl.chm"/> <Item3 Value="file:///usr/share/lazarus/1.0.6/docs/chm/ref.chm"/> <Item4 Value="file:///usr/share/lazarus/1.0.6/docs/chm/lcl.chm"/> </Recent> <TChmContentProvider> <TabControlWidth Value="227"/> </TChmContentProvider> </CONFIG> Is F1 the only way to access the integrated help?

Yep. Do note that you need to put the cursor on a keyword (e.g. begin, or for or while...).

Why is this so difficult?

Don't know, but the fact that config files in your home directory are owned(?) by root is an indicator that you did something you're not supposed to do.

Why isn't it automatically installed when Lazarus is installed?

Answered that question earlier...

Any other ideas?

The easy but drastic option: remove Lazarus, including config files (aptitude purge lazarus fpc... or something on Debian) Manually ensure all trace is removed in /home/paul/.config (or ,config): lazarus, fpc, lhelp
Reinstall.

regards frustrated Paul

I understand. It *shouldn't* be that hard.

Reply by email

Reinier Olislagers
to Jürgen Hestermann: Yes, I feel the same. I used TurboPascal and Delphi over decades and there was no hassle…
J?rgen Hestermann wrote 15 lines
Am 2013-03-05 13:29, schrieb appjaws: > Is F1 the only way to access the integrated help? > > Why is this so difficult? Why isn't it automatically installed > when Lazarus is installed? > > Any other ideas? regards frustrated Paul > Yes, I feel the same. I used TurboPascal and Delphi over decades and there was no hassle with installing/copying/configuring the help. This should be part of the installation routine (even snapshots). But it seems that those who have the knowledge to change this are not willing to do so and those who are willing don't have the knowledge.

Please don't post this kind of stuff. Instead help make Lazarus better by raising bug reports with concrete issues and preferably patches.

On Windows, the installer just *works* and gives you help out of the box, since about Laz 1.0.
No idea about Linux as I don't use the package manager versions.

With Mattias' help I just submitted a patch today to add an (offline) help menu item to show the built-in(!) chm help, and helped streamline the wiki article on help.

If you don't like the installer/package manager way, try running fpcup which Ludo Brands and I wrote to get and install FPC 2.6.x/trunk and Lazarus 1.x...trunk as well as documentation.

You might see why I personnally not very impressed with your message; from a Lazarus project perspective I think meaningful bug reports (including Paul's very comprehensive posts about what's going on with his system) and patches count for a lot more than complaining.

Thanks,
Reinier

Reply by email

appjaws
to Reinier Olislagers: <snip stuff that seems OK> Well, is there an lhelp executable there with correct…

On 05/03/13 12:50, Reinier Olislagers wrote:
<snip>

> > Is F1 the only way to access the integrated help? Yep. Do note that you need to put the cursor on a keyword (e.g. begin, or for or while...).

Maaaaaaaybe I have the wrong expectations with regard to the Help system. If I press F1 with begin clicked I do get the help viewer - I've never done this before.
I was working on the assumption that if the cursor was over a component on the tool bar and them F1 was pressed I would see help about that component. This is why I have been saying that F1 does not work for me. So question How do I obtain help on a component?

Sorry for all the confusion, I told you that it was probably me being silly and not understanding the basics.
regards
Paul

---This message has been sent using Thunderbird on kubuntu---

Reply by email

Reinier Olislagers
to appjaws
appjaws wrote 13 lines
On 05/03/13 12:50, Reinier Olislagers wrote: <snip> >> >> Is F1 the only way to access the integrated help? > Yep. Do note that you need to put the cursor on a keyword (e.g. begin, > or for or while...). Maaaaaaaybe I have the wrong expectations with regard to the Help system. If I press F1 with begin clicked I do get the help viewer - I've never done this before. I was working on the assumption that if the cursor was over a component on the tool bar and them F1 was pressed I would see help about that component.

I agree, see this bug that I posted:
http://bugs.freepascal.org/view.php?id=23410
No context-sensitive help for control on form

So question How do I obtain help on a component?

Place your cursor on a component name (e.g. TIBConnection for a Firebird conection) *in the source code editor* after e.g. dropping the component on a form.

Things like TIBConnection, grids and probably a lot more are included in the help file - just not accessible via F1 if you have a component selected on the form.

Apart from that, there's a lot of information on the wiki, e.g. the LazActivex component is nicely documented there.

Sorry for all the confusion, I told you that it was probably me being silly and not understanding the basics.

No problem - glad we worked it out in the end (though I'm still a bit curious about these lhelped permissions for root)

Reply by email

Jürgen Hestermann
to Reinier Olislagers: Please don't post this kind of stuff. Instead help make Lazarus better by raising bug…
Reinier Olislagers wrote
Please don't post this kind of stuff. Instead help make Lazarus better by raising bug reports with concrete issues and preferably patches.

Sorry if I am as frustrated too. But mostly when I pointed to whatever issue either noone was interested or even worse, someone trys to convince me that the bug is not a bug. So even those who try to help are repelled.

On Windows, the installer just *works* and gives you help out of the box, since about Laz 1.0. No idea about Linux as I don't use the package manager versions.

I just recently installed a snapshot version of Lazarus on Windows (I cannot copy the version number from the "about" window because I cannot select text. Why?). This version uninstalled the previous version before installing the new one. So I would expect it should work "out of the box". Still, if I put the cursor on "if" or any other keyword and type F1 I get (again I could not copy/paste but had to cumbersome retype the window text):

A help database was found for th....
Help keyword "FPCKeyword_if" not found.

Reply by email

Reinier Olislagers
to Jürgen Hestermann
J?rgen Hestermann wrote 5 lines
Am 2013-03-05 13:57, schrieb Reinier Olislagers: I just recently installed a snapshot version of Lazarus on Windows (I cannot copy the version number from the "about" window because I cannot select text. Why?).

Crystal ball in the shop. Please raise a bug.

This version uninstalled the previous version before installing the new one. So I would expect it should work "out of the box".

I would expect it to not overwrite the user's config (the ones in tools/options etc) by default (as is usual with updates for many programs and seems to be the polite thing to do).
Your config contains help file paths etc....

So perhaps deleting your existing config while upgrading may be handy.

Reply by email

stdreamer
to Jürgen Hestermann: Sorry if I am as frustrated too. But mostly when I pointed to whatever issue either noone…
J?rgen Hestermann wrote 18 lines
Am 2013-03-05 13:57, schrieb Reinier Olislagers: > Please don't post this kind of stuff. Instead help make Lazarus better > by raising bug reports with concrete issues and preferably patches. Sorry if I am as frustrated too. But mostly when I pointed to whatever issue either noone was interested or even worse, someone trys to convince me that the bug is not a bug. So even those who try to help are repelled. > On Windows, the installer just *works* and gives you help out of the > box, since about Laz 1.0. > No idea about Linux as I don't use the package manager versions. I just recently installed a snapshot version of Lazarus on Windows (I cannot copy the version number from the "about" window because I cannot select text. Why?).

Just right click any where on the version tab and use the popup menu to copy.

(again I could not copy/paste but had to cumbersome retype the window text):

Yeah I miss that too.

Reply by email

Martin
to stdreamer
stdreamer wrote 12 lines
> I just recently installed a snapshot version of Lazarus on Windows (I > cannot copy > the version number from the "about" window because I cannot select text. > Why?). Just right click any where on the version tab and use the popup menu to copy. > (again I could not copy/paste but had to cumbersome retype the window > text): Yeah I miss that too.

Did you try and right click that window? (without selecting the text?)

It has a context menu "Copy version info to clipboard"

Reply by email

stdreamer
to Martin
Martin wrote 17 lines
On 05/03/2013 18:53, stdreamer wrote: >> I just recently installed a snapshot version of Lazarus on Windows (I >> cannot copy >> the version number from the "about" window because I cannot select text. >> Why?). > > Just right click any where on the version tab and use the popup menu > to copy. > >> (again I could not copy/paste but had to cumbersome retype the window >> text): > > Yeah I miss that too. Did you try and right click that window? (without selecting the text?) It has a context menu "Copy version info to clipboard"

I suppose you are addressing mr Hestermann with that reply if not I already typed that in my message, what I miss is the ability to press ctrl+C on an exception/error dialog and copy the error message to the clipboard.

Reply by email

Jürgen Hestermann
to waldo kitty
waldo kitty wrote 5 lines
On 3/5/2013 13:01, J?rgen Hestermann wrote: > I just recently installed a snapshot version of Lazarus on Windows (I cannot copy > the version number from the "about" window because I cannot select text. Why?). right click on the help window where the graphic is ;)

How should someone know just by looking at the window? Why not simply add a button for this?
And/or Ctrl+C should also copy it to the clipboard. That's the standard (at least on windows).

Reply by email

Reinier Olislagers
to Jürgen Hestermann
J?rgen Hestermann wrote 14 lines
Am 2013-03-07 19:29, schrieb waldo kitty: > On 3/5/2013 13:01, J?rgen Hestermann wrote: >> I just recently installed a snapshot version of Lazarus on Windows (I >> cannot copy >> the version number from the "about" window because I cannot select >> text. Why?). > > right click on the help window where the graphic is ;) How should someone know just by looking at the window? Why not simply add a button for this? And/or Ctrl+C should also copy it to the clipboard. That's the standard (at least on windows).

As I said, if you care so much, raise a bug.
Preferably with a patch.

Reply by email

Mark Morgan Lloyd
to Reinier Olislagers
Reinier Olislagers wrote
On 8-3-2013 17:17, J?rgen Hestermann wrote:> > Am 2013-03-07 19:29, schrieb waldo kitty:>> On 3/5/2013 13:01, J?rgen Hestermann wrote:>>> I just recently installed a snapshot version of Lazarus on Windows (I>>> cannot copy>>> the version number from the "about" window because I cannot select>>> text. Why?).>>>> right click on the help window where the graphic is ;)> > How should someone know just by looking at the window?> Why not simply add a button for this?> And/or Ctrl+C should also copy it to the clipboard.> That's the standard (at least on windows). As I said, if you care so much, raise a bug.Preferably with a patch.

Of course there are some times when quoting is less than useful :-))))

Apropos clipboard operations on splash screens, dialogues etc., I think there's a risk that this could end up being non-portable on account of the behaviour of the underlying widget set etc.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email