计算机二级辅导:DELPHI文字滚屏控件(SliderMemo)
来源:优易学  2011-6-5 16:58:20   【优易学:中国教育考试门户网】   资料下载   IT书店

 

  procedure TSliderMemo.toPAINT;
  var
  offset,Offset1,iLoop:integer;
  begin
  if self.Focused then
  begin
  self.SelLength := 0;
  postmessage(self.Handle,WM_KILLFOCUS,0,0); //非常重要
  end;
  if Initial then
  begin
  OffSet := height - FTopNow;
  FCanvas.FillRect(self.ClientRect);//rect(1,1,));
  for iLoop:=0 to self.Lines.Count - 1 do
  begin
  OffSet1 := OffSet + TxtHeight;
  if (OffSet1>0) and (OffSet<height) then
  FCanvas.textout(1,OffSet,self.Lines[iLoop]);
  OffSet := OffSet1;
  end;
  end;
  end;
  { ******************************************************* }
  procedure TSliderMemo.Timer(Sender: TObject);
  begin
  if not Initial then
  begin
  FCanvas.Font := self.Font;
  self.Font.Color := self.Color;
  FTopNow := self.Height;
  TxtHeight := FCanvas.textheight(’Pj’);
  self.TabStop := false;
  FCanvas.Brush.Color := self.Color;
  start;
  Initial := true;
  end;
  toPaint;
  FTopNow := FTopNow + 1;
  if FTopNow>(height+TxtHeight*Self.Lines.Count) then
  begin
  FTopNow :=0;
  if assigned(FOnLoop) then
  begin
  Stop;
  FOnLoop(Self);
  Start;
  end;
  end;
  end;
  { ******************************************************* }
  procedure TSliderMemo.Stop;
  begin
  FTimer.Enabled := False;
  end;
  { ******************************************************* }
  procedure TSliderMemo.Start;
  begin
  FTimer.Enabled := true ;
  end;
  { ******************************************************* }
  constructor TSliderMemo.Create (AOwner: TComponent);

上一页  [1] [2] [3] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训