帮个忙(100分)

  • 主题发起人 主题发起人 QianQi
  • 开始时间 开始时间
Q

QianQi

Unregistered / Unconfirmed
GUEST, unregistred user!
1.如何使一个窗体总是在前面(always on top)
2.我将richedit的内容保存为txt文件后,为什么不关联windows的文本图标.
 
1.好像有个属性可以设置
2.Richedit是带有格式的文件(如存在文件头等信息),而关联的Txt文件则是无格式的.
 
1、FORM属性formstyle就可以设置
2、这个就不楼上老兄已经说了。
 
在delphi中始终把最后激活的窗体放在最上面。如果想把子窗体放在主窗体的上面,需要
把子窗体的FormStyle属性设置成fsStayOnTop就可以了。
第二个问题,是不是文件名没有后缀?
 
.TXT 是纯文本文件,肯定不会关联图标的。
如果你是说连记事本图标都没有的话,可以在资源管理器里设置一下。
 
窗体始终在最前有两种,一种是formde formstyle为fsStayOnTop,但失去焦点后该窗口变灰
且其他如果还有窗口在此窗口后生成,而且属性也是fsstayoontop就本身到后面了。
另外一种是利用form.showmodal,这样此窗口弹在最前并且必须响应
而你说的第二个问题可能和你保存文件时的函数写法有关,你必须保存时有后缀名,还有
你需要仔细查看帮助中说明。
 
1.用
setwindowpos函数就可以了。写法如下:
setwindowpos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);

2.richedit保存时,你是不是没有把原来的.rtf去掉。就是在Combobox中没有选*.*类型。
 
为什么下面不行?
procedure TMainForm.CreateParams(var Params:TCreateParams );
begin
inherited CreateParams(Params);
with Params do
begin
ExStyle :=ExStyle or WS_EX_TOPMOST;
end;
end;
 
QianQi:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
一定可以!!!
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure CreateParams(var Params: TCreateParams);override; //注意
private

{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.DFM}

procedure TForm1.CreateParams(var Params:TCreateParams );
begin
inherited CreateParams(Params);
with Params do
begin
ExStyle :=ExStyle or WS_EX_TOPMOST;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
end;

end.
 
多人接受答案了。
 
后退
顶部