Avatar billede kennethv Nybegynder
27. maj 2010 - 12:23 Der er 1 kommentar og
1 løsning

Visning af listbox indhold når en process er færdig

Hvordan viser jeg listbox indhold når en process er færdig?

Min listbox skal kunne ses, men ikke indholdet før min procedure har kørt færdigt.

Hvordan gøres dette?

Delphi 2009
Avatar billede a_nor Nybegynder
27. maj 2010 - 13:35 #1
Så må nok tømme den ved start (listbox1.clear),
og så fylde indholdet i den (igen) ved slut (listbox1.items := xStringlist), hvor du har strengene i xStringlist

Er det du vil ?
Avatar billede hrc Mester
30. maj 2010 - 08:33 #2
I første omgang så jeg en dialog der poppede op med en Listboks - men det var det vist ikke.

Hvis din listboks ligger på samme form hvori du kører operationen er løsningen vel at køre det over i en stringlist mens det står på:

var
  i: integer;
  List: TStringList;
begin
  List := TStringList.Create;
  try
    for i := 0 to EtEllerAndet - 1 do
    begin
      ... // operation
      List.Add(...); // Tilføj til liste

      if i mod 100 = 0 then
        Application.ProcessMessages; // Opdatér skærmbillede
    end;

    ListBoks.Items.Assign(List); // Kopiér liste til ListBoks
  finally
    List.Free;
  end;
end;

Alternativt kan du nok gøre det sådan her (Begin-/EndUpdate):

var
  i: integer;
begin
  ListBoks.Items.BeginUpdate;
  try
    ListBoks.Items.Clear;
    for i := 0 to EtEllerAndet - 1 do
    begin
      ... // operation
      ListBoks.Items.Add(...); // Tilføj til liste

      if i mod 100 = 0 then
        Application.ProcessMessages; // Opdatér skærmbillede
    end;
  finally
    ListBoks.Items.EndUpdate;
  end;
end;

Kodestumpen her, sørger for at opdatere skærmbilledet ved hvert 100'ede gennemløb, altså hvor resten på "i mod 100" er 0

if i mod 100 = 0 then
  Application.ProcessMessages;
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