• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 712
  • Last Modified:

Scrollbar of memo : scroll down on opening

Can't  make memo be  on text end instead of start of text.
procedure TForm2.DOreading(Ime:string);
    var
         DATAfile: textfile;
         READline: string;
  begin
     AssignFile(  DATAfile,Ime);
     Reset(  DATAfile);
 
     While not EOF (  DATAfile) do begin
     ReadLn(  DATAfile,READline);
     F.Memo1.Lines.Add (READline);
     end;
              // in this way doesent work
     F.  memo1.SelStart := length(memo1.Text);
     F.memo1.Perform(EM_ScrollCaret,0,0);
     
 
CloseFile( DATAfile);
 
  end;

Open in new window

0
pr2501
Asked:
pr2501
  • 8
  • 6
1 Solution
 
ziolkoCommented:
try this:
  Memo1.Lines.LoadFromFile('C:\readme.txt');
  Memo1.SelStart := Length(Memo1.Lines.Text) - 1;
  Memo1.SelLength := 1;


ziolko.
0
 
pr2501Author Commented:

procedure TForm2.DOreading(Ime:string);
    var
         DATAfile: textfile;
         READline: string;
  begin
     AssignFile(  DATAfile,Ime);
     Reset(  DATAfile);
 
     While not EOF (  DATAfile) do begin
     ReadLn(  DATAfile,READline);
     F.Memo1.Lines.Add (READline);
     end;
              // in this way doesent work
   Memo1.SelStart := Length(Memo1.Lines.Text) - 1;
  Memo1.SelLength := 1;
 
 
CloseFile( DATAfile);
 
  end;

Open in new window

0
 
pr2501Author Commented:


Can't make to work it in code before.

Problem if the text of memo has more lines that  memo is large:i can
see first par of text- not last.
0
Introducing Cloud Class® training courses

Tech changes fast. You can learn faster. That’s why we’re bringing professional training courses to Experts Exchange. With a subscription, you can access all the Cloud Class® courses to expand your education, prep for certifications, and get top-notch instructions.

 
ziolkoCommented:
do you have scrollbars on your memo? if so then where are they positioned after setting Selstart and SelLength?

ziolko.
0
 
pr2501Author Commented:
 on the top
0
 
ziolkoCommented:
you can use Memo1.Lines.LoadFromFile() instead of AssignFile()

and this works for me just fine:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.LoadFromFile('c:\text.txt');
  Memo1.SelStart := Length(Memo1.Lines.Text) - 1;
  Memo1.SelLength := 1;
  Memo1.SetFocus;
end;

ziolko.
0
 
pr2501Author Commented:
In may code (code snippet) can't  do scrollbar go down.

I have added scrollbar from  memo Properties: scrollbas ssvertical.  













procedure TForm2.DOread(Ime:string);
    begin
  Memo1.Lines.LoadFromFile('c:\text.txt');
  Memo1.SelStart := Length(Memo1.Lines.Text) - 1;
  Memo1.SelLength := 1;
  Memo1.SetFocus;
end;

Open in new window

0
 
pr2501Author Commented:


 sorry i was to fast
procedure TForm2.DOread(Ime:string);

the IME wasn't  the c:\text.txt'

I have to work on it.

Thank you
0
 
pr2501Author Commented:

For itch speedButon i have to read deferent file.
Can you see  the reason way it hasn't work from next code:


 
procedure TForm2.FormShow(Sender: TObject);
   begin
      DOread   ('C:\PC1\Montaza\'+TSpeedButton(Sp).Caption+'\'+TSpeedButton(Sp).Caption+'.txt');
   end;
end.
 
procedure TForm2.DOread(Name:string);
    begin
  Memo1.Lines.LoadFromFile(Name);
  Memo1.SelStart := Length(Memo1.Lines.Text) - 1;
  Memo1.SelLength := 1;
  Memo1.SetFocus;
end

Open in new window

0
 
ziolkoCommented:
first of all validate that this
'C:\PC1\Montaza\'+TSpeedButton(Sp).Caption+'\'+TSpeedButton(Sp).Caption+'.txt'
points to existing file.


ziolko.
0
 
ziolkoCommented:
and use OnActivate instead of OnShow, OnActivate guarantees you that all components are properly created and ready to take user input

ziolko.
0
 
pr2501Author Commented:

It exist because i can read text into memo.

But the vertical scrollbar is  still positioned  the top.
0
 
ziolkoCommented:
call DoRead routine in OnActivate event handler not OnShow

ziolko.
0
 
pr2501Author Commented:
 thank you
it's Ok
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

  • 8
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now