parent
d30fed5625
commit
be462063d4
|
|
@ -106,8 +106,15 @@ type TRunEditerForm = class(TEditerForm)
|
|||
begin
|
||||
OpenAndGotoFileByName(n);
|
||||
end
|
||||
_wapi.ShowWindow(self.Handle, SW_SHOWNORMAL);//确保显示
|
||||
_Wapi.ForegroundWindow(self.Handle);//PostMessageA(self.Handle,WM_USER,303,10);//放到前端
|
||||
//
|
||||
h := self.Handle;
|
||||
if _wapi.IsZoomed(h) then
|
||||
begin
|
||||
_wapi.ShowWindow(h,SW_MAXIMIZE);
|
||||
end else
|
||||
_wapi.ShowWindow(h, SW_SHOWNORMAL);//确保显示
|
||||
//_wapi.ShowWindow(self.Handle, SW_SHOWNORMAL);//确保显示
|
||||
_Wapi.ForegroundWindow(h);//PostMessageA(self.Handle,WM_USER,303,10);//放到前端
|
||||
|
||||
end {else
|
||||
if e.wparam = 303 and e.lparam=10 then
|
||||
|
|
|
|||
|
|
@ -2218,10 +2218,10 @@ type TDMainMenu = class(TDMenuBase)
|
|||
begin
|
||||
return GetMainMenuBitmapInfo();
|
||||
end
|
||||
function CheckParentWnd(Pwnd);override;
|
||||
{function CheckParentWnd(Pwnd);override;
|
||||
begin
|
||||
return (Pwnd is class(TVCForm)) ;
|
||||
end
|
||||
end }
|
||||
|
||||
function WndClass();override;
|
||||
begin
|
||||
|
|
@ -2527,7 +2527,8 @@ C6D53F7109130000000049454E44AE42608200";
|
|||
function Create(AOwner);override;
|
||||
begin
|
||||
inherited;
|
||||
fiscontainerdcmp := false;
|
||||
//fiscontainerdcmp := false;
|
||||
fiscontainerdcmp := true;
|
||||
DefaultEvent := array(
|
||||
"event":"onselchanged",
|
||||
"name":"sel",
|
||||
|
|
@ -2613,8 +2614,8 @@ type TDListView = class(TDComponent)
|
|||
function Create(AOwner);override;
|
||||
begin
|
||||
inherited;
|
||||
fiscontainerdcmp := false;
|
||||
fiscontainerdcmp := false;
|
||||
//fiscontainerdcmp := false;
|
||||
fiscontainerdcmp := true;
|
||||
DefaultEvent := array(
|
||||
"event":"onselchanged",
|
||||
"name":"sel",
|
||||
|
|
@ -2653,8 +2654,8 @@ type TDgridctl = class(TDComponent)
|
|||
function Create(AOwner);override;
|
||||
begin
|
||||
inherited;
|
||||
fiscontainerdcmp := false;
|
||||
fiscontainerdcmp := false;
|
||||
//fiscontainerdcmp := false;
|
||||
fiscontainerdcmp := true;
|
||||
DefaultEvent := array(
|
||||
"event":"ondrawcell",
|
||||
"name":"drawcell",
|
||||
|
|
|
|||
|
|
@ -824,6 +824,9 @@ type TPropGrid = class(TTSLDataGrid)
|
|||
FCellEditers := array();
|
||||
//OndblClick := nil;
|
||||
FDesigner := AOwner;
|
||||
OnMouseWheel := function(o,e)begin
|
||||
currentLeave();
|
||||
end
|
||||
end
|
||||
function Recycling();override;
|
||||
begin
|
||||
|
|
@ -1558,7 +1561,7 @@ type TGridCellNaturalEdit = class(TGridPropertyRender,TPropertyNatural)
|
|||
{**
|
||||
@explan(綱츠) 잼역긍서목綾 %%
|
||||
**}
|
||||
if not(FEdit is class(TEdit)) then exit;
|
||||
if not(FEdit is class(TPopEditCtrl)) then exit;
|
||||
FEdit.text := "";
|
||||
FEdit.visible := false;
|
||||
inherited;
|
||||
|
|
|
|||
|
|
@ -149,6 +149,10 @@ type tsgtkapi = class(tgtkapis)
|
|||
return r;
|
||||
end
|
||||
end
|
||||
function IsZoomed(hd:pointer)
|
||||
begin
|
||||
return 0;
|
||||
end
|
||||
function GetWindowTextA(h,s,l);
|
||||
begin
|
||||
if not(h>0 or h<0) then return ;
|
||||
|
|
@ -1516,7 +1520,7 @@ type tsgtkapi = class(tgtkapis)
|
|||
cairo_arc(dc, 0, 0, rx, 0, 2 * 3.14);
|
||||
if brc=0 then
|
||||
begin
|
||||
cairo_set_source_rgb(dc,0,0,0);
|
||||
cairo_set_source_rgb(dc,0,0,0);
|
||||
end else
|
||||
begin
|
||||
gtk_rgb_color_rgb(brc,rc,gc,bc);
|
||||
|
|
@ -1564,27 +1568,240 @@ type tsgtkapi = class(tgtkapis)
|
|||
end
|
||||
Function Chord(hdc :pointer;l:integer;t:integer;r:integer;b:integer;wid:integer;ht:integer):integer;
|
||||
begin
|
||||
x := gtk_object_get_data(dc,"viewport.x");
|
||||
y := gtk_object_get_data(dc,"viewport.y");
|
||||
pc := gtk_object_get_data(dc,"pen.color");
|
||||
pw := gtk_object_get_data(dc,"pen.width");
|
||||
brc := gtk_object_get_data(dc,"brush.color");
|
||||
direct := gtk_object_get_data(dc,"arcdirection");
|
||||
if pw>0 then cairo_set_line_width(dc,pw);
|
||||
else cairo_set_line_width(dc,1);
|
||||
mx := (l+r)/2+x;
|
||||
my := (b+t)/2+y;
|
||||
cairo_translate(dc,mx,my);
|
||||
rx := (r-l)/2;
|
||||
ry := (b-t)/2;
|
||||
cairo_scale(dc,1,ry/rx);
|
||||
cairo_applay_pen_style(dc);
|
||||
xx1 := nXRadial1-mx;
|
||||
yy1 := (nYRadial1-my);
|
||||
xx2 := nXRadial2-mx;
|
||||
yy2 := (nYRadial2-my);
|
||||
arg1 := getargbyxy(xx1,yy1);
|
||||
arg2 := getargbyxy(xx2,yy2);
|
||||
if direct=2 then
|
||||
begin
|
||||
cairo_arc(dc, 0, 0, rx, arg1, arg2);
|
||||
end
|
||||
else
|
||||
begin
|
||||
cairo_arc(dc, 0, 0, rx, arg2, arg1);
|
||||
end
|
||||
|
||||
if brc=0 then
|
||||
begin
|
||||
cairo_set_source_rgb(dc,0,0,0);
|
||||
end else
|
||||
begin
|
||||
gtk_rgb_color_rgb(brc,rc,gc,bc);
|
||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
||||
end
|
||||
cairo_move_to(dc,cos(arg1)*rx,sin(arg1)*rx);
|
||||
cairo_line_to(dc,cos(arg2)*rx,sin(arg2)*rx);
|
||||
cairo_fill_preserve(dc);
|
||||
if pc=0 then
|
||||
begin
|
||||
cairo_set_source_rgb(dc,0,0,0);
|
||||
end else
|
||||
begin
|
||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
||||
end
|
||||
|
||||
cairo_stroke(dc);
|
||||
cairo_scale(dc,1,rx/ry);
|
||||
cairo_translate(dc,0-mx,0-my);
|
||||
end
|
||||
Function Pie(hdc :pointer;nLeftRect:integer;nTopRect:integer;nRightRect:integer;nBottomRect:integer;nXRadial1:integer;nYRadial1:integer;nXRadial2:integer;nYRadial2:integer):integer;
|
||||
Function Pie(dc :pointer;l:integer;t:integer;r:integer;b:integer;nXRadial1:integer;nYRadial1:integer;nXRadial2:integer;nYRadial2:integer):integer;
|
||||
begin
|
||||
x := gtk_object_get_data(dc,"viewport.x");
|
||||
y := gtk_object_get_data(dc,"viewport.y");
|
||||
pc := gtk_object_get_data(dc,"pen.color");
|
||||
pw := gtk_object_get_data(dc,"pen.width");
|
||||
brc := gtk_object_get_data(dc,"brush.color");
|
||||
direct := gtk_object_get_data(dc,"arcdirection");
|
||||
if pw>0 then cairo_set_line_width(dc,pw);
|
||||
else cairo_set_line_width(dc,1);
|
||||
mx := (l+r)/2+x;
|
||||
my := (b+t)/2+y;
|
||||
cairo_translate(dc,mx,my);
|
||||
rx := (r-l)/2;
|
||||
ry := (b-t)/2;
|
||||
cairo_scale(dc,1,ry/rx);
|
||||
cairo_applay_pen_style(dc);
|
||||
xx1 := nXRadial1-mx;
|
||||
yy1 := (nYRadial1-my);
|
||||
xx2 := nXRadial2-mx;
|
||||
yy2 := (nYRadial2-my);
|
||||
arg1 := getargbyxy(xx1,yy1);
|
||||
arg2 := getargbyxy(xx2,yy2);
|
||||
if direct=2 then
|
||||
begin
|
||||
cairo_arc(dc, 0, 0, rx, arg1, arg2);
|
||||
end
|
||||
else
|
||||
begin
|
||||
cairo_arc(dc, 0, 0, rx, arg2, arg1);
|
||||
end
|
||||
|
||||
if brc=0 then
|
||||
begin
|
||||
cairo_set_source_rgb(dc,0,0,0);
|
||||
end else
|
||||
begin
|
||||
gtk_rgb_color_rgb(brc,rc,gc,bc);
|
||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
||||
end
|
||||
cairo_move_to(dc,cos(arg1)*rx,sin(arg1)*rx);
|
||||
cairo_line_to(dc,0,0);
|
||||
cairo_line_to(dc,cos(arg2)*rx,sin(arg2)*rx);
|
||||
cairo_fill_preserve(dc);
|
||||
if pc=0 then
|
||||
begin
|
||||
cairo_set_source_rgb(dc,0,0,0);
|
||||
end else
|
||||
begin
|
||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
||||
end
|
||||
|
||||
cairo_stroke(dc);
|
||||
cairo_scale(dc,1,rx/ry);
|
||||
cairo_translate(dc,0-mx,0-my);
|
||||
end
|
||||
Function SetArcDirection(hdc :pointer;direct:integer):integer;
|
||||
Function SetArcDirection(dc :pointer;direct:integer):integer;
|
||||
begin
|
||||
|
||||
if direct = 1 or direct = 2 then
|
||||
begin
|
||||
gtk_object_set_data(dc,"arcdirection",direct);
|
||||
end
|
||||
//AD_CLOCKWISE:=2;
|
||||
//AD_COUNTERCLOCKWISE := 1;
|
||||
end
|
||||
Function Arc(hdc :pointer;nLeftRect:integer;nTopRect:integer;nRightRect:integer;nBottomRect:integer;nXRadial1:integer;nYRadial1:integer;nXRadial2:integer;nYRadial2:integer):integer;
|
||||
private
|
||||
function getargbyxy(x,y_);
|
||||
begin
|
||||
y := y_;
|
||||
pi := pi();
|
||||
if x=0 and y>=0 then
|
||||
begin
|
||||
|
||||
return pi/2;
|
||||
end
|
||||
if x=0 and y<=0 then
|
||||
begin
|
||||
return pi*3/2;
|
||||
end
|
||||
if x>=0 and y>=0 then
|
||||
begin
|
||||
ph := 1;
|
||||
end else
|
||||
if x<=0 and y>=0 then
|
||||
begin
|
||||
ph := 2;
|
||||
end else
|
||||
if x<=0 and y<=0 then
|
||||
begin
|
||||
ph := 3;
|
||||
end else
|
||||
if x>=0 and y<=0 then
|
||||
begin
|
||||
ph := 4;
|
||||
end
|
||||
arg := arctan(y/x);
|
||||
if ph=2 or ph = 3 then arg +=pi;
|
||||
return arg;
|
||||
end
|
||||
public
|
||||
//Function Arc(hdc :pointer;nLeftRect:integer;nTopRect:integer;nRightRect:integer;nBottomRect:integer;nXRadial1:integer;nYRadial1:integer;nXRadial2:integer;nYRadial2:integer):integer;
|
||||
Function Arc(dc :pointer;l:integer;t:integer;r:integer;b:integer;nXRadial1:integer;nYRadial1:integer;nXRadial2:integer;nYRadial2:integer):integer;
|
||||
begin
|
||||
x := gtk_object_get_data(dc,"viewport.x");
|
||||
y := gtk_object_get_data(dc,"viewport.y");
|
||||
pc := gtk_object_get_data(dc,"pen.color");
|
||||
pw := gtk_object_get_data(dc,"pen.width");
|
||||
//brc := gtk_object_get_data(dc,"brush.color");
|
||||
direct := gtk_object_get_data(dc,"arcdirection");
|
||||
if pw>0 then cairo_set_line_width(dc,pw);
|
||||
else cairo_set_line_width(dc,1);
|
||||
mx := (l+r)/2+x;
|
||||
my := (b+t)/2+y;
|
||||
cairo_translate(dc,mx,my);
|
||||
rx := (r-l)/2;
|
||||
ry := (b-t)/2;
|
||||
cairo_scale(dc,1,ry/rx);
|
||||
cairo_applay_pen_style(dc);
|
||||
xx1 := nXRadial1-mx;
|
||||
yy1 := (nYRadial1-my);
|
||||
xx2 := nXRadial2-mx;
|
||||
yy2 := (nYRadial2-my);
|
||||
arg1 := getargbyxy(xx1,yy1);
|
||||
arg2 := getargbyxy(xx2,yy2);
|
||||
if direct=2 then
|
||||
begin
|
||||
cairo_arc(dc, 0, 0, rx, arg1, arg2);
|
||||
end
|
||||
else
|
||||
begin
|
||||
cairo_arc(dc, 0, 0, rx, arg2, arg1);
|
||||
end
|
||||
{if brc=0 then
|
||||
begin
|
||||
cairo_set_source_rgb(dc,0,0,0);
|
||||
end else
|
||||
begin
|
||||
gtk_rgb_color_rgb(brc,rc,gc,bc);
|
||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
||||
end
|
||||
cairo_fill_preserve(dc); }
|
||||
if pc=0 then
|
||||
begin
|
||||
cairo_set_source_rgb(dc,0,0,0);
|
||||
end else
|
||||
begin
|
||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
||||
end
|
||||
cairo_stroke(dc);
|
||||
cairo_scale(dc,1,rx/ry);
|
||||
cairo_translate(dc,0-mx,0-my);
|
||||
end
|
||||
Function Polygon(hdc :pointer;points:array of integer;n:integer):integer;
|
||||
begin
|
||||
|
||||
end
|
||||
Function PolyBezier(hdc :pointer;points:array of integer;n:integer):integer;
|
||||
Function PolyBezier(dc :pointer;points:array of integer;n:integer):integer;
|
||||
begin
|
||||
|
||||
if length(PolyBezier)<6 then return 0;
|
||||
x := gtk_object_get_data(dc,"viewport.x");
|
||||
y := gtk_object_get_data(dc,"viewport.y");
|
||||
pc := gtk_object_get_data(dc,"pen.color");
|
||||
pw := gtk_object_get_data(dc,"pen.width");
|
||||
if pw>0 then cairo_set_line_width(dc,pw);
|
||||
else cairo_set_line_width(dc,1);
|
||||
if pc=0 then
|
||||
begin
|
||||
cairo_set_source_rgb(dc,0,0,0);
|
||||
end else
|
||||
begin
|
||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
||||
end
|
||||
cairo_move_to(dc,points[0]+x,Points[1]+y);
|
||||
cairo_applay_pen_style(dc);
|
||||
cairo_curve_to(dc,points[0],points[1],points[2],points[3],points[4],points[5]);
|
||||
cairo_stroke(dc);
|
||||
return 1;
|
||||
end
|
||||
Function SetPolyFillMode(hdc :pointer;md:integer):integer;
|
||||
begin
|
||||
|
|
|
|||
|
|
@ -2528,7 +2528,7 @@ type tcustomedit=class(TCustomControl)
|
|||
begin
|
||||
if FEditable then
|
||||
begin
|
||||
rc := ClientRect;
|
||||
rc := geteditrect();//ClientRect;
|
||||
FEditable.ClientRect := rc;
|
||||
end
|
||||
inherited;
|
||||
|
|
@ -2595,6 +2595,10 @@ type tcustomedit=class(TCustomControl)
|
|||
@param(onlimitlength)(integer)设置输入字符的长度%%
|
||||
**}
|
||||
private
|
||||
function geteditrect();virtual;
|
||||
begin
|
||||
return ClientRect;
|
||||
end
|
||||
function getBorder();
|
||||
begin
|
||||
if FEditable then return FEditable.Border;
|
||||
|
|
|
|||
|
|
@ -250,11 +250,13 @@ begin
|
|||
begin
|
||||
this.DoOnMessage(d);
|
||||
end
|
||||
end
|
||||
end ;
|
||||
sleep(1);
|
||||
end else
|
||||
begin
|
||||
sleep(20);
|
||||
sleep(10);
|
||||
end
|
||||
tslprocessmessages(false); //20230428添加tsl消息分发
|
||||
end
|
||||
end
|
||||
type TArray = class
|
||||
|
|
|
|||
|
|
@ -254,6 +254,8 @@ type twindowsapi = class()
|
|||
function GetFocus():pointer;stdcall;external "User32.dll" name "GetFocus";
|
||||
function SetLayeredWindowAttributes(hwnd:pointer;crKey:integer;bAlpha:byte;dwFlags:integer):integer;stdcall;external "User32.dll" name "SetLayeredWindowAttributes";
|
||||
function IsWindow(hd:pointer):integer;stdcall;external "User32.dll" name "IsWindow";
|
||||
function IsZoomed(hd:pointer):integer;stdcall;external "User32.dll" name "IsZoomed";
|
||||
function IsIconic(hd:pointer):integer;stdcall;external "User32.dll" name "IsIconic";
|
||||
function IsWindowVisible(hd:pointer):integer;stdcall;external "User32.dll" name "IsWindowVisible";
|
||||
function GetWindow(hd:pointer;cd:integer):pointer;stdcall;external "User32.dll" name "GetWindow";
|
||||
//function GetNextWindow(hd:pointer;cd:integer):pointer;stdcall;external "User32.dll" name "GetNextWindow";
|
||||
|
|
@ -516,7 +518,8 @@ type twindowsapi = class()
|
|||
Function Rectangle(hdc :pointer;l:integer;t:integer;r:integer;b:integer):integer;stdcall;external "Gdi32.dll" name "Rectangle";
|
||||
Function Ellipse(hdc :pointer;l:integer;t:integer;r:integer;b:integer):integer;stdcall;external "Gdi32.dll" name "Ellipse";
|
||||
Function RoundRect(hdc :pointer;l:integer;t:integer;r:integer;b:integer;wid:integer;ht:integer):integer;stdcall;external "Gdi32.dll" name "RoundRect";
|
||||
Function Chord(hdc :pointer;l:integer;t:integer;r:integer;b:integer;wid:integer;ht:integer):integer;stdcall;external "Gdi32.dll" name "Chord";
|
||||
//Function Chord(hdc :pointer;l:integer;t:integer;r:integer;b:integer;wid:integer;ht:integer):integer;stdcall;external "Gdi32.dll" name "Chord";
|
||||
Function Chord(hdc :pointer;nLeftRect:integer;nTopRect:integer;nRightRect:integer;nBottomRect:integer;nXRadial1:integer;nYRadial1:integer;nXRadial2:integer;nYRadial2:integer):integer;stdcall;external "Gdi32.dll" name "Chord";
|
||||
Function Pie(hdc :pointer;nLeftRect:integer;nTopRect:integer;nRightRect:integer;nBottomRect:integer;nXRadial1:integer;nYRadial1:integer;nXRadial2:integer;nYRadial2:integer):integer;stdcall;external "Gdi32.dll" name "Pie";
|
||||
Function SetArcDirection(hdc :pointer;direct:integer):integer;stdcall;external "Gdi32.dll" name "SetArcDirection";
|
||||
Function Arc(hdc :pointer;nLeftRect:integer;nTopRect:integer;nRightRect:integer;nBottomRect:integer;nXRadial1:integer;nYRadial1:integer;nXRadial2:integer;nYRadial2:integer):integer;stdcall;external "Gdi32.dll" name "Arc";
|
||||
|
|
|
|||
Loading…
Reference in New Issue