读书人

做类似网页新闻的滚动连接解决方法

发布时间: 2012-02-24 16:30:38 作者: rapoo

做类似网页新闻的滚动连接
在delphi的winform上要如何实现呢?
就好像网页上的新闻一样,内容是滚动的,而且内容是动态的,实时刷新。。
内容在winform界面上滚动,而且每一个标题都像一个超链接一样,点击就能访问到指定网址。。
这个要怎样做到啊?大大们教下啊。。

[解决办法]
画吧

Delphi(Pascal) code
根据内容改变FTop的值,依次画出列表中的数据,下面只画了一个'abc'procedure TForm1.FormPaint(Sender: TObject);begin  Inc(FTop,3);  Canvas.TextOut(10,100-FTop,'abc');end;procedure TForm1.Timer1Timer(Sender: TObject);begin  Self.Repaint;end;
[解决办法]
放个Panel,动态创建label到Panel里
给Label的click事件添加打开链接动作
用Timer控件label的位置
当label达到不可见的位置时,释放label
[解决办法]
bdmh画的是由下往上纵向滚动,下面改成从右至左的横向滚动
Delphi(Pascal) code
type  TForm1 = class(TForm)    Timer1: TTimer;    Button1: TButton;    procedure FormPaint(Sender: TObject);    procedure Timer1Timer(Sender: TObject);    procedure FormCreate(Sender: TObject);    procedure FormClick(Sender: TObject);  private    { Private declarations }    FLeft: Integer;  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormPaint(Sender: TObject);begin  if FLeft <= 0 then    FLeft := Width  else    Dec(FLeft, 1);  Canvas.TextOut(FLeft, 10, 'abc');end;procedure TForm1.Timer1Timer(Sender: TObject);begin  Self.Repaint;end;procedure TForm1.FormCreate(Sender: TObject);begin  FLeft := Width;  Timer1.Interval := 30;  Timer1.Enabled := True;end;
[解决办法]
上面所说用Panel的实现,保存为两个文件,你有空可转成多线程

Delphi(Pascal) code
// 另存为 Unit1.dfm object Form1: TForm1  Left = 272  Top = 289  Width = 501  Height = 178  Caption = 'Form1'  Color = clBtnFace  Font.Charset = DEFAULT_CHARSET  Font.Color = clWindowText  Font.Height = -11  Font.Name = 'MS Sans Serif'  Font.Style = []  OldCreateOrder = False  OnClose = FormClose  PixelsPerInch = 96  TextHeight = 13  object Panel1: TPanel    Left = 16    Top = 16    Width = 185    Height = 81    BevelOuter = bvNone    TabOrder = 0    object Panel2: TPanel      Left = 0      Top = 16      Width = 185      Height = 41      BevelOuter = bvNone      TabOrder = 0    end  end  object Button1: TButton    Left = 408    Top = 8    Width = 75    Height = 25    Caption = 'Start'    TabOrder = 1    OnClick = Button1Click  end  object ListView1: TListView    Left = 216    Top = 8    Width = 185    Height = 97    Columns = <      item        AutoSize = True      end      item        AutoSize = True      end>    Items.Data = {      CB0000000400000000000000FFFFFFFFFFFFFFFF010000000000000005616161      616114687474703A2F2F7777772E62616964752E636F6D00000000FFFFFFFFFF      FFFFFF010000000000000005626262626214687474703A2F2F7777772E676F6F      676C652E636E00000000FFFFFFFFFFFFFFFF0100000000000000056363636363      13687474703A2F2F6D61696C2E3136332E636F6D00000000FFFFFFFFFFFFFFFF      010000000000000005646464646414687474703A2F2F6D61696C2E6C6976652E      636F6DFFFFFFFFFFFFFFFF}    RowSelect = True    ParentShowHint = False    ShowHint = False    TabOrder = 2    ViewStyle = vsReport  end  object Button2: TButton    Left = 408    Top = 48    Width = 75    Height = 25    Caption = 'Stop'    TabOrder = 3    OnClick = Button2Click  endend 

读书人网 >.NET

热点推荐