zoukankan      html  css  js  c++  java
  • 模拟系统提示框

    在FormCreate设置PersonSignLB的windows消息

    aHint :=THintWindow.Create(nil);
    aHint.Color :=clInfoBk;
    FWndMethod := PersonSignLB.WindowProc;
    PersonSignLB.WindowProc := LabelWndProc;

    显示个人提示框

    procedure TMainForm.LabelWndProc(var Msg: TMessage);

      //根据一定长度,将字符串变为回车的字符
      function SplitByLen(src:string;var row:Integer;perCount:Integer):string;
      var
        i,j:Integer;
        c:Char;
        sTemp,s1:string;
        bIsDBCS:Boolean;
      begin
        row :=Ceil(Length(src)/perCount);
        sTemp :='';
        bIsDBCS :=False;
        for I := 1 to row do
        begin
          for   j:= 1 to  perCount   do
          begin
            if bIsDBCS   then
              bIsDBCS   :=   False
            else
              if Windows.IsDBCSLeadByte(byte(src[j]))   then
                bIsDBCS   := True;
          end;

          if  bIsDBCS   then   Dec(perCount);
          if i=row then
            sTemp :=sTemp +Copy(src,1,perCount)
          else
            sTemp :=sTemp +Copy(src,1,perCount)+#10#13;
          src :=Copy(src,perCount+1,Length(src)-perCount);
        end;
        if bIsDBCS then
          Inc(perCount);
        Result :=sTemp;  
      end;

    var
      p,p1,p2: TPoint;
      iRow:Integer;
      s:string;
    begin
      GetCursorPos(p);
      p1 :=Point(p.x,p.y+20);

      if Msg.Msg = CM_MOUSELEAVE then
      begin
        ShowWindow(aHint.Handle, SW_HIDE);
      end
      else if Msg.Msg = CM_MOUSEENTER then
      begin
        s :=SplitByLen(FSingLB,iRow,36);
        //djc 2012-8-30 mod
        if iRow=1 then
          p2 :=Point(p.x+220,p.y+36)
        else
          p2 :=Point(p.x+220,p.y+26*iRow);
        aHint.ActivateHint(Rect(p1,p2),s);
      end;
      FWndMethod(Msg);
    end;

  • 相关阅读:
    泛型理解及应用(二):使用泛型编写通用型Dao层
    泛型的理解及应用(一):泛型擦除
    Servlet、Filter 生命周期
    Java多线程(六) 线程系列总结
    Java多线程(五) Lock接口,ReentranctLock,ReentrantReadWriteLock
    Java多线程(四) 线程池
    Java多线程(三) 多线程间的基本通信
    Java多线程(二) 多线程的锁机制
    Java多线程(一) 多线程的基本使用
    Spring Boot实战:模板引擎
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2665173.html
Copyright © 2011-2022 走看看