線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:865
推到 Plurk!
推到 Facebook!

hint的問題

尚未結案
guohun
一般會員


發表:6
回覆:1
積分:1
註冊:2004-07-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-27 22:15:14 IP:218.58.xxx.xxx 未訂閱
各位大大:     請問hint顯示的内容如下:               name: goood               address:nuaa 324               。。。。。。。。。 可以通過HINT:=。。。 #13 。。。。 #13 。。。。來實現,請問如何讓每一行顯示的字數固定為某個值那: 比如:name=good look address為臺北市總統資政府456號 每行顯示14個字符 name good look address 為臺北 市總統資政府45 6號 。。。。。。。。。
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-27 22:45:22 IP:202.39.xxx.xxx 未訂閱
您好, 在 TForm 的 OnCreate 事件中使用如下的碼試試: (要該元件有設 Hint, 且 ShowHint 屬性為 True)
procedure TForm1.FormCreate(Sender: TObject);
var
  i,j: integer;
  sHint, sTmp, sResult: String;
begin
  for i := 0 to ComponentCount - 1 do
  begin
    sHint := '';
    if Components[i] is TControl then
    begin
      sHint := TControl(Components[i]).Hint;
    end;
    if Components[i] is TCustomAction then
    begin
      sHint := TCustomAction(Components[i]).Hint;
    end;
    if Components[i] is TMenuItem then
    begin
      sHint := TMenuItem(Components[i]).Hint;
    end;        sResult := '';
    while sHint <> '' do
    begin
      sTmp := '';
      j := 1;
      while j < 14 do
      begin
        if IsDBCSLeadByte(Byte(sHint[j])) then
        begin
          sTmp := sTmp   sHint[j]   sHint[j 1];
          Inc(j, 2);
        end
        else
        begin
          sTmp := sTmp   sHint[j];
          Inc(j);
        end;
      end;          sResult := sResult   sTmp   #13;
      Delete(sHint, 1, Length(sTmp));
    end;        if Components[i] is TControl then
    begin
      TControl(Components[i]).Hint := sResult;
    end;
    if Components[i] is TCustomAction then
    begin
      TCustomAction(Components[i]).Hint := sResult;
    end;
    if Components[i] is TMenuItem then
    begin
      TMenuItem(Components[i]).Hint := sResult;
    end;
  end;
end;
-- 向 KTop 的弟兄們致敬! 發表人 - hagar 於 2004/07/27 22:59:28
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-27 22:55:05 IP:211.76.xxx.xxx 未訂閱
guohun 您好:    您一併參考看看吧! < class="code"> function equalStrings(msg :string; len :integer): string; var temp : string; index : integer; begin temp :=''; index := 1; while( index<=Length(msg) ) do begin if ( (index len-1 < Length(msg)) and (ord(msg[index len-1]) > 127) ) then begin temp := temp Copy(msg, index, len-1) #13; index := index len-1; end else begin temp := temp Copy(msg, index, len) #13; index := index len; end; end; result := temp; end; procedure TForm1.Button1Click(Sender: TObject); var msg : String; begin msg := 'name=good lookaddress為臺北市總統資政府456號'; msg := equalStrings(msg, 14); ShowMessage(msg); end; RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### 發表人 - richtop 於 2004/07/27 22:57:30
jest0024
高階會員


發表:11
回覆:310
積分:224
註冊:2002-11-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-28 19:47:57 IP:61.60.xxx.xxx 未訂閱
type
  TMyHintWindow = class(THintWindow) //重新定義THintWindw類別
  public
    procedure activateHintData(Rect:TRect;const AHint:String;AData:Pointer);override;
  end;    procedure TMyHintWindow.activateHintData(Rect:TRect;const AHint:String;AData:Pointer); //重新改寫方法
begin
  Rect.Right:=Rect.Left+100;
  Rect.Bottom:=Rect.Top +100;
  Inherited;
end;    constructor TForm1.Create(...
begin
  HintWindowClass:=TMyHintWindow;
end;    
系統時間:2024-05-03 3:13:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!