delphi4arab منتديات دلفي للعرب

نسخة كاملة : شريط الاخبار .
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
هذا برنامج ومثال عن كيفية استقبال وقراءة الاخبار باستعمال ال RSS Feeds .
**
مثال جيد لمن يريد استعمال شريط الاخبار في برنامجه , حاليا البرنامج يجلب الاخبار من الجزيرة . ويمكن استعماله في في مجالات اخرى .

المطلوب : اتصال انترنت
السلام عليكم
شكرا على المثال
هذه اضافة
البرنامج صنعته منذ مدة

[صورة: 20120709120454.png]

PHP كود :
unit Unit1;

interface

uses
  Windows
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  
Dialogs, StdCtrls, ComCtrls, ImgList, Buttons, xmldom, XMLIntf, msxmldom,
  
XMLDoc,activex, ExtCtrls,shellapi, pngimage, sGroupBox, sSpeedButton,
  
sMemo, sComboBox, sStatusBar, sListView, sSkinProvider, sSkinManager,
  
sLabel, acPNG;

type
  TForm1 
= class(TForm)
    
XMLDoc: TXMLDocument;
    
GroupBox1: TsGroupBox;
    
btn1: TSpeedButton;
    
btn2: TSpeedButton;
    
btn3: TSpeedButton;
    
btnSpeedButton4: TsSpeedButton;
    
btnSpeedButton5: TsSpeedButton;
    
Memo1: TsMemo;
    
cbb1: TsComboBox;
    
sListView1: TsListView;
    
lv: TsListView;
    
stat1: TsStatusBar;
    
sSkinManager1: TsSkinManager;
    
sSkinProvider1: TsSkinProvider;
    
LinkLabel1: TsWebLabel;
    
btn4: TsSpeedButton;
    
procedure btnSpeedButton5Click(Sender: TObject);
    
procedure btnSpeedButton4Click(Sender: TObject);
    
procedure lvChange(Sender: TObject; Item: TListItem; Change: TItemChange);
    
procedure LinkLabel1Click(Sender: TObject);


    
procedure sListView1Change(Sender: TObject; Item: TListItem;
      
Change: TItemChange);
    
procedure btn3Click(Sender: TObject);
    
procedure btn1Click(Sender: TObject);
    
procedure btn2Click(Sender: TObject);
    
procedure FormCreate(Sender: TObject);
    
procedure btn4Click(Sender: TObject);
 
//   procedure FormCreate(Sender: TObject);
  
private
    { 
Déclarations privées }
  public
    { 
Déclarations publiques }
  
end;

var
  
Form1: TForm1;
  
TID : DWORD;
hThread : Hwnd;
implementation

{$R *.dfm}

   
procedure rss(lien:string);
    var
    
Node: IXMLNode;
   
begin
   CoInitialize
(nil);
  
form1.stat1.Panels[0].Text:='Loading .....';
  try
form1.btn2.Click;
 
form1.lv.Clear;

   
form1.XMLDoc.FileName := lien;
   
form1.XMLDoc.Active:=True;

   
Node := form1.XMLDoc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('item') ;

while 
node <>nil do  begin

     with form1
.LV.Items.Add do
     
begin
       Caption 
:= Node.ChildNodes['title'].Text;
       
SubItems.Add(Node.ChildNodes['link'].Text) ;
       
SubItems.Add(Node.ChildNodes['description'].Text);
       
SubItems.Add(Node.ChildNodes['pubDate'].Text) ;
       
SubItems.Add(Node.ChildNodes['category'].Text) ;
     
end;
       
Application.ProcessMessages;
        
form1.stat1.Panels[0].Text:='loading ..'+Node.ChildNodes['description'].Text+'..';
         
Sleep(10);
     
Node := Node.NextSibling;
end;

  
// form1.Memo1.Alignment:=taRightJustify;
   
form1.XMLDoc.Active:=False  ;
  
// Form1.Refresh;

   
form1.btn3.Click;
   
form1.stat1.Panels[0].Text:='Done.';
 
// SuspendThread(hThread);
 //CloseHandle(hThread);
except
on e
:Exception do  form1.stat1.Panels[0].Text:='Error : failed to get Data from Aljazeera . &  '+e.Message;
end;
    
form1.btn1.Enabled:=True;
 
form1.btnSpeedButton4.Enabled:=True;
 
form1.btnSpeedButton5.Enabled:=True;
closehandle(0);
   
end;
  
procedure rssn;
begin
  rss
('http://www.france24.com/ar/monde/rss');
end;
  
procedure rssp;
begin
  rss
