parent
6f0bb71708
commit
759e06ea4a
|
|
@ -64,7 +64,6 @@ type TFTSLScriptcustomMemo=class(TSYNmemoNorm)
|
||||||
FChangedFlag := false;
|
FChangedFlag := false;
|
||||||
FChangedLock := false;
|
FChangedLock := false;
|
||||||
Lineinterval := 3;
|
Lineinterval := 3;
|
||||||
FCOMPOSITIONFORM := new tagCOMPOSITIONFORM(nil);
|
|
||||||
font := array("height":18,"width":9,"escapement":0,"orientation":0,"weight":400,"italic":0,"underline":0,"strikeout":0,
|
font := array("height":18,"width":9,"escapement":0,"orientation":0,"weight":400,"italic":0,"underline":0,"strikeout":0,
|
||||||
"charset":0,"outprecision":0,"clipprecision":0,"quality":1,"pitchandfamily":1,"facename":"Courier New","color":0);
|
"charset":0,"outprecision":0,"clipprecision":0,"quality":1,"pitchandfamily":1,"facename":"Courier New","color":0);
|
||||||
//134
|
//134
|
||||||
|
|
@ -79,33 +78,6 @@ type TFTSLScriptcustomMemo=class(TSYNmemoNorm)
|
||||||
if HandleAllocated()then calldatafunction(FOnCaretChanged,self(true),new tuieventbase(0,0,0,0));
|
if HandleAllocated()then calldatafunction(FOnCaretChanged,self(true),new tuieventbase(0,0,0,0));
|
||||||
//echo tostn(self.CaretXY);
|
//echo tostn(self.CaretXY);
|
||||||
end
|
end
|
||||||
function WMIMESTARTCOMPOSITION(o,e):WM_IME_STARTCOMPOSITION;virtual;
|
|
||||||
begin
|
|
||||||
ime := ImmGetContext(self.Handle);
|
|
||||||
FCOMPOSITIONFORM.ptcurrentpos.cx := 200;
|
|
||||||
FCOMPOSITIONFORM.ptcurrentpos.cy := 200;
|
|
||||||
ImmSetCompositionWindow(ime,FCOMPOSITIONFORM._getptr_());
|
|
||||||
ImmReleaseContext(self.Handle,ime);
|
|
||||||
end
|
|
||||||
{$ifdef linux}
|
|
||||||
function ImmReleaseContext();
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
function ImmGetContext();
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
function ImmSetCompositionWindow();
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
function ImmSetStatusWindowPos();
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
{$else}
|
|
||||||
function ImmReleaseContext(h:pointer;ime:pointer):integer;stdcall;external "Imm32.dll" name "ImmReleaseContext";
|
|
||||||
function ImmGetContext(h:pointer):pointer;stdcall;external "Imm32.dll" name "ImmGetContext";
|
|
||||||
function ImmSetCompositionWindow(h:pointer;s:pointer):integer;stdcall;external "Imm32.dll" name "ImmSetCompositionWindow";
|
|
||||||
function ImmSetStatusWindowPos(h:pointer;s:pointer):integer;stdcall;external "Imm32.dll" name "ImmSetStatusWindowPos";
|
|
||||||
{$endif}
|
|
||||||
function InvalidateLines(FirstLine,LastLine:integer);override;
|
function InvalidateLines(FirstLine,LastLine:integer);override;
|
||||||
begin
|
begin
|
||||||
if not HandleAllocated()then return;
|
if not HandleAllocated()then return;
|
||||||
|
|
@ -306,34 +278,10 @@ type TFTSLScriptcustomMemo=class(TSYNmemoNorm)
|
||||||
FOnTextChanged;
|
FOnTextChanged;
|
||||||
FOnTextSetFocus;
|
FOnTextSetFocus;
|
||||||
FQuckKeys;
|
FQuckKeys;
|
||||||
FCOMPOSITIONFORM;
|
|
||||||
FOnCaretChanged;
|
FOnCaretChanged;
|
||||||
end
|
end
|
||||||
implementation
|
implementation
|
||||||
type tagCOMPOSITIONFORM=class(tslcstructureobj)
|
|
||||||
private
|
|
||||||
static SSTRUCT;
|
|
||||||
class function getstruct()
|
|
||||||
begin
|
|
||||||
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
|
||||||
("dwstyle","int",4),
|
|
||||||
("ptcurrentpos","intptr",0),
|
|
||||||
("rcarea","int[4]",array(0,0,0,0))),nil,nil,1);
|
|
||||||
return SSTRUCT;
|
|
||||||
end
|
|
||||||
public
|
|
||||||
function create()
|
|
||||||
begin
|
|
||||||
inherited create(getstruct(),ptr);
|
|
||||||
FPonter := new TCPoint();
|
|
||||||
_setvalue_("ptcurrentpos",FPonter._getptr_());
|
|
||||||
end
|
|
||||||
property dwstyle index "dwstyle" read _getvalue_ write _setvalue_;
|
|
||||||
property ptcurrentpos read FPonter;
|
|
||||||
property rcarea index "rcarea" read _getvalue_ write _setvalue_;
|
|
||||||
private
|
|
||||||
FPonter;
|
|
||||||
end
|
|
||||||
type TTslDebuga=class(TCustomControl)
|
type TTslDebuga=class(TCustomControl)
|
||||||
private //³ÉÔ±±äÁ¿
|
private //³ÉÔ±±äÁ¿
|
||||||
frunbtncall;
|
frunbtncall;
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ unit UTslMemo;
|
||||||
{$define linuxpop}
|
{$define linuxpop}
|
||||||
{$endif}
|
{$endif}
|
||||||
interface
|
interface
|
||||||
uses utslvclauxiliary,utslvclgdi,utslvclstdctl;
|
uses utslvclauxiliary,utslvclmemstruct,utslvclgdi,utslvclstdctl;
|
||||||
type TMemoLineItem=class() //编辑字符串行对象
|
type TMemoLineItem=class() //编辑字符串行对象
|
||||||
function Create(s);
|
function Create(s);
|
||||||
begin
|
begin
|
||||||
|
|
@ -3931,6 +3931,7 @@ type TSynCustomMemo = class(TCustomMemo)
|
||||||
function Create(AOwner);//构造
|
function Create(AOwner);//构造
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
|
FCOMPOSITIONFORM := new tagCOMPOSITIONFORM(nil);
|
||||||
FTabChar := " ";
|
FTabChar := " ";
|
||||||
end
|
end
|
||||||
function Recycling();override; //回收
|
function Recycling();override; //回收
|
||||||
|
|
@ -4048,7 +4049,37 @@ type TSynCustomMemo = class(TCustomMemo)
|
||||||
property Highlighter:thighlighter read FHighlighter write SetHighlighter; //语法高亮
|
property Highlighter:thighlighter read FHighlighter write SetHighlighter; //语法高亮
|
||||||
property Completion read FCompletion write SetCompletion; //自动完成
|
property Completion read FCompletion write SetCompletion; //自动完成
|
||||||
property TabChar read FTabChar write SetTabChar;
|
property TabChar read FTabChar write SetTabChar;
|
||||||
|
|
||||||
|
public //ÊäÈë·¨Ïà¹Ø
|
||||||
|
function WMIMESTARTCOMPOSITION(o,e):WM_IME_STARTCOMPOSITION;virtual;
|
||||||
|
begin
|
||||||
|
ime := ImmGetContext(self.Handle);
|
||||||
|
FCOMPOSITIONFORM.ptcurrentpos.cx := 200;
|
||||||
|
FCOMPOSITIONFORM.ptcurrentpos.cy := 200;
|
||||||
|
ImmSetCompositionWindow(ime,FCOMPOSITIONFORM._getptr_());
|
||||||
|
ImmReleaseContext(self.Handle,ime);
|
||||||
|
end
|
||||||
|
{$ifdef linux}
|
||||||
|
function ImmReleaseContext();
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
function ImmGetContext();
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
function ImmSetCompositionWindow();
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
function ImmSetStatusWindowPos();
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
{$else}
|
||||||
|
function ImmReleaseContext(h:pointer;ime:pointer):integer;stdcall;external "Imm32.dll" name "ImmReleaseContext";
|
||||||
|
function ImmGetContext(h:pointer):pointer;stdcall;external "Imm32.dll" name "ImmGetContext";
|
||||||
|
function ImmSetCompositionWindow(h:pointer;s:pointer):integer;stdcall;external "Imm32.dll" name "ImmSetCompositionWindow";
|
||||||
|
function ImmSetStatusWindowPos(h:pointer;s:pointer):integer;stdcall;external "Imm32.dll" name "ImmSetStatusWindowPos";
|
||||||
|
{$endif}
|
||||||
private
|
private
|
||||||
|
FCOMPOSITIONFORM;
|
||||||
FHighlighter;
|
FHighlighter;
|
||||||
FCompletion;
|
FCompletion;
|
||||||
FTabChar;
|
FTabChar;
|
||||||
|
|
@ -4305,6 +4336,7 @@ type TSynMemoNorm = class(TsynCustomMemo) //
|
||||||
FSheetTabFlage;
|
FSheetTabFlage;
|
||||||
end
|
end
|
||||||
Implementation
|
Implementation
|
||||||
|
|
||||||
function CreateATslMemoUndoItem(AReason,AStart,AEnd,ChangeText,SelMode);
|
function CreateATslMemoUndoItem(AReason,AStart,AEnd,ChangeText,SelMode);
|
||||||
begin
|
begin
|
||||||
return new TTslMemoUndoItem(AReason,AStart,AEnd,ChangeText,SelMode);
|
return new TTslMemoUndoItem(AReason,AStart,AEnd,ChangeText,SelMode);
|
||||||
|
|
|
||||||
|
|
@ -1412,6 +1412,30 @@ type Ttagmoduleentry32=class(tslcstructureobj)
|
||||||
property szmodule index "szmodule" read _getvalue_ write _setvalue_;
|
property szmodule index "szmodule" read _getvalue_ write _setvalue_;
|
||||||
property szexepath index "szexepath" read _getvalue_ write _setvalue_;
|
property szexepath index "szexepath" read _getvalue_ write _setvalue_;
|
||||||
end
|
end
|
||||||
|
type tagCOMPOSITIONFORM=class(tslcstructureobj)
|
||||||
|
private
|
||||||
|
static SSTRUCT;
|
||||||
|
class function getstruct()
|
||||||
|
begin
|
||||||
|
if not SSTRUCT then SSTRUCT := MemoryAlignmentCalculate(array(
|
||||||
|
("dwstyle","int",4),
|
||||||
|
("ptcurrentpos","intptr",0),
|
||||||
|
("rcarea","int[4]",array(0,0,0,0))),nil,nil,1);
|
||||||
|
return SSTRUCT;
|
||||||
|
end
|
||||||
|
public
|
||||||
|
function create()
|
||||||
|
begin
|
||||||
|
inherited create(getstruct(),ptr);
|
||||||
|
FPonter := new TCPoint();
|
||||||
|
_setvalue_("ptcurrentpos",FPonter._getptr_());
|
||||||
|
end
|
||||||
|
property dwstyle index "dwstyle" read _getvalue_ write _setvalue_;
|
||||||
|
property ptcurrentpos read FPonter;
|
||||||
|
property rcarea index "rcarea" read _getvalue_ write _setvalue_;
|
||||||
|
private
|
||||||
|
FPonter;
|
||||||
|
end
|
||||||
implementation
|
implementation
|
||||||
(*
|
(*
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4059,12 +4059,12 @@ type TCustomComboBoxbase=class(TCustomControl)
|
||||||
if csDesigning in ComponentState then return;
|
if csDesigning in ComponentState then return;
|
||||||
x := e.xpos;
|
x := e.xpos;
|
||||||
y := e.ypos;
|
y := e.ypos;
|
||||||
if x>1 and y>1 then return ShowDropDown(true);
|
//if x>1 and y>1 then return ShowDropDown(true);
|
||||||
return ;
|
|
||||||
if x>FBtnRect[0]and x<FBtnRect[2]and y>FBtnRect[1]and y<FBtnRect[3]then
|
if x>FBtnRect[0]and x<FBtnRect[2]and y>FBtnRect[1]and y<FBtnRect[3]then
|
||||||
begin
|
begin
|
||||||
ShowDropDown(true);
|
return ShowDropDown(true);
|
||||||
end
|
end
|
||||||
|
return ;
|
||||||
end
|
end
|
||||||
function ShowDropDown(flg);
|
function ShowDropDown(flg);
|
||||||
begin
|
begin
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue