100 分速求一个 透明数字时钟的源代码 最近要做一个,透明桌面始终,要求像电视里面右上的时钟显示的那种效果。主要难点:不知道如何实现,窗体和控件的透明。算法可以省略。其实也就是 如何在透明的窗体上显示不断变化的文本?望各位高手给予指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 设置窗体的AlphaBlend属性为True修改AlphaBlendValue 为150运行看看 To hangguojun(布丁) 要求上面依然显示数字。TO zwjchina(蒲石) 这样的话上面的所有的控件 都成半透明了,包括控件上面的数字都半透明了。和SetLayeredWindowAttributes 功能差不多了,能不能只是窗体和控件透明,但是控件上的文本不透明?或者用其他方式动态显示文本? 希望对你有用---->unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, FR_Class, StdCtrls, ExtCtrls;type TForm1 = class(TForm) Button1: TButton; Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Timer1Timer(Sender: TObject); private procedure SetFormAsText(AStr:string); { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);var vStr:string;begin vStr:=formatdatetime('hh:mm:ss',time); SetFormAsText(vStr);end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begin ReleaseCapture; Perform(WM_SYSCOMMAND,$f012,0); //上面两句是用来拖动窗体end;procedure TForm1.SetFormAsText(AStr: string);var rgn:HRGN;begin BeginPath(Canvas.Handle); SetBkMode( Canvas.Handle, TRANSPARENT ); Canvas.Font.Name:= '宋体'; Canvas.Font.Size:=100; Canvas.TextOut( 20, 20, AStr);//用AStr作为form的形状 EndPath(Canvas.Handle); rgn:= PathToRegion(Canvas.Handle); SetWindowRgn( Handle, rgn, true );end;procedure TForm1.Timer1Timer(Sender: TObject);var vStr:string;begin vStr:=formatdatetime('hh:mm:ss',time); SetFormAsText(vStr);end;end. 该时钟是否一定要是一个窗口? 如果不用的话直接在Desktop上画图 要数字显示的,不要画圆的。我去试试merkey2002(小样的) 的如何,继续 TO:merkey2002(小样的) 谢谢!完全符合要求。不胜感激,有兴趣加我QQ:35109207以后多多交流 散分 難到至今都還沒有人用DELPHI獲取過ACCESS數據庫字段的說明嗎 怎么返回8/16的带两位小数的值? 设计学生分班程序的设计思想是什么 我想保留进入的状态,主要是关于指针的用法?/ 我的application.Minimize不起作用 【老生常谈】求一个可用的Delphi窗体置顶的代码...... 可远程访问的运行ServerSocket的微机,线路有何要求? 一个看似简单的问题。 第二次给分 使用MFC DLL “有事QQ我!” 是怎么实现的?怎么实现类似的功能?----300 分求教。
修改AlphaBlendValue 为150运行看看
TO zwjchina(蒲石) 这样的话上面的所有的控件 都成半透明了,包括控件上面的数字都半透明了。和SetLayeredWindowAttributes 功能差不多了,能不能只是窗体和控件透明,但是控件上的文本不透明?或者用其他方式动态显示文本?
---->
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, FR_Class, StdCtrls, ExtCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Timer1Timer(Sender: TObject);
private
procedure SetFormAsText(AStr:string);
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var
vStr:string;
begin
vStr:=formatdatetime('hh:mm:ss',time);
SetFormAsText(vStr);
end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND,$f012,0);
//上面两句是用来拖动窗体
end;procedure TForm1.SetFormAsText(AStr: string);
var
rgn:HRGN;
begin
BeginPath(Canvas.Handle);
SetBkMode( Canvas.Handle, TRANSPARENT );
Canvas.Font.Name:= '宋体';
Canvas.Font.Size:=100;
Canvas.TextOut( 20, 20, AStr);//用AStr作为form的形状
EndPath(Canvas.Handle);
rgn:= PathToRegion(Canvas.Handle);
SetWindowRgn( Handle, rgn, true );
end;procedure TForm1.Timer1Timer(Sender: TObject);
var
vStr:string;
begin
vStr:=formatdatetime('hh:mm:ss',time);
SetFormAsText(vStr);
end;end.
我去试试merkey2002(小样的) 的如何,继续
以后多多交流