dcsimg
Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: Pascal
Expertise: Beginner
Apr 10, 1998

WEBINAR:

On-Demand

Building the Right Environment to Support AI, Machine Learning and Deep Learning


Telling your program about modifications

Question:
An ordinary Stringgrid with 5 columns and 7 rows The user wants to add 1 or 2 more rows. So far I know how to write the code! But where do I put the code so it knows that there are 1 or 2 or even more new rows added? Where do I store the new info in the programm that now there should be e.g. 7 rows instead, when it is reopened(in Create?)

Answer:
The easiest way to implement a component "remembering" what it contains is to use streams to write and read a persistent copy of the component to and from the disk. Here's an example:

//This writes a component to disk
procedure TForm1.FormClose(Sender: TObject; var 
                           Action: TCloseAction);
var
  strm : TFileStream;
begin
  strm := TFileStream.Create('SGrid.DAT', 
          fmCreate);
  strm.WriteComponent(StringGrid1);
  strm.Free;
end;


//This reads a component from disk
procedure TForm1.FormCreate(Sender: TObject);var  strm : TFileStream;
begin
  if FileExists('SGrid.DAT') then begin
    strm := TFileStream.Create('SGrid.DAT',  
            fmOpenRead);
    strm.ReadComponent(StringGrid1);    
    strm.Free;  
  end;
end;
The key procedures above are the Write- and ReadComponent procedures. They enable any component to write itself to a persistent state. Another way of doing this is to use the registry, but that's a far more complicated method, and for simple apps, I usually don't recommend doing it that way.
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date