做类似网页新闻的滚动连接
在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