Avatar billede armena Nybegynder
27. februar 2003 - 14:18 Der er 4 kommentarer og
2 løsninger

Et lille problem..

Jeg har en form der hedder "Mainform". I dens OnShow har jeg skrevet:
Login.show;

Login er en til form, hvor man skal logge ind.
Så har jeg forsøgt mig frem til at gør sådan at hvis man taster et brugernavn i Edit1 og et kodeord i Edit2, så skal den se om de 2 tekster findes i Mainform Listview. Hvis de gør så skal den vise Mainformen, ellers så skal den lukke hele programmet.

Har prøvet med det her stykke kode:

procedure TLogin.LogClick(Sender: TObject);
var
i: integer;
begin
for i := 0 to Mainform.Admins.Items.Count - 1 do
begin
if (bruger.text = Mainform.admins.items[i].caption) and (kode.Text = Mainform.Admins.Items[i].SubItems.Text) then
begin
login.close;
end
else begin
Showmessage('Forkert brugernavn eller kode');
end
end;
end;

Admins er en Listview!
Men når jeg bruger dette kode, og taster et brugernavn og kode som findes i Listviewen, så kommer den med den der showmessage og færdig. Den skulle have vist Mainformen, men det gjorde den ik.
Hvad gør jeg forkert?

Og findes der en anden måde at gør det på?

På forhånd tak.
Håber på et godt svar.

MVH.
armena
Avatar billede armena Nybegynder
27. februar 2003 - 14:20 #1
Hov, glemte at sige:
Bruger og Kode er 2 TEdit'er! :)
Avatar billede ams Nybegynder
27. februar 2003 - 14:30 #2
Hej
3 ting:
1. Du skal sammenligne med ..Items[i].subItems[x]
2. Du skal stoppe for loop: If fundet then begin Break; close; end
3. Efter ShowMessage, skal du terminere applikation: Application.Terminate.
Avatar billede armena Nybegynder
27. februar 2003 - 14:52 #3
ams> hm.. hvordan gør jeg alt det? kan du skrive lidt kode?
Avatar billede hreiff Nybegynder
28. februar 2003 - 10:17 #4
procedure TLogin.LogClick(Sender: TObject);
var
  i: integer;
  ok: boolean;
begin
  ok := false;
  for i := 0 to Mainform.Admins.Items.Count - 1 do
  begin
    if (bruger.text = Mainform.admins.items[i].caption) and
          kode.Text = Mainform.Admins.Items[i].SubItems.Text) then
      ok := true;
  end;
  if ok then
    login.close;
  else
  begin
    Showmessage('Forkert brugernavn eller kode');
    application.terminate;
  end
end;
Avatar billede armena Nybegynder
28. februar 2003 - 14:14 #5
hreiff> har lige testet kode, og det den gør er, at når jeg taster et brugernavn og kode som findes, så lukker den programmet, det samme  hvis jeg skriver et brugernavn og et kodeord som ikke findes.
Avatar billede armena Nybegynder
28. februar 2003 - 14:34 #6
har fået det til at virke :)

Skrev bare:
...Subitems[0]
Istedet for:
...Subitems.text

Tak for svarene!
ams du får 15 point og hreiff, du får resten :)
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