Text元件 |
尚未結案
|
Paicaso
中階會員 發表:140 回覆:124 積分:52 註冊:2002-09-04 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
banson1716
高階會員 發表:55 回覆:182 積分:167 註冊:2002-04-14 發送簡訊給我 |
元件作法比較快
若不會使用UAlnEdit元件我可作範例提供參考
------------------------------------------
unit UAlnEdit;
interface
uses
WinProcs,WinTypes, Messages, Classes, Controls, StdCtrls, Clipbrd; type
TAlignEdit = class(TEdit)
private
FAlignment:TAlignment;
protected
procedure CreateParams(var Params:TCreateParams); override;
procedure KeyPress(var Key:Char); override;
procedure SetAlignment(Value:TAlignment);
procedure CMEnter(var Msg: TCMGotFocus); message CM_ENTER;
procedure WMPaste(var Message: TWMPaste); message WM_PASTE;
public
constructor Create(AOwner:TComponent); override;
published
property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
end; procedure Register; implementation Constructor TAlignEdit.Create(AOwner:TComponent);
begin
inherited Create(AOwner);
FAlignment:=taLeftJustify;
end; procedure TAlignEdit.CreateParams(var Params: TCreateParams);
const
Alignments: array[TAlignment] of Longint=(ES_LEFT,ES_RIGHT,ES_CENTER);
begin
inherited CreateParams(Params);
Params.Style:=Params.Style or ES_MULTILINE or Alignments[FAlignment];
end; procedure TAlignEdit.KeyPress(var Key:Char);
begin
inherited KeyPress(Key);
if (Key=#13) or (Key=#10) then Key:=#0;
end; procedure TAlignEdit.SetAlignment(Value:TAlignment);
begin
if FAlignment<>Value then begin
FAlignment:=Value;
RecreateWnd;
end;
end; procedure TAlignEdit.CMEnter(var Msg:TCMGotFocus);
begin
if AutoSelect and not (csLButtonDown in ControlState) then SelectAll;
inherited;
end; {This code sent to me by Michael Richter mri@ba-glauchau.de}
procedure TAlignEdit.WMPaste(var Message: TWMPaste);
var
SGlobalHandel :THandle;
Ptr :PChar;
Size :Longint;
i :Longint;
s :string;
begin
s:='';
if OpenClipboard(Handle) then begin
try
if Clipboard.HasFormat(CF_TEXT) then begin
SGlobalHandel:=GetClipboardData(CF_TEXT);
if SGlobalHandel<>0 then begin
Size:=GlobalSize(SGlobalHandel);
Ptr :=GlobalLock(SGlobalHandel);
if Ptr<>nil then begin
i:=0;
while (i
引言: 請問Text元件如何向右對齊 |
Paicaso
中階會員 發表:140 回覆:124 積分:52 註冊:2002-09-04 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
wenberg
一般會員 發表:6 回覆:15 積分:9 註冊:2002-12-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |