Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Wer kann mir bei einer For schleife helfen???


Erzengel - Mi 14.01.04 13:40
Titel: Wer kann mir bei einer For schleife helfen???
Also ich möchte eine Schleife bauen in der die Verbindung nur einmal drankommt und nicht für jeden einzelnen User.
Biss jetzt muße ich jeden User verbinden und trennen. Wenn ein neuer User dazukommt muß ich dann den Quelltext ändern. Aber das soll so sein. Ich habe mir das so gedacht. Wenn ein neur dazukommt erhöe ich userzahl um eins.



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
procedure TForm1.FormShow(Sender: TObject);

var
i, j, useranzahl: Integer;


 begin
useranzahl:= 2;
  for j:=1 to userzahl do begin
     //test2@arminius.de
     NMPOP32.UserID := 'test2';
     NMPOP32.Password :='*******';
     NMPOP32.Connect;
     for i:= 1 to NMPOP32.MailCount do //Alle Mails werden abgeholt
         NMPOP32.GetMailMessage(i);
         NMPOP32.Disconnect;               //Verbindung schließen



     //noellen@arminius.de
     NMPOP32.UserID:= 'noellen';   //Neue daten werden eingetragen
     NMPOP32.Password :='********';
     NMPOP32.Connect;                 //Mit neune daten verbinden
     for i:= 1 to NMPOP32.MailCount do
         NMPOP32.GetMailMessage(i);
         NMPOP32.Disconnect;

     end;
  end;


So und das ist mir zuviel Qully. Kann mann da was machen.


smiegel - Mi 14.01.04 14:22

Hallo,


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
type
  TUserRec=record
    Name:String;
    Passwort:String;
  end;

const
  iMaxUser=2;
  UserArr=array[0..iMaxUser-1of TUserRec=
    ((Name: 'test2';   Passwort: 'xxxxx'), 
     (Name: 'noellen'; Passwort: 'xxxxx'));

...
  for j:=0 to iMaxUser-1 do 
  begin 
     NMPOP32.UserID:=UserArr[j].Name;
     NMPOP32.Password:=UserArr[j].Passwort;
     NMPOP32.Connect; 
     for i:= 1 to NMPOP32.MailCount do //Alle Mails werden abgeholt 
         NMPOP32.GetMailMessage(i); 
      NMPOP32.Disconnect;               //Verbindung schließen 
  end// for j
...


Wenn Du jetzt einen neuen User benötigst, erhöhst Du die Konstante iMaxUser und fügst die erforderlichen Daten dem Array UserArr hinzu.


Delete - Mi 14.01.04 14:37

Geht auch ohne "iMaxUser", @smiegel. Einfach den Wert angeben, bspw:

Delphi-Quelltext
1:
UserArr : array[0..2of TUserRec                    

und in der Schleife mit "high" arbeiten

Delphi-Quelltext
1:
for j := 0 to high(UserArr)