Avatar billede fundus Nybegynder
05. juli 2007 - 16:26 Der er 9 kommentarer

Save/Load Listview inhold ?

Hej.. :D

Nogle der ved hvordan man kan "Save" & "Loade" items inholdet i en listview... ? :D

Tak.. :D
Avatar billede kroning Nybegynder
05. juli 2007 - 17:34 #1
Avatar billede hrc Mester
06. juli 2007 - 08:17 #2
Jeg har en lidt nemmere:

procedure TfrmMain.ButtonClick(Sender: TObject);
var
  fs : TFileStream;
  Writer : TWriter;
  ListItem : TListItem;
begin
  ListItem := ListView.Items.Add;
  fs := TFileStream.Create('c:\listview.dat',fmCreate);
  Writer := TWriter.Create(fs,1024);
  try
    ListItem.Caption := 'Hello world';
    ListItem.SubItems.Add('Hello');

    Writer.WriteComponent(ListView);
    Writer.FlushBuffer;
  finally
    Writer.Free;
    fs.Free;
    ListItem.Delete;
  end;
end;

Den gemmer dog også listview'ets indstillinger, men    Writer.WriteComponent(ListView); fylder da lidt mindre, ikke?
Avatar billede hrc Mester
06. juli 2007 - 08:18 #3
Tilsvarende findes der naturligvis også en TReader der har en ReadComponent metode.
Avatar billede fundus Nybegynder
06. juli 2007 - 12:56 #4
Mange tak :D

Men hvordan "Loader" man så inholdet.. ? :D
Avatar billede hrc Mester
06. juli 2007 - 16:21 #5
Det var ikke så ligetil når man gik ned og brugte TReader og TWriter - men nøjes man med filestreamens metode så virker det.

procedure TfrmMain.btnLoadClick(Sender: TObject);
var
  fs : TFileStream;
begin
  fs := TFileStream.Create('c:\listview.dat',fmOpenRead);
  try
    fs.ReadComponent(lvTest);
  finally
    fs.Free;
  end;
end;

procedure TfrmMain.btnSaveClick(Sender: TObject);
var
  fs : TFileStream;
begin
  fs := TFileStream.Create('c:\listview.dat',fmCreate);
  try
    fs.WriteComponent(lvTest);
  finally
    fs.Free;
  end;
end;
Avatar billede kroning Nybegynder
06. juli 2007 - 17:15 #6
>hrc
Kan man ikke risikere at Microsoft sender en opdatering ud som indeholder en ændring til ListView og når man så næste gang vil loade sin ListView indhold så virker det ikke. Eller hænger det ikke sådan sammen?
Avatar billede fundus Nybegynder
06. juli 2007 - 17:19 #7
Tror ik.. ?
Avatar billede fundus Nybegynder
06. juli 2007 - 17:34 #8
Mange tak :D
Avatar billede hrc Mester
08. juli 2007 - 09:21 #9
Tror desværre ikke MS afslutter listview-komponenten; der var ellers et par kanter.

Skal du være sikker bruger du kronings eksempel. Her gemmes listview'ets position og dimensioner heller ikke; det kan måske være upraktisk at have dem med. Jeg gik efter at afprøve de funktioner som Delphi selv bruger når der indlæses en dfm-fil.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester