Avatar billede clansite.dk Nybegynder
30. november 2004 - 16:06 Der er 7 kommentarer

IF-Then-Else i Delphi

Hejsa derude.

Jeg har en INI-Fil der ser sådan ud:

[Film]
Film1=Done
Film2=Done
Film3=Bestilles
Osv...

Jeg har derfor lavet 2 Listboxe's og så vil jeg have dem hvor valuen er Done i den ene og Bestilles i den anden. Men kan ikke få det til at fungere..

If ini.ReadSectionValues('Film', ListBox1.Items) = 'Done then
ini.ReadSection('Film', ListBox1.Items)
end
else
ini.ReadSection('Film', ListBox2.Items)
end;
Avatar billede pjotre Novice
30. november 2004 - 16:16 #1
Der er et par problemer:
1) if sætningen: ' mangler omkring Done: 'Done'
2) drob begge end
3) afslut sidste linie med et ;

If ini.ReadSectionValues('Film', ListBox1.Items) = 'Done' then
  ini.ReadSection('Film', ListBox1.Items)
else
  ini.ReadSection('Film', ListBox2.Items);
Avatar billede clansite.dk Nybegynder
30. november 2004 - 16:18 #2
Virker stadig ikke
Avatar billede pjotre Novice
30. november 2004 - 16:26 #3
Hvilken fejl får du?
Avatar billede clansite.dk Nybegynder
30. november 2004 - 16:28 #4
[Error] Unit1.pas(46): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter'
Avatar billede kammeyer Nybegynder
01. december 2004 - 12:43 #5
ReadSectionValues læser hele skidtet ind i en stringlist. Det du har behov for er manuelt at plukke ud hvad du vil have i den ene listbox og hvad du vil have i den anden.

Du skal læse ini-filen ind i en 3. liste - og derfra gennemgår du listen og udvælger enkeltvis hvad du vil have hvor.
Avatar billede kammeyer Nybegynder
01. december 2004 - 12:44 #6
Noget a la dette:

procedure TForm1.Button1Click(Sender: TObject);
var
  iniF: TIniFile;
  liste: TStringList;
  i: integer;
begin
  try
    iniF := TIniFile.Create('c:\film.ini');
    beep();
    try
      liste := TStringList.Create;
      iniF.ReadSectionValues('Film', liste);
      // gennemløb listen
      for i := 0 to liste.Count -1 do
        begin
          if liste.ValueFromIndex[i] = 'Done' then
            ListBox1.AddItem(liste.Names[i], nil)
          else
            ListBox2.AddItem(liste.Names[i], nil);
        end;

    finally
      freeandnil(liste);
    end;
  finally
  end;
end;
Avatar billede kammeyer Nybegynder
01. december 2004 - 12:45 #7
ja ok - fjern "beep();" fra programkoden - lol
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