1。 找本注册表的书,自己看看,或用优化大师
2。当然了,要不你知道rm的编码方式吗
3。
给你个源吗
//********************************************************//
type
TExtendedMemo = class(TMemo)
private
FRow: Longint;
FColumn: Longint;
FOnHScroll: TNotifyEvent;
FOnVScroll: TNotifyEvent;
procedure WMHScroll(var Msg: TWMHScroll)
message WM_HSCROLL;
procedure WMVScroll(var Msg: TWMVScroll)
message WM_VSCROLL;
procedure SetRow(Value: Longint);
procedure SetColumn(Value: Longint);
function GetRow: Longint;
function GetColumn: Longint;
protected
procedure HScroll
dynamic;
procedure VScroll
dynamic;
public
property Row: Longint read GetRow write SetRow;
property Column: Longint read GetColumn write SetColumn;
published
property OnHScroll: TNotifyEvent read FOnHScroll write FOnHScroll;
property OnVScroll: TNotifyEvent read FOnVScroll write FOnVScroll;
end;
procedure Register;
implementation
procedure TExtendedMemo.WMHScroll(var Msg: TWMHScroll);
begin
inherited;
HScroll;
end;
procedure TExtendedMemo.WMVScroll(var Msg: TWMVScroll);
begin
inherited;
VScroll;
end;
procedure TExtendedMemo.HScroll;
begin
if Assigned(FOnHScroll) then
FOnHScroll(self);
end;
procedure TExtendedMemo.VScroll;
begin
if Assigned(FOnVScroll) then
FOnVScroll(self);
end;
procedure TExtendedMemo.SetRow(Value: Longint);
begin
SelStart := Perform(EM_LINEINDEX, Value, 0);
FRow := SelStart;
end;
function TExtendedMemo.GetRow: Longint;
begin
Result := Perform(EM_LINEFROMCHAR, -1, 0);
end;
procedure TExtendedMemo.SetColumn(Value: Longint);
begin
if FColumn > Value then
FColumn := Value;
SelStart := Perform(EM_LINEINDEX, GetRow, 0) + FColumn;
end;
function TExtendedMemo.GetColumn: Longint;
begin
Result := SelStart - Perform(EM_LINEINDEX, -1, 0);
end;
end.
//************************************************//
4。 我不管,顺便问一句,帮我找份工作(待遇 给钱就行)