为什么没有人讨论Scientific Linux,难道它不好用吗
主要因为 Scientific Linux 是用于科学计算这类问题处理的,而 Linux 用户多数是用来进行嵌入式开发或大型专业网站的,对计算处理要求没那么高,加上它基于 RedHat ,内核比较落后,因此,使用的人不多。
delphi最小化
点最小化的时候,直接隐藏窗口,用下面的代码实现:
procedure WMSysCommand(var Message: TWMSysCommand);message WM_SYSCOMMAND;//响应WM_SYSCOMMAND消息,当最小化的时候隐藏
procedure TYMessageMainForm.WMSysCommand(var Message: TWMSysCommand);
begin
if (Message.CmdType and $FFF0 = SC_MINIMIZE) or (Message.CmdType and $FFF0 = SC_CLOSE) then
begin //把最小化当隐藏处理
YMessageMainForm.Hide;
ShowWindow(Application.Handle, SW_HIDE);
end else Inherited;//调用上级类的处理
end;
在系统栏放一个图表,让鼠标单击、双击、右键实现一定的功能,使用下面的代码实现:
{$WARN SYMBOL_DEPRECATED OFF}
unit TrayIcon;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls, ShellAPI, Forms, menus;
const WM_TOOLTRAYICON = WM_USER+1;
WM_RESETTOOLTIP = WM_USER+2;
type
TTrayIcon = class(TComponent)
private
{ Field Variables }
IconData: TNOTIFYICONDATA;
fIcon : TIcon;
fToolTip : String;
fWindowHandle : HWND;
fActive : boolean;
fShowDesigning : Boolean;
{ Events }
fOnClick : TNotifyEvent;
fOnDblClick : TNotifyEvent;
fOnRightClick : TMouseEvent;
fPopupMenu : TPopupMenu;
function AddIcon : boolean;
function ModifyIcon : boolean;
function DeleteIcon : boolean;
procedure SetActive(Value : boolean);
procedure SetShowDesigning(Value : boolean);
procedure SetIcon(Value : TIcon);
procedure SetToolTip(Value : String);
procedure WndProc(var msg : TMessage);
procedure FillDataStructure;
procedure DoRightClick( Sender : TObject );
protected
public
constructor create(aOwner : TComponent); override;
destructor destroy; override;
published
property Active : boolean read fActive write SetActive;
property ShowDesigning : boolean read fShowDesigning write SetShowDesigning;
property Icon : TIcon read fIcon write SetIcon;
property ToolTip : string read fTooltip write SetToolTip;
property OnClick : TNotifyEvent read FOnClick write FOnClick;
property OnDblClick : TNotifyEvent read FOnDblClick write FOnDblClick;
property OnRightClick : TMouseEvent read FOnRightClick write FonRightClick;
property PopupMenu : TPopupMenu read fPopupMenu write fPopupMenu;
end;
procedure Register;
implementation
{$R TrayIcon.res}
procedure TTrayIcon.SetActive(Value : boolean);
begin
if value 《》 fActive then begin
fActive := Value;
if not (csdesigning in ComponentState) then begin
if Value then begin
AddIcon;
end else begin
DeleteIcon;
end;
end;
end;
end;
procedure TTrayIcon.SetShowDesigning(Value : boolean);
begin
if csdesigning in ComponentState then begin
if value 《》 fShowDesigning then begin
fShowDesigning := Value;
if Value then begin
AddIcon;
end else begin
DeleteIcon;
end;
end;
end;
end;
procedure TTrayIcon.SetIcon(Value : Ticon);
begin
if Value 《》 fIcon then
begin
fIcon.Assign(value);
ModifyIcon;
end;
end;
procedure TTrayIcon.SetToolTip(Value : string);
begin
// This routine ALWAYS re-sets the field value and re-loads the
// icon. This is so the ToolTip can be set blank when the component
// is first loaded. If this is changed, the icon will be blank on
// the tray when no ToolTip is specified.
if length( Value ) 》 62 then
Value := copy(Value,1,62);
fToolTip := value;
ModifyIcon;
end;
constructor TTrayIcon.create(aOwner : Tcomponent);
begin
inherited create(aOwner);
FWindowHandle := AllocateHWnd( WndProc );
FIcon := TIcon.Create;
end;
destructor TTrayIcon.destroy;
begin
if (not (csDesigning in ComponentState) and fActive)
or ((csDesigning in ComponentState) and fShowDesigning) then
DeleteIcon;
FIcon.Free;
DeAllocateHWnd( FWindowHandle );
inherited destroy;
end;
procedure TTrayIcon.FillDataStructure;
begin
with IconData do begin
cbSize := sizeof(TNOTIFYICONDATA);
wnd := FWindowHandle;
uID := 0; // is not passed in with message so make it 0
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
hIcon := fIcon.Handle;
StrPCopy(szTip,fToolTip);
uCallbackMessage := WM_TOOLTRAYICON;
end;
end;
function TTrayIcon.AddIcon : boolean;
begin
FillDataStructure;
result := Shell_NotifyIcon(NIM_ADD,@IconData);
// For some reason, if there is no tool tip set up, then the icon
// doesn’t display. This fixes that.
if fToolTip = ’’ then
PostMessage( fWindowHandle, WM_RESETTOOLTIP,0,0 );
end;
function TTrayIcon.ModifyIcon : boolean;
begin
FillDataStructure;
if fActive then
result := Shell_NotifyIcon(NIM_MODIFY,@IconData)
else
result := True;
end;
procedure TTrayIcon.DoRightClick( Sender : TObject );
var MouseCo: Tpoint;
begin
GetCursorPos(MouseCo);
if assigned( fPopupMenu ) then begin
SetForegroundWindow( Application.Handle );
Application.ProcessMessages;
fPopupmenu.Popup( Mouseco.X, Mouseco.Y );
end;
if assigned( FOnRightClick ) then
begin
FOnRightClick(self,mbRight,,MouseCo.x,MouseCo.y);
end;
end;
function TTrayIcon.DeleteIcon : boolean;
begin
result := Shell_NotifyIcon(NIM_DELETE,@IconData);
end;
procedure TTrayIcon.WndProc(var msg : TMessage);
begin
with msg do
if (msg = WM_RESETTOOLTIP) then
SetToolTip( fToolTip )
else if (msg = WM_TOOLTRAYICON) then begin
case lParam of
WM_LBUTTONDBLCLK : if assigned (FOnDblClick) then FOnDblClick(self);
WM_LBUTTONUP : if assigned(FOnClick)then FOnClick(self);
WM_RBUTTONUP : DoRightClick(self);
end;
end
else // Handle all messages with the default handler
Result := DefWindowProc(FWindowHandle, Msg, wParam, lParam);
end;
procedure Register;
begin
RegisterComponents(’Win95’, [TTrayIcon]);
end;
end.
photoshop cs3好用吗
都差不多,但是CS3加了一些功能
Photoshop
CS3
新增的特性及功能
1、Photoshop
CS3最大的改变是工具箱,变成可伸缩的,可为长单条和短双条。
2、工具箱上的快速蒙版模式和屏幕切换模式也改变了切换方法。
3、工具箱的选择工具选项中,多了一个组选择模式,可以自己决定选择组或者单独的图层。
4、工具箱多了快速选择工具Quick
Selection
Tool,应该魔术棒的快捷版本,可以不用任何快捷键进行加选,
按往不放可以像绘画一样选择区域,非常神奇。当然选项栏也有新、加、减三种模式可选,快速选择颜色差异大的图像会非常的直观、快捷。
5、所有的选择工具都包含重新定义选区边缘(Refine
Edge)的选项,比如定义边缘的半径,对比度,羽化程度等等,可以对选区进行收缩和扩充。另外还有多种显示模式可选,比如快速蒙版模式和蒙版模式等,非常
方便。举例来说,您做了一个简单的羽化,可以直接预览和调整不同羽化值的效果。当然,选择菜单里熟悉
的羽化命令从此退出历史舞台。
6、调板可以缩为精美的图标,有点儿像CorelDraw的泊坞窗,或者像Flash的面板收缩状态,不过相比之下这个更酷,两层的收缩,感觉超棒!
7、多了一个“克隆(仿制)源”调板,是和仿制图章配合使用的,允许定义多个克隆源(采样点),就好像
Word有多个剪贴版内容一样。另外克隆源可
以进行重叠预览,提供具体的采样坐标,可以对克隆源进行移位缩放、旋转、混合等编辑操作。克隆源可以是针对一个图层,也可以是上下两个,也可以是所有图
层,这比之前的版本多了一种模式。
8、在Adobe
Bridge的预览中可以使用放大镜来放大局部图像,而且这个放大镜还可以移动,还可以旋转。如果同
时选中了多个图片,还可以一起预览,真是酷毙了。
9、Adobe
Bridge添加了Acrobat
Connect功能,用来开网络会议的,前身是Macromedia的降将Breeze。
10、Bridge可以直接看Flash
FLV格式的视频了,另外Bridge启动感觉好快,比CS2和CS两个版本都要快,没有任
何拖累感和“死机感”。
11、在Bridge中,选中多个图片,按下Ctrl+G可以堆叠多张图片,当然随时可以单击展开,这个用来节省空间
12、新建对话框添加了直接建立网页、视频和手机内容的尺寸预设值。比如常用的网页Banner尺寸,再比如常见的手机屏幕尺寸等等!
-ie