parent
97fbfda3ac
commit
1c0fe31233
|
|
@ -3955,6 +3955,7 @@ type TEditer=class(TCustomcontrol) //
|
|||
begin
|
||||
for i,v in fs do
|
||||
begin
|
||||
if not FIsFinding then break;
|
||||
ri := matchword(i,d);
|
||||
if ri then
|
||||
begin
|
||||
|
|
|
|||
|
|
@ -1795,7 +1795,6 @@ type TTsfFileParser = class() //
|
|||
end
|
||||
"parserstring":
|
||||
begin
|
||||
mtic;
|
||||
r := parserstring(o,d);
|
||||
return r;
|
||||
end
|
||||
|
|
@ -1863,7 +1862,7 @@ type TTsfFileParser = class() //
|
|||
function parserstring(o,d);
|
||||
begin
|
||||
rti := 0;
|
||||
rt := array();
|
||||
rt := array();
|
||||
m := d["minus"];
|
||||
if ifstring(m) then m := lowercase(m);
|
||||
filechanged(m);
|
||||
|
|
@ -2147,7 +2146,7 @@ type TTsfFileParser = class() //
|
|||
begin
|
||||
return ReadParseredFile((n+".tsf"),true);
|
||||
end
|
||||
end
|
||||
end
|
||||
function parserafile(dir,v);
|
||||
begin
|
||||
fn := lowercase( v["FileName"]);
|
||||
|
|
@ -2242,11 +2241,8 @@ type TTsfFileParser = class() //
|
|||
if FCacheDir then
|
||||
begin
|
||||
fn := FCacheDir+fiofs+"lasttime"+fiofs+ModifyFname(n)+".t";
|
||||
if importfile(ftstream(),"",fn,d)=1 and ifarray(d) then
|
||||
begin
|
||||
nns := d["nspace"];
|
||||
nn := d["name"];
|
||||
FNsCaches[nn][nns] := 1;
|
||||
if importfile(ftstream(),"",fn,d)=1 then
|
||||
begin
|
||||
return d;
|
||||
end
|
||||
end
|
||||
|
|
@ -2254,22 +2250,36 @@ type TTsfFileParser = class() //
|
|||
function ReadParseredFile(n,g); //¶ÁÈ¡½âÎöµÄÎļþ
|
||||
begin
|
||||
if FCacheDir then
|
||||
begin
|
||||
begin
|
||||
ln := lowercase(n);
|
||||
if not ifarray(FFilePaths) then FFilePaths := array();
|
||||
if not(FFileNames[lowercase(n)]) then return ;
|
||||
if not(FFileNames[ln]) then return ;
|
||||
if not ifarray(FCacheS ) then FCacheS := array();
|
||||
d := FCacheS[lowercase(n)];
|
||||
if d then
|
||||
fp := FCacheS[ln,"fullpath"];
|
||||
if fp then
|
||||
begin
|
||||
FFilePaths[lowercase(n)] := d["fullpath"];
|
||||
if g then return d;
|
||||
FFilePaths[ln] := fp;
|
||||
nns := FCacheS[ln,"nspace"];
|
||||
if nns then
|
||||
begin
|
||||
nn := FCacheS[ln,"name"];
|
||||
FNsCaches[nn][nns] := 1;
|
||||
end
|
||||
if g then return FCacheS[ln];
|
||||
return 1;
|
||||
end
|
||||
fn := FCacheDir+fiofs+ModifyFname(n)+".p";
|
||||
if importfile(ftstream(),"",fn,d)=1 and ifarray(d) then
|
||||
begin
|
||||
FCacheS[lowercase(n)] := d;//new tparserdobject(d);
|
||||
FFilePaths[lowercase(n)] := d["fullpath"];
|
||||
FCacheS[ln] := d;//new tparserdobject(d);
|
||||
FFilePaths[ln] := d["fullpath"];
|
||||
nns := d["nspace"];
|
||||
if nns then
|
||||
begin
|
||||
nn := d["name"];
|
||||
FNsCaches[nn][nns] := 1;
|
||||
end
|
||||
|
||||
if g then return d;
|
||||
return 1;
|
||||
end
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ type tcustomscrollcontrol = class(TCustomControl)
|
|||
|
||||
function SetWhileStep(v);
|
||||
begin
|
||||
if not v>=1 then return ;
|
||||
if not(v>=1) then return ;
|
||||
nv := integer(v);
|
||||
if FWhileStep=nv then return ;
|
||||
FWhileStep := nv;
|
||||
|
|
@ -333,16 +333,18 @@ type tcustomscrollcontrol = class(TCustomControl)
|
|||
_wapi.GetScrollInfo(hwnd,SB_VERT,FSI._getptr_);
|
||||
// 保存当前滑块位置,迟些进行比较
|
||||
yPos := FSI.nPos;
|
||||
dd := 0;
|
||||
if e.delta<0 and FSI.nMax>yPos then
|
||||
dd := 0;
|
||||
edelta := e.delta;
|
||||
ew := abs(round(edelta/120));
|
||||
if edelta<0 and FSI.nMax>yPos then
|
||||
begin
|
||||
//dd++;
|
||||
dd += FWhileStep;
|
||||
dd += FWhileStep*ew;
|
||||
end
|
||||
if e.delta>0 and FSI.nMin<yPos then
|
||||
if edelta>0 and FSI.nMin<yPos then
|
||||
begin
|
||||
//dd--;
|
||||
dd -= FWhileStep;
|
||||
dd -= FWhileStep*ew;
|
||||
end
|
||||
if not dd then return;
|
||||
FSI.fMask := SIF_POS;
|
||||
|
|
|
|||
|
|
@ -6441,30 +6441,40 @@ type tgtk_ctl_scroll_window = class(tgtk_ctl_object)
|
|||
end
|
||||
if ri and rxy then
|
||||
begin
|
||||
|
||||
|
||||
//if hasMessageFromGtkMessageQueue(-1,_const.LM_MOUSEWHEEL) then return true; //20230417ÔÝʱÆÁ±Î
|
||||
if hasMessageFromGtkMessageQueue(-1,_const.WM_SIZE) then return true;
|
||||
if hasMessageFromGtkMessageQueue(-1,_const.WM_MOUSEMOVE) then return true;
|
||||
|
||||
FScrollT := now();
|
||||
dr := (dr=1)?-1:1;
|
||||
|
||||
xy := makelong(rxy[0],rxy[1]);
|
||||
ctl := 0;
|
||||
global g_gtk_buttontable,g_gtk_keytable;
|
||||
if ifarray(g_gtk_buttontable) then
|
||||
begin
|
||||
ctl .|= g_gtk_buttontable[0];
|
||||
ctl .|= g_gtk_buttontable[1];
|
||||
end
|
||||
if ifarray(g_gtk_keytable) then
|
||||
begin
|
||||
if g_gtk_keytable[0x10] then ctl .|= _const.MK_Shift;
|
||||
if g_gtk_keytable[0x11] then ctl .|= _const.MK_Control;
|
||||
end
|
||||
dr := makelong(ctl,dr);
|
||||
//clearMessageFromGtkMessageQueue(ri,_const.LM_MOUSEWHEEL);
|
||||
AddMessageToGtkMessageQueue(ri,_const.LM_MOUSEWHEEL,dr,xy,1);
|
||||
return true;
|
||||
//if hasMessageFromGtkMessageQueue(-1,_const.WM_MOUSEMOVE) then return true;
|
||||
WHEEL_DELTA := 120;
|
||||
FScrollT := now();
|
||||
dr := (dr=1)?(-WHEEL_DELTA):(WHEEL_DELTA);
|
||||
whist := feacheasylostMessageFromGtkMessageQueue(ri,_const.LM_MOUSEWHEEL);
|
||||
for ii,iiv in whist do
|
||||
begin
|
||||
iivw := iiv[2];
|
||||
lowuperdword(iivw,iivc,iivdir);
|
||||
dr+=iivdir;
|
||||
end
|
||||
if dr=0 then return true;
|
||||
|
||||
xy := makelong(rxy[0],rxy[1]);
|
||||
ctl := 0;
|
||||
global g_gtk_buttontable,g_gtk_keytable;
|
||||
if ifarray(g_gtk_buttontable) then
|
||||
begin
|
||||
ctl .|= g_gtk_buttontable[0];
|
||||
ctl .|= g_gtk_buttontable[1];
|
||||
end
|
||||
if ifarray(g_gtk_keytable) then
|
||||
begin
|
||||
if g_gtk_keytable[0x10] then ctl .|= _const.MK_Shift;
|
||||
if g_gtk_keytable[0x11] then ctl .|= _const.MK_Control;
|
||||
end
|
||||
dr := makelong(ctl,dr);
|
||||
//clearMessageFromGtkMessageQueue(ri,_const.LM_MOUSEWHEEL);
|
||||
AddMessageToGtkMessageQueue(ri,_const.LM_MOUSEWHEEL,dr,xy,1);
|
||||
return true;
|
||||
end
|
||||
|
||||
end
|
||||
|
|
@ -6793,16 +6803,40 @@ type tGtkMessageQueue=class //
|
|||
begin
|
||||
Clean();
|
||||
end
|
||||
///////////////处理一下////////////////
|
||||
if r and r[1]=0x020a then
|
||||
begin
|
||||
|
||||
end
|
||||
///////////////////////
|
||||
unlock();
|
||||
return r;
|
||||
end
|
||||
function feacheasylostmessage(h,m);
|
||||
begin
|
||||
r := array();
|
||||
ri := 0;
|
||||
idx := FCurrent;
|
||||
lock();
|
||||
while idx<FLen do
|
||||
begin
|
||||
if FData[idx][0]=h and FData[idx][1]=m then
|
||||
begin
|
||||
r[ri++] := FData[idx];
|
||||
FData[idx][0]:= 0;
|
||||
end
|
||||
idx++;
|
||||
end
|
||||
unlock();
|
||||
return r;
|
||||
end
|
||||
function cleaneasyLostMessage(h,m);
|
||||
begin
|
||||
idx := FCurrent;
|
||||
lock();
|
||||
while idx<FLen do
|
||||
begin
|
||||
if FData[idx][0]=h and FData[idx][0]=m then
|
||||
if FData[idx][0]=h and FData[idx][1]=m then
|
||||
begin
|
||||
FData[idx][0]:= 0;
|
||||
end
|
||||
|
|
@ -6815,7 +6849,7 @@ type tGtkMessageQueue=class //
|
|||
idx := FCurrent;
|
||||
if idx<FLen then
|
||||
begin
|
||||
if((h=-1)or(FData[idx][0]=h))and FData[idx][0]=m then
|
||||
if((h=-1)or(FData[idx][0]=h))and FData[idx][1]=m then
|
||||
begin
|
||||
return 1;
|
||||
end
|
||||
|
|
@ -6881,6 +6915,12 @@ begin
|
|||
GLobal G_GTK_MESSAGE_QUEUE_A;
|
||||
if G_GTK_MESSAGE_QUEUE_A then G_GTK_MESSAGE_QUEUE_A.haseasyLostMessage(h,m);
|
||||
end
|
||||
function feacheasylostMessageFromGtkMessageQueue(h,m); //获取容丢失的消息
|
||||
begin
|
||||
GLobal G_GTK_MESSAGE_QUEUE_A;
|
||||
if G_GTK_MESSAGE_QUEUE_A then return G_GTK_MESSAGE_QUEUE_A.feacheasylostmessage(h,m);
|
||||
end
|
||||
|
||||
function clearMessageFromGtkMessageQueue(h,m); //Çå³ýÏûÏ¢
|
||||
begin
|
||||
GLobal G_GTK_MESSAGE_QUEUE_A;
|
||||
|
|
|
|||
Loading…
Reference in New Issue