('http://www.aljazeera.net/AljazeeraRss/Rss.aspx?URL=RSS-Portal.xml');
end;
 
procedure rssf;
 
begin
   rss
('http://www.france24.com/ar/monde/rss');
 
end;
procedure TForm1.LinkLabel1Click(Sender: TObject);
begin
 ShellExecute
(Handle, 'open', PChar(LinkLabel1.Caption),nil,nil, SW_SHOWNORMAL) ;
end;

procedure TForm1.lvChange(Sender: TObject; Item: TListItem;
  
Change: TItemChange);
begin
  Memo1
.Clear;
try

Memo1.Lines.Add(lv.Items.Item[lv.Itemindex].SubItems.Strings[3]);
Memo1.Lines.Add(lv.Items.Item[lv.Itemindex].Caption) ;
Memo1.Lines.Add(lv.Items.Item[lv.Itemindex].SubItems.Strings[1]) ;
Memo1.Lines.Add(lv.Items.Item[lv.Itemindex].SubItems.Strings[2])  ;
LinkLabel1.Caption:=lv.Items.Item[lv.Itemindex].SubItems.Strings[0] ;

except
  end
;
end;

procedure TForm1.sListView1Change(Sender: TObject; Item: TListItem;
  
Change: TItemChange);
begin
      Memo1
.Clear;
try

Memo1.Lines.Add(sListView1.Items.Item[sListView1.Itemindex].SubItems.Strings[3]);
Memo1.Lines.Add(sListView1.Items.Item[sListView1.Itemindex].Caption) ;
Memo1.Lines.Add(sListView1.Items.Item[sListView1.Itemindex].SubItems.Strings[1]) ;
Memo1.Lines.Add(sListView1.Items.Item[sListView1.Itemindex].SubItems.Strings[2])  ;
LinkLabel1.Caption:=sListView1.Items.Item[sListView1.Itemindex].SubItems.Strings[0] ;

except
  end
;
end;

procedure TForm1.btn1Click(Sender: TObject);

var 
i:Integer;
begin
  lv
.Visible:=False;
  
sListView1.Visible:=True;
   
sListView1.Clear;
 for 
i:=0 to lv.Items.Count-1 do
 if 
lv.Items.Item[i].SubItems.Strings[3]=cbb1.Text then
 begin
   with sListView1
.Items.Add do
     
begin
       Caption 
:= lv.Items.Item[i].Caption;
       
SubItems.Add(lv.Items.Item[i].SubItems.Strings[0]) ;
       
SubItems.Add(lv.Items.Item[i].SubItems.Strings[1]);
       
SubItems.Add(lv.Items.Item[i].SubItems.Strings[2]) ;
       
SubItems.Add(lv.Items.Item[i].SubItems.Strings[3]) ;
     
end;
end;
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
 lv
.Visible:=True;
  
sListView1.Visible:=False;
end;

procedure TForm1.btn3Click(Sender: TObject);

var  
i:Integer;
  
SL: TStringList;
begin
  SL 
:= TStringList.Create;
  
SL.Sorted := True;
  
SL.Duplicates := dupIgnore;
  for 
i:=0 to lv.Items.Count-1 do
  
SL.Add(lv.Items.Item[i].SubItems.Strings[3]);
 
cbb1.Items.Assign(SL);


  
cbb1.Items.Assign(SL);
  
SL.Free;
end;





procedure TForm1.btn4Click(Sender: TObject);

//http://www.france24.com/ar/monde/rss
var
 
TID : DWORD;
hThread : Hwnd;
begin
btnSpeedButton4
.Enabled:=False;
btnSpeedButton5.Enabled:=False;
try

hThread := CreateThread(0,0,@rssf,0,0,TID);

  
//WaitForSingleObject(hThread, INFINITE);
finally
end;
end;

procedure TForm1.btnSpeedButton4Click(Sender: TObject);
var
 
TID : DWORD;
hThread : Hwnd;
begin
btnSpeedButton4
.Enabled:=False;
btnSpeedButton5.Enabled:=False;
try

hThread := CreateThread(0,0,@rssn,0,0,TID);

  
//WaitForSingleObject(hThread, INFINITE);
finally
end;
end;

procedure TForm1.btnSpeedButton5Click(Sender: TObject);
var
 
TID : DWORD;
hThread : Hwnd;
begin
btnSpeedButton5
.Enabled:=False;
btnSpeedButton4.Enabled:=False;
try


hThread := CreateThread(0,0,@rssn,0,0,TID);
  
//WaitForSingleObject(hThread, INFINITE);
finally


end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application
.Title:=Caption
end
;

end.