So Ich habe jetzt mal den Code von dem Newsreader Demo der Indys genommen.
Wenn Ich bei idNNTP1.Host, forums.borland.com eintrage funktioniert es und werden die Groups angezeigt.
Nehme Ich aber meinen Newsserver Eweka, friert die ganze Sache ein.
Ich habe auch noch ein AntiFreeze auf die Form gesetzt.
Gibt es da eine Loesung?
Ich moechte erstmal alle Newsgroups angezeigt haben aber dass funktioniert schonmal nicht.
OwnerData, OwnerDraw stehen auf False.
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var idx : Integer;
li : TListItem;
NewsGroup : String;
Hi, Lo : Integer;
Stat : String;
NewsList : TStringList;
begin
if Screen.Cursor <> crDefault then begin
exit;
end;
Screen.Cursor := crHourGlass; try
{This works as a toggle menu item}
if Not IdNNTP1.Connected then
begin
idNNTP1.Host := 'newsreader11.eweka.nl'; <------ mit forums.borland.com funktionierts
idNNTP1.Username := '******';
idNNTP1.Password := '******';
idNNTP1.Port := 119;
IdNNTP1.Connect;
try
NewsList := TStringList.Create;
try
{Get newsgroup list}
IdNNTP1.GetNewsgroupList(NewsList);
lvNewsGroups.Items.BeginUpdate;
{process newsgroups after list}
idx := 0;
while idx < NewsList.Count do
begin
label1.Caption := IntTostr(Newslist.Count);
li := lvNewsGroups.Items.Add;
idNNTP1.ParseNewsGroup(NewsList[idx],NewsGroup,Hi,Lo, Stat);
{Newsgroup name}
li.Caption := Newsgroup;
{Article estimated to be in newsgroup}
{if lo is greater than Hi, we have no articles}
if (Lo >= Hi) then
li.SubItems.Add('None')
else
li.SubItems.Add(IntToStr(Hi - Lo));
{Newsgroup status}
{This should never be nil but just in case, we check}
if Length(LowerCase(Stat[1])) > 0 then
case Stat[1] of
'y' : li.SubItems.Add('Permitted');
'n' : li.SubItems.Add('Read-Only');
'm' : li.SubItems.Add('Moderated');
end;
Inc (idx);
end;
finally
lvNewsGroups.Items.EndUpdate;
NewsList.Free;
end;
except
IdNNTP1.Disconnect;
end; // try finally
end // if Not Connected then
else
begin
{Close the connection}
IdNNTP1.Disconnect;
{Clear the List Views}
lvNewsGroups.Items.Clear;
lvArticles.Items.Clear;
end; //else .. if Not IdNNTP1.Connected then
finally Screen.Cursor := crDefault; end;
end;
Recht Herzlichen Dank erstmal.
Gruss Lucius.