怎么弹出XP那种气泡提示?还有怎么形成不规则窗口?还有用什么软件制作透明背景的图标ICON?在VC里可以做,但我总不可能为了作个图标而启动VC吧?!啊哈哈
请大家帮帮忙呀,我小鸟呀。谢谢了。

解决方案 »

  1.   

    //根据图形生成不规则窗体组件 v1.0
    //作者:S.F.unit uImageForm;interfaceuses
      Windows, Messages, SysUtils, Classes, ExtCtrls, Forms, Graphics;type
      TImageForm = class(TComponent)
      private
        FActive, FCanMoveForm: boolean;
        FShapeImage: Timage;
        FForm: TForm;
        FTransparenceColor: Tcolor;
        procedure SetActive(Value: Boolean);
        procedure shape(a: timage);
        procedure ShapeImageMouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
        procedure SetCanMoveForm(Value: Boolean);
        procedure Loaded; override;
      protected
      public
        constructor Create(AOwner: TComponent); override;
      published
        property Active: Boolean read FActive write SetActive default True;  //激活
        property CanMoveForm: Boolean read FCanMoveForm write SetCanMoveForm default  //是否支持拖动form
          True;
        property ShapeImage: Timage read FShapeImage write FShapeImage;  //图形
        property TransparenceColor: Tcolor read FTransparenceColor write  //屏蔽色
          FTransparenceColor default clWhite;
      end;implementationprocedure TImageForm.ShapeImageMouseMove(Sender: TObject; Shift: TShiftState;
      X,   Y: Integer);
    begin
      if (ssLeft in Shift) then
      begin
        ReleaseCapture;
        SendMessage(FForm.Handle, WM_SYSCOMMAND, SC_MOVE + 1, 0);
      end;
    end;constructor TImageForm.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      FActive := true;
      FCanMoveForm := true;
      FForm := (Owner as TForm);
      FForm.BorderStyle := bsNone;
      FForm.AutoSize := true;
      FTransparenceColor := clWhite;
    end;procedure TImageForm.Loaded;
    begin
      inherited Loaded;
      if not (csDesigning in Componentstate) then
      begin
        SetActive(FActive);
        SetCanMoveForm(FCanMoveForm);
      end;
    end;procedure TImageForm.SetCanMoveForm(Value: boolean);
    begin
      FCanMoveForm := Value;
      if not (csDesigning in ComponentState) and (FShapeImage <> nil) then
        if FCanMoveForm then
          FShapeImage.OnMouseMove := ShapeImageMouseMove
        else
          FShapeImage.OnMouseMove := nil;
    end;procedure TImageForm.SetActive(Value: boolean);
    begin
      FActive := Value;
      if not (csDesigning in ComponentState) then
      begin
        if Value and (FShapeImage <> nil) then
          shape(FShapeImage)
        else
          setwindowrgn(FForm.Handle, createrectrgn(0, 0, FForm.Left + FForm.Width,
            FForm.Top + FForm.Height), true);
      end;
    end;procedure TImageForm.shape(a: timage);
    var
      r2: hrgn;
      r1: hrgn;
      x, y, s, e: integer;
    begin
      r1 := createrectrgn(0, 0, 0, 0);
      for y := 0 to a.Height do
      begin
        x := 0;
        s := 0;
        e := 0;
        repeat
          x := x + 1;
          while (a.canvas.pixels[x, y] = FTransparenceColor) and (x <= a.width) do
          begin
            x := x + 1;
            s := x;
          end;
          while (a.canvas.pixels[x, y] <> FTransparenceColor) and (x <= a.width) do
          begin
            x := x + 1;
            e := x;
          end;
          if s <= e then
          begin
            r2 := createrectrgn(s, y, e, y + 1);
            combinergn(r1, r1, r2, rgn_or);
            deleteobject(r2);
          end;    until x >= a.width
      end;
      setwindowrgn(FForm.handle, r1, true);
    end;end.
      

  2.   

    AWicons Pro制作ICON的絕佳工具!
      

  3.   

    不知道你要系統托盤圖標的氣泡提示還是其它?如果是要使用系統托盤圖標的提示,我想最好用還是TrayIcon控件.
      

  4.   

    CoolTrayICon组件就可以了
    createrectrgn搞不规则Form,用以前一个组件ABC就很好,这个东西2年没升级了
      http://www.obsof.com/index.html,在以前,这个ABC真的是很好用的制作Icon的推荐用Icon Cool Editor,简单又好用
      

  5.   

    气泡提示
    http://community.csdn.net/Expert/topic/3135/3135866.xml?temp=.6976129