The size of that patch looks very big that half of changes are in Makefiles which are auto-generated during the build, so not relevant. The other changes are reviewed and looks OK for me.
--
Cheers, Abou Al Montacir
diff -Nru lazarus-2.2.4+dfsg1/components/chmhelp/lhelp/Makefile.fpc lazarus-2.2.6+dfsg1/components/chmhelp/lhelp/Makefile.fpc
--- lazarus-2.2.4+dfsg1/components/chmhelp/lhelp/Makefile.fpc 2022-09-25 12:37:16.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/chmhelp/lhelp/Makefile.fpc 2023-03-04 14:24:23.000000000 +0100
@@ -15,7 +15,7 @@
packages=rtl
[compiler]
-options=-gs -gl -Sghi -O3 -dlcl$(LCL_PLATFORM) $(DBG_OPTIONS)
+options=-gl -Sghi -O3 -dlcl$(LCL_PLATFORM) $(DBG_OPTIONS)
unittargetdir=lib/$(CPU_TARGET)-$(OS_TARGET)
unitdir=. $(LAZDIR)/components/lazutils/lib/$(CPU_TARGET)-$(OS_TARGET) \
$(LAZDIR)/packager/units/$(CPU_TARGET)-$(OS_TARGET) \
diff -Nru lazarus-2.2.4+dfsg1/components/codetools/finddeclarationtool.pas lazarus-2.2.6+dfsg1/components/codetools/finddeclarationtool.pas
--- lazarus-2.2.4+dfsg1/components/codetools/finddeclarationtool.pas 2022-09-25 12:37:16.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/codetools/finddeclarationtool.pas 2023-03-04 14:24:23.000000000 +0100
@@ -10472,6 +10472,7 @@
var
OldFlags: TFindDeclarationFlags;
+ MaybeFuncAtCursor: Boolean;
begin
Result:=CleanExpressionType;
if AliasType<>nil then
@@ -10485,9 +10486,9 @@
DebugLn('[TFindDeclarationTool.ReadOperandTypeAtCursor] A Atom=',GetAtom);
debugln(['TFindDeclarationTool.ReadOperandTypeAtCursor StartContext=',Params.ContextNode.DescAsString,'="',dbgstr(Src,Params.ContextNode.StartPos,15),'"']);
{$ENDIF}
- if (AtomIsIdentifier)
+ MaybeFuncAtCursor := AtomIsIdentifier or UpAtomIs('INHERITED');
+ if (MaybeFuncAtCursor)
or (CurPos.Flag=cafRoundBracketOpen)
- or UpAtomIs('INHERITED')
or UpAtomIs('ARRAY')
then begin
// read variable
@@ -10496,7 +10497,9 @@
if EndPos>MaxEndPos then
EndPos:=MaxEndPos;
OldFlags:=Params.Flags;
- Params.Flags:=(Params.Flags*fdfGlobals)+[fdfFunctionResult];
+ Params.Flags:=(Params.Flags*fdfGlobals);
+ if MaybeFuncAtCursor then
+ Params.Flags:=Params.Flags+[fdfFunctionResult];
Result:=FindExpressionTypeOfTerm(SubStartPos,EndPos,Params,true,AliasType);
Params.Flags:=OldFlags;
MoveCursorToCleanPos(EndPos);
diff -Nru lazarus-2.2.4+dfsg1/components/codetools/tests/laztests/bug39897.pas lazarus-2.2.6+dfsg1/components/codetools/tests/laztests/bug39897.pas
--- lazarus-2.2.4+dfsg1/components/codetools/tests/laztests/bug39897.pas 1970-01-01 01:00:00.000000000 +0100
+++ lazarus-2.2.6+dfsg1/components/codetools/tests/laztests/bug39897.pas 2023-03-04 14:24:23.000000000 +0100
@@ -0,0 +1,20 @@
+program bug39897;
+{$mode objfpc}{$H+}
+uses
+ Classes;
+
+const
+ b = $1;
+ a = ((b)+1);
+procedure foo(x,y: byte);
+begin
+end;
+procedure foo(x,y: word);
+begin
+end;
+
+
+begin
+ foo{declaration:foo}(b, a);
+end.
+
diff -Nru lazarus-2.2.4+dfsg1/components/fpdebug/fpdbgclasses.pp lazarus-2.2.6+dfsg1/components/fpdebug/fpdbgclasses.pp
--- lazarus-2.2.4+dfsg1/components/fpdebug/fpdbgclasses.pp 2022-09-25 12:37:16.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/fpdebug/fpdbgclasses.pp 2023-03-04 14:24:23.000000000 +0100
@@ -219,6 +219,7 @@
detect the int3 (false positive)
*)
procedure CheckAndResetInstructionPointerAfterBreakpoint;
+ function CheckForHardcodeBreakPoint(AnAddr: TDBGPtr): boolean;
procedure BeforeContinue; virtual;
procedure ApplyWatchPoints(AWatchPointData: TFpWatchPointData); virtual;
function DetectHardwareWatchpoint: Pointer; virtual;
@@ -2740,6 +2741,18 @@
end;
end;
+function TDbgThread.CheckForHardcodeBreakPoint(AnAddr: TDBGPtr): boolean;
+var
+ OVal: Byte;
+begin
+ Result := False;
+ if AnAddr = 0 then
+ exit;
+ if FProcess.ReadData(AnAddr, 1, OVal) then
+ FPausedAtHardcodeBreakPoint := OVal = TDbgProcess.Int3;
+ Result := FPausedAtHardcodeBreakPoint;
+end;
+
procedure TDbgThread.BeforeContinue;
begin
// On Windows this is only called, if this was the signalled thread
diff -Nru lazarus-2.2.4+dfsg1/components/fpdebug/fpdbgwinclasses.pas lazarus-2.2.6+dfsg1/components/fpdebug/fpdbgwinclasses.pas
--- lazarus-2.2.4+dfsg1/components/fpdebug/fpdbgwinclasses.pas 2022-09-25 12:37:16.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/fpdebug/fpdbgwinclasses.pas 2023-03-04 14:24:23.000000000 +0100
@@ -103,6 +103,8 @@
{$mode objfpc}{$H+}
{off $DEFINE DebuglnWinDebugEvents}
+{off $DEFINE FpDebugNewWinStepping}
+{$ifdef FpDebugOldWinStepping} {$UNDEF FpDebugNewWinStepping} {$endif}
interface
@@ -130,10 +132,16 @@
{ TDbgWinThread }
TDbgWinThread = class(TDbgThread)
+ private type
+ TBreakPointState = (bsNone, bsInSingleStep);
private
FIsSuspended: Boolean;
+ {$ifdef FpDebugNewWinStepping}
+ FBreakPointState: TBreakPointState;
+ {$else}
FIsSkippingBreakPoint: Boolean;
FIsSkippingBreakPointAddress: TDBGPtr;
+ {$endif}
protected
FThreadContextChanged: boolean;
FThreadContextChangeFlags: TFpContextChangeFlags;
@@ -147,7 +155,9 @@
procedure Suspend;
procedure SuspendForStepOverBreakPoint;
procedure Resume;
+ {$ifNdef FpDebugNewWinStepping}
procedure SetSingleStepOverBreakPoint;
+ {$endif}
procedure EndSingleStepOverBreakPoint;
procedure SetSingleStep;
procedure ApplyWatchPoints(AWatchPointData: TFpWatchPointData); override;
@@ -245,6 +255,11 @@
FLAG_TRACE_BIT = $100;
{$endif}
+function dbgs(ABrkPointState: TDbgWinThread.TBreakPointState): String;
+begin
+ WriteStr(Result, ABrkPointState);
+end;
+
function dbgs(AnDbgEvent: DEBUG_EVENT): String; overload;
begin
case AnDbgEvent.dwDebugEventCode of
@@ -734,16 +749,28 @@
begin
Result := False;
for t in FThreadMap do
- if TDbgWinThread(t).FIsSkippingBreakPoint then begin
+ {$ifdef FpDebugNewWinStepping}
+ if TDbgWinThread(t).FBreakPointState = bsInSingleStep
+ {$else}
+ if TDbgWinThread(t).FIsSkippingBreakPoint
+ {$endif}
+ then begin
Result := True;
break;
end;
+debugln(['HasThreadInSkippingBreak ',Result]);
end;
var
EventThread, t: TDbgThread;
+ {$ifdef FpDebugNewWinStepping}
+ WinEventThread: TDbgWinThread absolute EventThread;
+ WinAThread: TDbgWinThread absolute AThread;
+ EventThreadNeedsTempBrkRemove: Boolean;
+ {$endif}
begin
-debugln(FPDBG_WINDOWS, ['TDbgWinProcess.Continue ',SingleStep]);
+debugln(FPDBG_WINDOWS, ['TDbgWinProcess.Continue ',SingleStep, ' # ', ' # ',DbgSTime]);
+
if assigned(AThread) and not FThreadMap.HasId(AThread.ID) then begin
AThread := nil;
end;
@@ -754,6 +781,54 @@
This may mean suspending the current thread.
*)
+ (* AThread versus EventThread
+
+ * AThread:
+ - AThread is ONLY passed for the "SingleStep" parameter.
+
+ - If AThread is at breakpoint, and AThread is *not* the event-thread, then
+ AThread must still hit that breakpoint.
+ Only the event-thread has been checked for being at a breakpoint.
+
+ * EventThread
+ - The event-thread will have been checked for being at a breakpoint.
+ It therefore must always step-over, if it is at a breakpoint
+
+ - Except, if the event-thread is at a hardcoded breakpoint.
+ In that case:
+ ~ The controller has handled, the hardcoded breakpoint.
+ ~ The IP was *not* reset.
+ So the event-thread may already be at the *next* breakpoint.
+ *)
+
+ {$ifdef FpDebugNewWinStepping}
+ EventThreadNeedsTempBrkRemove := False;
+ if AProcess.GetThread(MDebugEvent.dwThreadId, EventThread) then begin
+ EventThreadNeedsTempBrkRemove :=
+ (not EventThread.PausedAtHardcodeBreakPoint) and
+ Process.HasInsertedBreakInstructionAtLocation(EventThread.GetInstructionPointerRegisterValue);
+
+ if EventThreadNeedsTempBrkRemove then
+ WinEventThread.FBreakPointState := bsInSingleStep;
+
+ if ( (EventThread = AThread) and SingleStep ) or
+ ( EventThreadNeedsTempBrkRemove )
+ then
+ WinEventThread.SetSingleStep;
+ assert((WinEventThread.FBreakPointState=bsNone) or WinEventThread.NextIsSingleStep, 'TDbgWinProcess.Continue: (WinEventThread.FBreakPointState=bsNone) or WinEventThread.NextIsSingleStep');
+ end;
+
+ if (AThread <> nil) and (AThread <> EventThread) and SingleStep then
+ WinAThread.SetSingleStep;
+
+ if EventThreadNeedsTempBrkRemove or HasThreadInSkippingBreak then begin
+ debugln(FPDBG_WINDOWS or DBG_VERBOSE, '## Skip BrkPoint: EvntThread Nil=%s ISS=%s TmpRmBreak=%s / Thread Nil=%s ISS=%s ',
+ [ dbgs(EventThread <> nil), dbgs((EventThread<>nil) and EventThread.NextIsSingleStep), dbgs(EventThreadNeedsTempBrkRemove),
+ dbgs(AThread <> nil), dbgs((AThread<>nil) and AThread.NextIsSingleStep) ]);
+ for t in FThreadMap do
+ TDbgWinThread(t).SuspendForStepOverBreakPoint;
+ end;
+ {$else}
if AProcess.GetThread(MDebugEvent.dwThreadId, EventThread) then begin
if EventThread = AThread then
EventThread.NextIsSingleStep := SingleStep;
@@ -807,8 +882,11 @@
if SingleStep then
TDbgWinThread(AThread).SetSingleStep;
end;
+ {$endif}
+
+
AProcess.ThreadsBeforeContinue;
-if AThread<>nil then debugln(FPDBG_WINDOWS, ['## ath.iss ',AThread.NextIsSingleStep]);
+ if AThread<>nil then debugln(FPDBG_WINDOWS, ['## ath.iss ',AThread.NextIsSingleStep]);
if MDebugEvent.dwDebugEventCode = EXCEPTION_DEBUG_EVENT then
case MDebugEvent.Exception.ExceptionRecord.ExceptionCode of
@@ -930,10 +1008,16 @@
ProcessIdentifier:=MDebugEvent.dwProcessId;
ThreadIdentifier:=MDebugEvent.dwThreadId;
{$IFDEF DebuglnWinDebugEvents}
- DebugLn(FPDBG_WINDOWS, [dbgs(MDebugEvent), ' ', Result]);
+ DebugLn(FPDBG_WINDOWS, [dbgs(MDebugEvent), ' ', Result, ' # ',DbgSTime]);
for TDbgThread(t) in FThreadMap do begin
if t.ReadThreadState then
+ {$ifdef FpDebugNewWinStepping}
+ DebugLn(FPDBG_WINDOWS,
+ 'Thr.Id:%d %x SSTep %s EF %s DR6:%x DR7:%x WP:%x RegAcc: %d, SStep: %d Task: %d, ExcBrk: %d Susp: %s, ISS: %s BS:%s',
+ [t.ID, t.GetInstructionPointerRegisterValue, dbgs(t.FCurrentContext^.def.EFlags and FLAG_TRACE_BIT), dbghex(t.FCurrentContext^.def.EFlags), t.FCurrentContext^.def.Dr6, t.FCurrentContext^.def.Dr7, t.FCurrentContext^.def.Dr6 and 15, t.FCurrentContext^.def.Dr6 and (1<< 13), t.FCurrentContext^.def.Dr6 and (1<< 14), t.FCurrentContext^.def.Dr6 and (1<< 15), t.FCurrentContext^.def.Dr6 and (1<< 16), dbgs(t.FIsSuspended), dbgs(t.NextIsSingleStep), dbgs(t.FBreakPointState) ]);
+ {$else}
DebugLn(FPDBG_WINDOWS, 'Thr.Id:%d %x SSTep %s EF %s DR6:%x DR7:%x WP:%x RegAcc: %d, SStep: %d Task: %d, ExcBrk: %d', [t.ID, t.GetInstructionPointerRegisterValue, dbgs(t.FCurrentContext^.def.EFlags and FLAG_TRACE_BIT), dbghex(t.FCurrentContext^.def.EFlags), t.FCurrentContext^.def.Dr6, t.FCurrentContext^.def.Dr7, t.FCurrentContext^.def.Dr6 and 15, t.FCurrentContext^.def.Dr6 and (1<< 13), t.FCurrentContext^.def.Dr6 and (1<< 14), t.FCurrentContext^.def.Dr6 and (1<< 15), t.FCurrentContext^.def.Dr6 and (1<< 16)]);
+ {$endif}
end;
{$ENDIF}
@@ -1230,10 +1314,15 @@
else begin
result := deBreakpoint;
if AThread <> nil then
+ {$ifdef FpDebugNewWinStepping}
+ TDbgWinThread(AThread).ResetInstructionPointerAfterBreakpoint; // This is always an int3 breakpoint
+ {$else}
AThread.CheckAndResetInstructionPointerAfterBreakpoint;
+ {$endif}
end;
end;
EXCEPTION_SINGLE_STEP, STATUS_WX86_SINGLE_STEP: begin
+ // includes WatchPoints
result := deBreakpoint;
end
else begin
@@ -1577,6 +1666,25 @@
debugln(DBG_WARNINGS and (r = DWORD(-1)), 'Failed to suspend Thread %d (handle: %d). Error: %s', [Id, Handle, GetLastErrorText]);
end;
+{$ifdef FpDebugNewWinStepping}
+procedure TDbgWinThread.SuspendForStepOverBreakPoint;
+var
+ t: TDBGPtr;
+begin
+ t := GetInstructionPointerRegisterValue;
+ if (FBreakPointState = bsInSingleStep)
+// or (NextIsSingleStep)
+ then begin
+ Process.TempRemoveBreakInstructionCode(t);
+ end
+ else
+ if NextIsSingleStep and (not Process.HasInsertedBreakInstructionAtLocation(t)) then begin
+ // nothing / do the single step
+ end
+ else
+ Suspend;
+end;
+{$else}
procedure TDbgWinThread.SuspendForStepOverBreakPoint;
begin
if FIsSkippingBreakPoint then begin
@@ -1587,6 +1695,7 @@
else
Suspend;
end;
+{$endif}
procedure TDbgWinThread.Resume;
var
@@ -1599,20 +1708,30 @@
debugln(DBG_WARNINGS and (r = DWORD(-1)), 'Failed to resume Thread %d (handle: %d). Error: %s', [Id, Handle, GetLastErrorText]);
end;
+{$ifNdef FpDebugNewWinStepping}
procedure TDbgWinThread.SetSingleStepOverBreakPoint;
begin
SetSingleStep;
FIsSkippingBreakPoint := True;
FIsSkippingBreakPointAddress := GetInstructionPointerRegisterValue;
end;
+{$endif}
procedure TDbgWinThread.EndSingleStepOverBreakPoint;
begin
+ {$ifdef FpDebugNewWinStepping}
+ FBreakPointState := bsNone;
+ {$else}
FIsSkippingBreakPoint := False;
+ {$endif}
end;
procedure TDbgWinThread.SetSingleStep;
begin
+ {$ifdef FpDebugNewWinStepping}
+ NextIsSingleStep := True;
+ {$endif}
+
if FCurrentContext = nil then
if not ReadThreadState then
exit;
@@ -1729,7 +1848,7 @@
begin
{$IFDEF FPDEBUG_THREAD_CHECK}AssertFpDebugThreadId('TDbgWinThread.ResetInstructionPointerAfterBreakpoint');{$ENDIF}
assert(MDebugEvent.dwProcessId <> 0, 'TDbgWinThread.ResetInstructionPointerAfterBreakpoint: MDebugEvent.dwProcessId <> 0');
- assert(MDebugEvent.Exception.ExceptionRecord.ExceptionCode <> EXCEPTION_SINGLE_STEP, 'dec(IP) EXCEPTION_SINGLE_STEP');
+ //assert((MDebugEvent.Exception.ExceptionRecord.ExceptionCode = EXCEPTION_BREAKPOINT) or (MDebugEvent.Exception.ExceptionRecord.ExceptionCode = STATUS_WX86_BREAKPOINT), 'TDbgWinThread.ResetInstructionPointerAfterBreakpoint: (MDebugEvent.Exception.ExceptionRecord.ExceptionCode = EXCEPTION_BREAKPOINT) or (MDebugEvent.Exception.ExceptionRecord.ExceptionCode = STATUS_WX86_BREAKPOINT)');
Result := False;
@@ -1737,13 +1856,22 @@
exit;
{$ifdef cpui386}
- dec(FCurrentContext^.def.Eip);
+ {$ifdef FpDebugNewWinStepping}
+ if not CheckForHardcodeBreakPoint(FCurrentContext^.def.Eip - 1) then
+ {$endif}
+ dec(FCurrentContext^.def.Eip);
{$else}
if (TDbgWinProcess(Process).FBitness = b32) then begin
- dec(FCurrentContext^.WOW.Eip);
+ {$ifdef FpDebugNewWinStepping}
+ if not CheckForHardcodeBreakPoint(FCurrentContext^.WOW.Eip - 1) then
+ {$endif}
+ dec(FCurrentContext^.WOW.Eip);
end
else begin
- dec(FCurrentContext^.def.Rip);
+ {$ifdef FpDebugNewWinStepping}
+ if not CheckForHardcodeBreakPoint(FCurrentContext^.def.Rip - 1) then
+ {$endif}
+ dec(FCurrentContext^.def.Rip);
end;
{$endif}
diff -Nru lazarus-2.2.4+dfsg1/components/freetype/easylazfreetype.pas lazarus-2.2.6+dfsg1/components/freetype/easylazfreetype.pas
--- lazarus-2.2.4+dfsg1/components/freetype/easylazfreetype.pas 2022-09-25 12:37:16.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/freetype/easylazfreetype.pas 2023-03-04 14:24:24.000000000 +0100
@@ -2014,14 +2014,17 @@
(nrLanguageID=0)) then
begin
value := TT_Get_Name_String(FFace, i);
- for j := 1 to length(value) div 2 do
- pword(@value[j*2-1])^ := BEtoN(pword(@value[j*2-1])^);
- setlength(value2, 3*(length(value) div 2) + 1); //maximum is 3-byte chars and NULL char at the end
- len := system.UnicodeToUtf8(@value2[1],length(value2),PUnicodeChar( @value[1] ),length(value) div 2);
- if len > 0 then
+ if value <> '' then
begin
- setlength(value2, len-1 );
- value := value2;
+ for j := 1 to length(value) div 2 do
+ pword(@value[j*2-1])^ := BEtoN(pword(@value[j*2-1])^);
+ setlength(value2, 3*(length(value) div 2) + 1); //maximum is 3-byte chars and NULL char at the end
+ len := system.UnicodeToUtf8(@value2[1],length(value2),PUnicodeChar( @value[1] ),length(value) div 2);
+ if len > 0 then
+ begin
+ setlength(value2, len-1 );
+ value := value2;
+ end;
end;
FNamesArray[nrNameID] := value;
end;
diff -Nru lazarus-2.2.4+dfsg1/components/ideintf/graphpropedits.pas lazarus-2.2.6+dfsg1/components/ideintf/graphpropedits.pas
--- lazarus-2.2.4+dfsg1/components/ideintf/graphpropedits.pas 2022-09-25 12:37:16.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/ideintf/graphpropedits.pas 2023-03-04 14:24:24.000000000 +0100
@@ -753,11 +753,9 @@
var
Images: TCustomImageList;
R, RImg: TRect;
- dh: Integer;
+ dh, ImageIndex: Integer;
wimg, himg: Integer;
begin
- if GetDefaultOrdValue <> NoDefaultValue then
- Dec(Index);
Images := GetImageList;
R := ARect;
dh := R.Bottom - R.Top;
@@ -782,7 +780,9 @@
ACanvas.Brush.Color := clWhite;
ACanvas.FillRect(R);
end;
- Images.StretchDraw(ACanvas, Index, RImg, true);
+ // the dropdown Index doesn't have to correlate with the ImageIndex (see GetValues()) - use the text instead
+ if TryStrToInt(CurValue, ImageIndex) and (ImageIndex>=0) then
+ Images.StretchDraw(ACanvas, ImageIndex, RImg, true);
R.Left := RImg.Right + 2;
end;
inherited ListDrawValue(CurValue, Index, ACanvas, R, AState);
diff -Nru lazarus-2.2.4+dfsg1/components/ideintf/imagelisteditor.pp lazarus-2.2.6+dfsg1/components/ideintf/imagelisteditor.pp
--- lazarus-2.2.4+dfsg1/components/ideintf/imagelisteditor.pp 2022-09-25 12:37:16.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/ideintf/imagelisteditor.pp 2023-03-04 14:24:24.000000000 +0100
@@ -373,6 +373,7 @@
ImageListBox.Items.EndUpdate;
ImageList.EndUpdate;
end;
+ UpdatePreviewImage;
ImageListBox.SetFocus;
end;
end;
@@ -390,6 +391,7 @@
ImageListBox.Items.EndUpdate;
ImageList.EndUpdate;
end;
+ UpdatePreviewImage;
ImageListBox.SetFocus;
end;
end;
@@ -465,19 +467,58 @@
procedure TImageListEditorDlg.BtnReplaceClick(Sender: TObject);
var
- AT: TAddType;
+ i: Integer;
+ w: Integer = 0;
+ bigIdx: Integer = 0;
+ pic: TPicture;
begin
- if ImageListBox.ItemIndex>=0 then
+ if ImageListBox.ItemIndex >= 0 then
begin
OpenDialog.Title := sccsILEdtOpenDialogN;
- OpenDialog.Options:=OpenDialog.Options-[ofAllowMultiSelect];
+ if Sender = BtnReplaceAll then
+ OpenDialog.Options := OpenDialog.Options + [ofAllowMultiSelect]
+ else
+ OpenDialog.Options := OpenDialog.Options - [ofAllowMultiSelect];
+
if OpenDialog.Execute then
begin
- if Sender=BtnReplaceAll then
- AT := atReplaceAllResolutions
- else
- AT := atReplace;
- AddImageToList(TrimRight(OpenDialog.FileName), AT);
+ try
+ ImageList.BeginUpdate;
+ ImageListBox.Items.BeginUpdate;
+ // Replace all icons
+ if Sender = BtnReplaceAll then
+ begin
+ // Find the largest icon
+ pic := TPicture.Create;
+ try
+ for i := 0 to OpenDialog.Files.Count - 1 do
+ begin
+ pic.LoadFromFile(TrimRight(OpenDialog.Files[i]));
+ if pic.Width > W then
+ begin
+ w := pic.Width;
+ bigIdx := i;
+ end;
+ end;
+ finally
+ pic.Free;
+ end;
+ // Create all icons from the largest icon. This makes sure that
+ // also non-selected icons will be replaced.
+ AddImageToList(TrimRight(OpenDialog.Files[bigIdx]), atReplaceAllResolutions);
+ // Replace other icons by their file versions when selected.
+ for i := 0 to OpenDialog.Files.Count - 1 do
+ if i <> bigIdx then
+ AddImageToList(TrimRight(OpenDialog.Files[i]), atReplace);
+ end
+ // Replace only a single icon
+ else
+ AddImageToList(TrimRight(OpenDialog.FileName), atReplace);
+ finally
+ ImageListBox.Items.EndUpdate;
+ ImageList.EndUpdate;
+ end;
+ UpdatePreviewImage;
ImageListBox.SetFocus;
end;
end;
@@ -612,7 +653,9 @@
ItemHeight, MaxHeight: Integer;
begin
ItemHeight := ImageListBox.Canvas.TextHeight('Hg');
- MaxHeight := Scale96ToFont(32);
+ if ImageList.ResolutionCount > 0 then // smallest image will not be truncated
+ ItemHeight := Max(ItemHeight, ImageList.ResolutionByIndex[0].Height);
+ MaxHeight := Scale96ToFont(32); // max height above with next sizes will be truncated
for R in ImageList.Resolutions do
begin
if R.Height <= MaxHeight then
diff -Nru lazarus-2.2.4+dfsg1/components/ideintf/languages/objinspstrconsts.sk.po lazarus-2.2.6+dfsg1/components/ideintf/languages/objinspstrconsts.sk.po
--- lazarus-2.2.4+dfsg1/components/ideintf/languages/objinspstrconsts.sk.po 2022-09-25 12:37:16.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/ideintf/languages/objinspstrconsts.sk.po 2023-03-04 14:24:24.000000000 +0100
@@ -2,7 +2,7 @@
msgstr ""
"Project-Id-Version: objinspstrconsts\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-09-30 11:56+0200\n"
+"PO-Revision-Date: 2022-12-09 12:37+0100\n"
"Last-Translator: Slavko <slavino@slavino.sk>\n"
"Language-Team: Slovenský <sk@li.org>\n"
"MIME-Version: 1.0\n"
@@ -140,7 +140,7 @@
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
-msgstr ""
+msgstr "Editor stĺpcov DBGrid"
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
@@ -152,7 +152,7 @@
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
-msgstr ""
+msgstr "Týmto sa zmažú všetky stĺpce. Pokračovať?"
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
@@ -172,10 +172,8 @@
msgstr "Zrušiť"
#: objinspstrconsts.fescheckdset
-#, fuzzy
-#| msgid "Check dataset settings"
msgid "Check dataset settings."
-msgstr "Skontrolovať nastavenia dataset"
+msgstr "Skontrolovať nastavenia Datasetu."
#: objinspstrconsts.fesdata
msgid "&Data"
@@ -191,6 +189,8 @@
"Error message:\n"
"%s"
msgstr ""
+"Chybová správa:\n"
+"%s"
#: objinspstrconsts.fesfetitle
msgid "Edit Fields ..."
@@ -239,16 +239,12 @@
msgstr ""
#: objinspstrconsts.fesnofields
-#, fuzzy
-#| msgid "It was not possible to get the dataset field's list"
msgid "It was not possible to get the dataset fields list."
-msgstr "Nebolo možné získať zoznam poľa dataset"
+msgstr "Nebolo možné získať zoznam polí Datasetu."
#: objinspstrconsts.fesnofieldsnote
-#, fuzzy
-#| msgid "Field's list is not available, can't check for duplicates"
msgid "Fields list is not available, can't check for duplicates."
-msgstr "Zoznam polí nie je dostupný, nie je možné skontrolovať duplicity"
+msgstr "Zoznam polí nie je dostupný, nie je možné skontrolovať duplicity."
#: objinspstrconsts.fesokbtn
msgctxt "objinspstrconsts.fesokbtn"
@@ -318,19 +314,19 @@
#: objinspstrconsts.lrscopyfromdataset
msgid "Copy data from other dataset"
-msgstr ""
+msgstr "Kopírovať dáta z iného Datasetu"
#: objinspstrconsts.lrscreatedataset
msgid "Create dataset"
-msgstr ""
+msgstr "Vytvoriť Dataset"
#: objinspstrconsts.lrsdatasetactive
msgid "Dataset is already active, close it first."
-msgstr ""
+msgstr "Dataset je aktívny, najskôr ho zatvorte."
#: objinspstrconsts.lrsloadfromfile
msgid "Load data from file"
-msgstr ""
+msgstr "Načítať údaje zo súboru"
#: objinspstrconsts.lrsnodatasetsavailableforcopy
msgid "No dataset available to copy data from."
@@ -342,7 +338,7 @@
#: objinspstrconsts.lrssavetofile
msgid "Save data to file"
-msgstr ""
+msgstr "Uložiť údaje do súboru"
#: objinspstrconsts.lrsselectdatafilename
msgid "Select a file with data to load into dataset"
@@ -427,15 +423,15 @@
#: objinspstrconsts.oisaddcollectionitem
msgid "&Add Item"
-msgstr ""
+msgstr "&Pridať položku"
#: objinspstrconsts.oisaddfields
msgid "&Add fields"
-msgstr ""
+msgstr "&Pridať polia"
#: objinspstrconsts.oisaddfieldsfromfielddefs
msgid "Add fields from FieldDefs"
-msgstr ""
+msgstr "Pridať polia z FieldDefs"
#: objinspstrconsts.oisaddpage
msgctxt "objinspstrconsts.oisaddpage"
@@ -485,7 +481,7 @@
#: objinspstrconsts.oischangeparent
msgid "Change Parent"
-msgstr ""
+msgstr "Zmeniť rodiča"
#: objinspstrconsts.oischar
msgid "Char"
@@ -508,10 +504,9 @@
msgstr "Vyčistiť obrázok"
#: objinspstrconsts.oiscomponentnameisnotavalididentifier
-#, object-pascal-format, fuzzy, badformat
-#| msgid "Component name %s%s%s is not a valid identifier"
+#, object-pascal-format
msgid "Component name \"%s\" is not a valid identifier"
-msgstr "Názov komponentu %s%s%s nie je platný identifikátor"
+msgstr "Názov komponentu \"%s\" nie je platný identifikátor"
#: objinspstrconsts.oiscomponentrestrictions
msgid "Component restrictions: "
@@ -519,7 +514,7 @@
#: objinspstrconsts.oisconfirmdelete
msgid "Confirm delete"
-msgstr "Podtvrdiť zmazanie"
+msgstr "Potvrdiť zmazanie"
#: objinspstrconsts.oiscopycomponents
#, fuzzy
@@ -534,15 +529,15 @@
#: objinspstrconsts.oiscreatenewfieldandadditatcurrentposition
msgid "Create new field and add it at current position"
-msgstr ""
+msgstr "Vytvoriť nové pole a pridať ho na aktuálnu pozíciu"
#: objinspstrconsts.oiscurrentparent
msgid "Current parent"
-msgstr ""
+msgstr "Aktuálny rodič"
#: objinspstrconsts.oiscurrentparents
msgid "Current parents"
-msgstr ""
+msgstr "Aktuálny rodičia"
#: objinspstrconsts.oiscutcomponents
#, fuzzy
@@ -570,11 +565,11 @@
#: objinspstrconsts.oisdeletepagequestion
msgid "Do you want to delete the page?"
-msgstr ""
+msgstr "Chcete zmazať stránku?"
#: objinspstrconsts.oisdeleteselectedfields
msgid "Delete selected field(s)"
-msgstr ""
+msgstr "Zmazať vybraté polia"
#: objinspstrconsts.oisdlinesdchars
#, object-pascal-format
@@ -591,7 +586,7 @@
#: objinspstrconsts.oiserrordeletingaction
msgid "Error deleting action"
-msgstr ""
+msgstr "Chyba pri mazaní akcie"
#: objinspstrconsts.oiserrorloadingimage
msgid "Error loading image"
@@ -670,7 +665,7 @@
#: objinspstrconsts.oisisnotavalidmethodname
#, object-pascal-format
msgid "\"%s\" is not a valid method name."
-msgstr ""
+msgstr "\"%s\" nie je platné meno metódy."
#: objinspstrconsts.oisitemsselected
#, object-pascal-format
@@ -680,7 +675,7 @@
#: objinspstrconsts.oisjumptodeclarationof
#, object-pascal-format
msgid "Jump to declaration of %s"
-msgstr ""
+msgstr "Skočiť na deklaráciu %s"
#: objinspstrconsts.oisload
msgid "&Load"
@@ -749,7 +744,7 @@
#: objinspstrconsts.oisopenmaskfile
msgid "Open masks file (*.dem)"
-msgstr "Orvoriť súbor s maskami (*.dem)"
+msgstr "Otvoriť súbor s maskami (*.dem)"
#: objinspstrconsts.oisoptions
msgid "Options"
@@ -757,19 +752,19 @@
#: objinspstrconsts.oisorderbackone
msgid "Back One"
-msgstr ""
+msgstr "O jednu späť"
#: objinspstrconsts.oisorderforwardone
msgid "Forward One"
-msgstr ""
+msgstr "O jednu dopredu"
#: objinspstrconsts.oisordermovetoback
msgid "Move to Back"
-msgstr ""
+msgstr "Posunúť dozadu"
#: objinspstrconsts.oisordermovetofront
msgid "Move to Front"
-msgstr ""
+msgstr "Posunúť dopredu"
#: objinspstrconsts.oispages
msgid "Pages"
@@ -777,7 +772,7 @@
#: objinspstrconsts.oispageseditordialog
msgid "Pages Editor"
-msgstr ""
+msgstr "Editor stránok"
#: objinspstrconsts.oispastecomponents
#, fuzzy
@@ -800,7 +795,7 @@
#: objinspstrconsts.oispressakey
msgid "Press a key ..."
-msgstr ""
+msgstr "Stlačte kláves ..."
#: objinspstrconsts.oispressakeyegctrlp
msgid "You can press e.g. Ctrl+P ..."
@@ -861,7 +856,7 @@
#: objinspstrconsts.oisselectall
msgid "&Select all"
-msgstr ""
+msgstr "Vybrať &všetky"
#: objinspstrconsts.oisselectallhint
msgid "Select All Fields"
@@ -916,7 +911,7 @@
#: objinspstrconsts.oisshowclasses
msgid "Show classes"
-msgstr ""
+msgstr "Zobraziť triedy"
#: objinspstrconsts.oisshowcomponenttree
msgid "Show Component Tree"
@@ -924,15 +919,15 @@
#: objinspstrconsts.oisshowhints
msgid "Show Hints"
-msgstr "Zobariť rady"
+msgstr "Zobraziť rady"
#: objinspstrconsts.oisshowinfobox
msgid "Show Information Box"
-msgstr ""
+msgstr "Zobraziť informačný rámček"
#: objinspstrconsts.oisshowpropertyfilter
msgid "Show Property Filter"
-msgstr ""
+msgstr "Zobraziť filter vlastností"
#: objinspstrconsts.oisshowstatusbar
msgid "Show Status Bar"
@@ -1170,10 +1165,8 @@
msgstr "Uložiť ako"
#: objinspstrconsts.oistdactfonteditheadline
-#, fuzzy
-#| msgid "Select &Font..."
msgid "Select &Font ..."
-msgstr "Vybrať &font..."
+msgstr "Vybrať &font ..."
#: objinspstrconsts.oistdactfontedithint
msgid "Font Select"
@@ -1244,14 +1237,12 @@
msgstr "Nahradiť"
#: objinspstrconsts.oistestdialog
-#, fuzzy
-#| msgid "Test dialog..."
msgid "Test dialog ..."
msgstr "Testovať dialóg..."
#: objinspstrconsts.oistestinput
msgid "Test Input"
-msgstr "Testvstupu"
+msgstr "Testovať vstup"
#: objinspstrconsts.oistheidentifierisnotamethodpresscanceltoundopressign
#, object-pascal-format, fuzzy, badformat
@@ -1288,11 +1279,11 @@
#: objinspstrconsts.oisunselectall
msgid "&Unselect all"
-msgstr ""
+msgstr "&Odznačiť všetko"
#: objinspstrconsts.oisunselectallhint
msgid "Unselect All"
-msgstr ""
+msgstr "Odznačiť všetko"
#: objinspstrconsts.oisvalue
msgid "Value:"
@@ -1391,11 +1382,11 @@
#: objinspstrconsts.sccsiledtaddmoreresolutions
msgid "Add more resolutions ..."
-msgstr ""
+msgstr "Pridať ďalšie rozlíšenia ..."
#: objinspstrconsts.sccsiledtaddnewresolution
msgid "New resolution ..."
-msgstr ""
+msgstr "Nové rozlíšenie ..."
#: objinspstrconsts.sccsiledtaddsliced
msgid "Add sliced ..."
@@ -1410,15 +1401,13 @@
msgstr "Doladenie"
#: objinspstrconsts.sccsiledtapply
-#, fuzzy
-#| msgid "Apply"
msgctxt "objinspstrconsts.sccsiledtapply"
msgid "&Apply"
-msgstr "Použiť"
+msgstr "&Použiť"
#: objinspstrconsts.sccsiledtcannotdeleteresolution
msgid "Cannot delete default resolution."
-msgstr ""
+msgstr "Nie je možné zmazať predvolené rozlíšenie."
#: objinspstrconsts.sccsiledtcannotslice
msgid "Source image size must be an integer multiple of the ImageList's Width and Height."
@@ -1433,11 +1422,9 @@
msgstr "Vystredniť"
#: objinspstrconsts.sccsiledtclear
-#, fuzzy
-#| msgid "Clear"
msgctxt "objinspstrconsts.sccsiledtclear"
msgid "&Clear"
-msgstr "Zmazať"
+msgstr "Vyčistiť"
#: objinspstrconsts.sccsiledtcrop
msgid "Crop"
@@ -1450,11 +1437,11 @@
#: objinspstrconsts.sccsiledtdeleteresolution
msgid "Delete resolution ..."
-msgstr ""
+msgstr "Zmazať rozlíšenie ..."
#: objinspstrconsts.sccsiledtdeleteresolutionconfirmation
msgid "Select the resolution to delete."
-msgstr ""
+msgstr "Vyberte rozlíšenie, ktoré chcete zmazať."
#: objinspstrconsts.sccsiledtgrplcaption
msgid "Images"
@@ -1500,7 +1487,7 @@
#: objinspstrconsts.sccsiledtreplaceallresolutions
msgid "Replace all resolutions ..."
-msgstr ""
+msgstr "Nahradiť všetky rozlíšenia ..."
#: objinspstrconsts.sccsiledtsave
msgctxt "objinspstrconsts.sccsiledtsave"
@@ -1526,7 +1513,7 @@
#: objinspstrconsts.sccslvedt
msgctxt "objinspstrconsts.sccslvedt"
msgid "Edit Items ..."
-msgstr "Editovať položky ..."
+msgstr "Upraviť položky ..."
#: objinspstrconsts.sccslvedtapply
msgctxt "objinspstrconsts.sccslvedtapply"
@@ -1590,10 +1577,8 @@
msgstr "Editor panelov ..."
#: objinspstrconsts.sccssgedt
-#, fuzzy
-#| msgid "Edit StringGrid..."
msgid "Edit StringGrid ..."
-msgstr "Editovať StringGrid..."
+msgstr "Upraviť StringGrid ..."
#: objinspstrconsts.sccssgedtapply
msgctxt "objinspstrconsts.sccssgedtapply"
@@ -1638,7 +1623,7 @@
#: objinspstrconsts.sccstredt
msgctxt "objinspstrconsts.sccstredt"
msgid "Edit Items ..."
-msgstr "Editovať položky ..."
+msgstr "Upraviť položky ..."
#: objinspstrconsts.sccstredtapply
msgctxt "objinspstrconsts.sccstredtapply"
@@ -1738,7 +1723,7 @@
#: objinspstrconsts.tbcenewbutton
msgid "New Button"
-msgstr ""
+msgstr "Nové tlačítko"
#: objinspstrconsts.tbcenewcheckbutton
msgid "New CheckButton"
@@ -1750,7 +1735,7 @@
#: objinspstrconsts.tbcenewseparator
msgid "New Separator"
-msgstr ""
+msgstr "Nový oddeľovač"
#: objinspstrconsts.tccesaddtab
msgid "Add tab"
diff -Nru lazarus-2.2.4+dfsg1/components/lazcontrols/spinex.pp lazarus-2.2.6+dfsg1/components/lazcontrols/spinex.pp
--- lazarus-2.2.4+dfsg1/components/lazcontrols/spinex.pp 2022-09-25 12:37:16.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/lazcontrols/spinex.pp 2023-03-04 14:24:24.000000000 +0100
@@ -70,7 +70,7 @@
{$mode objfpc}{$H+}
// Activates a workaround for issue #39490
-{$if FPC_FullVersion=30202}{$ifdef Win64}
+{$if (FPC_FullVersion>=30202) and (FPC_FullVersion < 30300)}{$ifdef Win64}
{$define fpc_math_samevalue_bug}
{$endif}{$endif}
diff -Nru lazarus-2.2.4+dfsg1/components/lazdebuggers/lazdebuggerfp/test/testapps/BreakPointThreadPrg.pas lazarus-2.2.6+dfsg1/components/lazdebuggers/lazdebuggerfp/test/testapps/BreakPointThreadPrg.pas
--- lazarus-2.2.4+dfsg1/components/lazdebuggers/lazdebuggerfp/test/testapps/BreakPointThreadPrg.pas 2022-09-25 12:37:16.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/lazdebuggers/lazdebuggerfp/test/testapps/BreakPointThreadPrg.pas 2023-03-04 14:24:24.000000000 +0100
@@ -17,6 +17,7 @@
var
x, BreakDummy: Integer;
+ ThrCount: Integer = 0;
{$asmMode intel}
@@ -27,23 +28,24 @@
procedure TTestThread.Execute;
begin
+ InterlockedIncrement(ThrCount);
asm
nop // TEST_BREAKPOINT=BrkThreadBegin
xor eax, eax
xor ebx, ebx
- add eax, 10
+ add eax, 1023
testasmlbl1:
- sub eax, 10
- add eax, 1 // TEST_BREAKPOINT=BrkThread1
- add eax, 1 // TEST_BREAKPOINT=BrkThread2
- add eax, 1 // TEST_BREAKPOINT=BrkThread3
- add eax, 1 // TEST_BREAKPOINT=BrkThread4
- add eax, 1 // TEST_BREAKPOINT=BrkThread5
- add eax, 1 // TEST_BREAKPOINT=BrkThread6
- add eax, 1 // TEST_BREAKPOINT=BrkThread7
- add eax, 1 // TEST_BREAKPOINT=BrkThread8
- add eax, 1 // TEST_BREAKPOINT=BrkThread9
- add eax, 1 // TEST_BREAKPOINT=BrkThread10
+ sub eax, 1023
+ add eax, 1 // TEST_BREAKPOINT=BrkThread1
+ add eax, 2 // TEST_BREAKPOINT=BrkThread2
+ add eax, 4 // TEST_BREAKPOINT=BrkThread3
+ add eax, 8 // TEST_BREAKPOINT=BrkThread4
+ add eax, 16 // TEST_BREAKPOINT=BrkThread5
+ add eax, 32 // TEST_BREAKPOINT=BrkThread6
+ add eax, 64 // TEST_BREAKPOINT=BrkThread7
+ add eax, 128 // TEST_BREAKPOINT=BrkThread8
+ add eax, 256 // TEST_BREAKPOINT=BrkThread9
+ add eax, 512 // TEST_BREAKPOINT=BrkThread10
add ebx, 1 // TEST_BREAKPOINT=BrkThreadIncLoop
jmp testasmlbl1 // TEST_BREAKPOINT=BrkThread11
@@ -67,6 +69,7 @@
TTestThread.Create(False);
TTestThread.Create(False);
+ while ThrCount < 10 do sleep(20);
sleep(500);
BreakDummy := 1;
diff -Nru lazarus-2.2.4+dfsg1/components/lazdebuggers/lazdebuggerfp/test/testbreakpoint.pas lazarus-2.2.6+dfsg1/components/lazdebuggers/lazdebuggerfp/test/testbreakpoint.pas
--- lazarus-2.2.4+dfsg1/components/lazdebuggers/lazdebuggerfp/test/testbreakpoint.pas 2022-09-25 12:37:16.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/lazdebuggers/lazdebuggerfp/test/testbreakpoint.pas 2023-03-04 14:24:24.000000000 +0100
@@ -12,19 +12,20 @@
type
// Info used by tests based on TestBreakPointThreadPrg
+ TBreakThreadPrgInfoEntry = record
+ ID: Integer;
+ Address: TDBGPtr;
+ Line, PreviousLine: Integer;
+ Val, LastVal: int64; // AX register
+ Loop, PreviousLoop: int64; // BX register
+ IsCurrent: Boolean;
+ LastBrkLine, LastBrkLoop: Integer;
+ PreviousLastBrkLine, PreviousLastBrkLoop: Integer;
+ end;
TBreakThreadPrgInfo = record
- ThrLoopFirst, ThrLoopLast, ThrLoopLine0, ThrLoopInc: Integer;
+ ThrLoopFirst, ThrLoopLast, ThrLoopLine0, ThrLoopInc: Integer; // Linenumbers of the breakpoints
// -1 => Main thread
- Threads: array[-1..10] of record
- ID: Integer;
- Address: TDBGPtr;
- Line, LastLine: Integer;
- Val, LastVal: int64;
- Loop, LastLoop: int64;
- IsCurrent: Boolean;
- LastBrkLine, LastBrkLoop: Integer;
- PrevLastBrkLine, PrevLastBrkLoop: Integer;
- end;
+ Threads: array[-1..10] of TBreakThreadPrgInfoEntry;
end;
{ TTestBreakPoint }
@@ -35,7 +36,19 @@
FThrPrgInfo: TBreakThreadPrgInfo;
procedure ThrPrgInitializeThreads(ATestName: String);
procedure ThrPrgUpdateThreads(ATestName: String);
+
+ (* ThrPrgCheckNoSkip
+ Check that AX is correct for the line.
+ Ensure the instruction restored from "int3" was executed
+ *)
procedure ThrPrgCheckNoSkip(ATestName: String='');
+ (* ThrPrgInfoHasGoneThroughLine
+ Has gone over the line WITHOUT stopping at the breakpoint
+ - If the thread was NOT on the line, it has gone over it at least once.
+ - if the thread was AT the line,
+ ~ and had NOT reorted yet for the line => it as gone away from the line anyway
+ ~ and had reported for the line => it has gone OVER the line in the NEXT loop already
+ *)
function ThrPrgInfoHasGoneThroughLine(AIndex, ALine: Integer): boolean;
protected
Src: TCommonSource;
@@ -330,7 +343,10 @@
end;
FThrPrgInfo.Threads[j].ID := t.ThreadId;
+ FThrPrgInfo.Threads[j].Line := -1;
+ FThrPrgInfo.Threads[j].Loop := -5;
FThrPrgInfo.Threads[j].LastBrkLine := -1;
+ FThrPrgInfo.Threads[j].PreviousLastBrkLine := -1;
debugln(['++ ADDED tid ',t.ThreadId]);
inc(j);
if j >= 11 then
@@ -372,9 +388,12 @@
if (lowercase(r.Entries[j].Name) = 'ebx') or (lowercase(r.Entries[j].Name) = 'rbx')
then
bx := r.Entries[j];
- FThrPrgInfo.Threads[i].LastLine := FThrPrgInfo.Threads[i].Line;
+
+ FThrPrgInfo.Threads[i].IsCurrent := FThrPrgInfo.Threads[i].ID = dbg.Threads.CurrentThreads.CurrentThreadId;
+
+ FThrPrgInfo.Threads[i].PreviousLine := FThrPrgInfo.Threads[i].Line;
FThrPrgInfo.Threads[i].LastVal := FThrPrgInfo.Threads[i].Val;
- FThrPrgInfo.Threads[i].LastLoop := FThrPrgInfo.Threads[i].Loop;
+ FThrPrgInfo.Threads[i].PreviousLoop := FThrPrgInfo.Threads[i].Loop;
FThrPrgInfo.Threads[i].Address := t.TopFrame.Address;
FThrPrgInfo.Threads[i].Line := t.TopFrame.Line;
if ax <> nil then
@@ -382,25 +401,23 @@
if bx <> nil then
FThrPrgInfo.Threads[i].Loop := StrToInt64Def(bx.Value,-1) and $7FFFFFFF;
- FThrPrgInfo.Threads[i].IsCurrent := False;
if FThrPrgInfo.Threads[i].ID = dbg.Threads.CurrentThreads.CurrentThreadId then begin
- FThrPrgInfo.Threads[i].IsCurrent := True;
-
- FThrPrgInfo.Threads[i].PrevLastBrkLine := FThrPrgInfo.Threads[i].LastBrkLine;
- FThrPrgInfo.Threads[i].PrevLastBrkLoop := FThrPrgInfo.Threads[i].LastBrkLoop;
+ FThrPrgInfo.Threads[i].PreviousLastBrkLine := FThrPrgInfo.Threads[i].LastBrkLine;
+ FThrPrgInfo.Threads[i].PreviousLastBrkLoop := FThrPrgInfo.Threads[i].LastBrkLoop;
FThrPrgInfo.Threads[i].LastBrkLine := FThrPrgInfo.Threads[i].Line;
FThrPrgInfo.Threads[i].LastBrkLoop := FThrPrgInfo.Threads[i].Loop;
end;
- debugln('Thread %d %s (%x): Line: %d (%d) (was %d) Val: %d (was %d) LOOP: %d (was %d) Brk: %d %d (%d %d)', [
+ debugln('Thread %d: ID=%d Cur=%s (%x): Line: %d (%d) (was %d) Val: %d (was %d) LOOP: %d (was %d) Brk: %d %d (%d %d)', [
+ i,
FThrPrgInfo.Threads[i].ID, dbgs(FThrPrgInfo.Threads[i].IsCurrent), FThrPrgInfo.Threads[i].Address,
FThrPrgInfo.Threads[i].Line-FThrPrgInfo.ThrLoopLine0, FThrPrgInfo.Threads[i].Line,
- FThrPrgInfo.Threads[i].LastLine-FThrPrgInfo.ThrLoopLine0,
+ FThrPrgInfo.Threads[i].PreviousLine-FThrPrgInfo.ThrLoopLine0,
FThrPrgInfo.Threads[i].Val, FThrPrgInfo.Threads[i].LastVal,
- FThrPrgInfo.Threads[i].Loop, FThrPrgInfo.Threads[i].LastLoop,
+ FThrPrgInfo.Threads[i].Loop, FThrPrgInfo.Threads[i].PreviousLoop,
FThrPrgInfo.Threads[i].LastBrkLine, FThrPrgInfo.Threads[i].LastBrkLoop,
- FThrPrgInfo.Threads[i].PrevLastBrkLine, FThrPrgInfo.Threads[i].PrevLastBrkLoop
+ FThrPrgInfo.Threads[i].PreviousLastBrkLine, FThrPrgInfo.Threads[i].PreviousLastBrkLoop
]);
end;
end;
@@ -409,43 +426,68 @@
// Make sure no thread skipped any add. All EAX values must be correct
var
i, l: Integer;
+const
+ ExpVal: array[0..10] of integer = (
+ 0, 1, 3, 7, 15,
+ 31, 63, 127, 255, 511,
+ 1023
+ );
begin
for i := 0 to 9 do begin
+ if FThrPrgInfo.Threads[i].Line = -1 then
+ continue;
l := FThrPrgInfo.Threads[i].Line - FThrPrgInfo.ThrLoopLine0;
TestTrue(ATestName+' line in range tid: '+inttostr(FThrPrgInfo.Threads[i].ID), (l>=-1) and (l<FThrPrgInfo.ThrLoopLast-FThrPrgInfo.ThrLoopLine0));
if l > 9 then l := 10;
if l < 0 then l := 10;
- TestEquals(ATestName+' Reg val for '+inttostr(FThrPrgInfo.Threads[i].ID)+ ' / '+inttostr(FThrPrgInfo.Threads[i].Line - FThrPrgInfo.ThrLoopLine0), l, FThrPrgInfo.Threads[i].Val);
+ TestEquals(ATestName+' Reg val for '+inttostr(FThrPrgInfo.Threads[i].ID)+ ' / '+inttostr(FThrPrgInfo.Threads[i].Line - FThrPrgInfo.ThrLoopLine0),
+ ExpVal[l],
+ FThrPrgInfo.Threads[i].Val
+ );
end;
end;
function TTestBreakPoint.ThrPrgInfoHasGoneThroughLine(AIndex, ALine: Integer): boolean;
var
LoopAdjust, LastLoopAdjust: Integer;
+ LoopDiff: Integer;
+ Entry: TBreakThreadPrgInfoEntry;
begin
Result := True;
LoopAdjust := 0;
- if FThrPrgInfo.Threads[AIndex].Line > FThrPrgInfo.ThrLoopInc then LoopAdjust := 1;
+ Entry := FThrPrgInfo.Threads[AIndex];
+
+ if Entry.Line > FThrPrgInfo.ThrLoopInc then LoopAdjust := 1;
LastLoopAdjust := 0;
- if FThrPrgInfo.Threads[AIndex].LastLine > FThrPrgInfo.ThrLoopInc then LastLoopAdjust := 1;
+ if Entry.PreviousLine > FThrPrgInfo.ThrLoopInc then LastLoopAdjust := 1;
+ LoopDiff :=
+ (Entry.Loop-LoopAdjust)
+ - (Entry.PreviousLoop-LastLoopAdjust);
+
// Was in front of line, and now after (or even in next loop)?
- if (FThrPrgInfo.Threads[AIndex].LastLine < ALine) and
- ( (FThrPrgInfo.Threads[AIndex].Line > ALine) or (FThrPrgInfo.Threads[AIndex].Loop-LoopAdjust <> FThrPrgInfo.Threads[AIndex].LastLoop-LastLoopAdjust) )
+ if (Entry.PreviousLine < ALine) and
+ ( (Entry.Line > ALine) or
+ (LoopDiff > 0)
+ )
then
exit;
- // Was exactly at line, and now after AND in next loop-LoopAdjust?
- if (FThrPrgInfo.Threads[AIndex].LastLine = ALine) and
- (FThrPrgInfo.Threads[AIndex].Line > ALine) and (FThrPrgInfo.Threads[AIndex].Loop-LoopAdjust <> FThrPrgInfo.Threads[AIndex].LastLoop-LastLoopAdjust)
+ // Was after line, and now after AND in next loop-LoopAdjust?
+ if (Entry.PreviousLine > ALine) and
+ (Entry.Line > ALine) and
+ (LoopDiff > 0)
then
exit;
- // Was after front of line, and now after AND in next loop-LoopAdjust?
- if (FThrPrgInfo.Threads[AIndex].LastLine < ALine) and
- (FThrPrgInfo.Threads[AIndex].Line > ALine) and (FThrPrgInfo.Threads[AIndex].Loop-LoopAdjust <> FThrPrgInfo.Threads[AIndex].LastLoop-LastLoopAdjust)
+
+ // Was exactly at line, and now after AND in next loop-LoopAdjust?
+ if (Entry.PreviousLine = ALine) and
+ (Entry.Line > ALine) and
+ (LoopDiff > 1)
then
exit;
+
// More than one loop-LoopAdjust ...
- if (FThrPrgInfo.Threads[AIndex].Loop-LoopAdjust > FThrPrgInfo.Threads[AIndex].LastLoop-LastLoopAdjust + 1)
+ if (LoopDiff > 1)
then
exit;
Result := False;
@@ -462,16 +504,17 @@
if FThrPrgInfo.Threads[i].Line = ALine then
inc(AtLine)
else
- if FThrPrgInfo.Threads[i].LastLine = ALine then // Current line moved on, stepped over break
+ if FThrPrgInfo.Threads[i].PreviousLine = ALine then // Current line moved on, stepped over break
inc(AfterLine);
- if AtLine > 1 then Inc(AManyAt);
- if AfterLine > 1 then Inc(AManyAfter);
+ if AtLine > 3 then Inc(AManyAt);
+ if AfterLine > 2 then Inc(AManyAfter);
end;
var
ExeName: String;
i, j: Integer;
MainBrk, Brk1, Brk2, Brk3, Brk4, Brk5: TDBGBreakPoint;
ManyAtBrk1, ManyAfterBrk1: Integer;
+ Entry: TBreakThreadPrgInfoEntry;
begin
if SkipTest then exit;
if not TestControlCanTest(ControlTestThreadNoSkip) then exit;
@@ -501,26 +544,37 @@
Brk1 := Debugger.SetBreakPoint(Src, 'BrkThread1');
+ (* ManyAtBrk1 / ManyAfterBrk1
+ Cumulative count accross all "j" loop iterations.
+ ManyAtBrk1: Count "j"-iterations with at least 3 threads have been at "Brk1"
+ ManyAfterBrk1: Count "j"-iterations with at least 3 threads just stepped/run away from "Brk1"
+ *)
ManyAtBrk1 := 0;
ManyAfterBrk1 := 0;
- for j := 0 to 200 do begin
+
+ (* Each iteration the test checks that all "add eax, n" have been executed.
+ *)
+ for j := 0 to 300 do begin
AssertDebuggerNotInErrorState;
Debugger.RunToNextPause(dcRun);
AssertDebuggerState(dsPause);
ThrPrgUpdateThreads('loop fixed brk '+IntToStr(j));
- ThrPrgCheckNoSkip('loop, fixed brk '+IntToStr(j));
+ ThrPrgCheckNoSkip('loop, fixed brk '+IntToStr(j)); // Compare AX with line
for i := 0 to 9 do begin
+ Entry := FThrPrgInfo.Threads[i];
+ if Entry.PreviousLine < 0 then
+ continue;
+
TestTrue('THread not gone over break 1 at line '+IntToStr(Brk1.Line)+' '+IntToStr(i),
not ThrPrgInfoHasGoneThroughLine(i, Brk1.Line)
);
-
- HasManyAtLine(Brk1.Line, ManyAtBrk1, ManyAfterBrk1);
end;
- if (i > 50) and (ManyAtBrk1 > 5) and (ManyAfterBrk1 > 5) then begin
- DebugLn('~~~~~~~~~~~~~ End loop early i=%d at=%d after=%d', [i, ManyAtBrk1, ManyAfterBrk1]);
+ HasManyAtLine(Brk1.Line, ManyAtBrk1, ManyAfterBrk1);
+ if (j > 50) and (ManyAtBrk1 > 20) and (ManyAfterBrk1 > 15) then begin
+ DebugLn('~~~~~~~~~~~~~ End loop early j=%d at=%d after=%d', [j, ManyAtBrk1, ManyAfterBrk1]);
break;
end;
end;
@@ -530,6 +584,11 @@
// Add more breaks
Brk3 := Debugger.SetBreakPoint(Src, 'BrkThread5');
Brk5 := Debugger.SetBreakPoint(Src, 'BrkThread9');
+ // clear values from last loop
+ for i := 0 to 9 do begin
+ FThrPrgInfo.Threads[i].LastBrkLine := -1;
+ FThrPrgInfo.Threads[i].PreviousLastBrkLine := -1;
+ end;
for j := 0 to 100 do begin
AssertDebuggerNotInErrorState;
@@ -540,21 +599,47 @@
ThrPrgCheckNoSkip('loop, fixed brk '+IntToStr(j));
for i := 0 to 9 do begin
- TestTrue('THread not gone over break 1 at line '+IntToStr(Brk1.Line)+' '+IntToStr(i),
+ Entry := FThrPrgInfo.Threads[i];
+ if Entry.PreviousLine < 0 then
+ continue;
+
+ TestTrue('THread not gone over break(n/3) 1 at line '+IntToStr(Brk1.Line)+' '+IntToStr(i),
not ThrPrgInfoHasGoneThroughLine(i, Brk1.Line)
);
- TestTrue('THread not gone over break 3 at line '+IntToStr(Brk3.Line)+' '+IntToStr(i),
+ TestTrue('THread not gone over break(n/3) 3 at line '+IntToStr(Brk3.Line)+' '+IntToStr(i),
not ThrPrgInfoHasGoneThroughLine(i, Brk3.Line)
);
- TestTrue('THread not gone over break 5 at line '+IntToStr(Brk5.Line)+' '+IntToStr(i),
+ TestTrue('THread not gone over break(n/3) 5 at line '+IntToStr(Brk5.Line)+' '+IntToStr(i),
not ThrPrgInfoHasGoneThroughLine(i, Brk5.Line)
);
+
+ if Entry.PreviousLastBrkLine > 0 then begin
+ if Entry.LastBrkLine = Brk1.Line then begin
+ TestEquals('Previous break(n/3) before Brk1', Brk5.Line, Entry.PreviousLastBrkLine);
+ TestTrue ('Previous break-loop(n/3) before Brk1', Entry.LastBrkLoop = Entry.PreviousLastBrkLoop + 1);
+ end
+ else
+ if Entry.LastBrkLine = Brk3.Line then begin
+ TestEquals('Previous break(n/3) before Brk3', Brk1.Line, Entry.PreviousLastBrkLine);
+ TestTrue ('Previous break-loop(n/3) before Brk3', Entry.LastBrkLoop = Entry.PreviousLastBrkLoop);
+ end
+ else
+ if Entry.LastBrkLine = Brk5.Line then begin
+ TestEquals('Previous break(n/3) before Brk5', Brk3.Line, Entry.PreviousLastBrkLine);
+ TestTrue ('Previous break-loop(n/3) before Brk5', Entry.LastBrkLoop = Entry.PreviousLastBrkLoop);
+ end;
+ end;
end;
end;
// Add more breaks
Brk2 := Debugger.SetBreakPoint(Src, 'BrkThread3');
Brk4 := Debugger.SetBreakPoint(Src, 'BrkThread7');
+ // clear values from last loop
+ for i := 0 to 9 do begin
+ FThrPrgInfo.Threads[i].LastBrkLine := -1;
+ FThrPrgInfo.Threads[i].PreviousLastBrkLine := -1;
+ end;
for j := 0 to 100 do begin
AssertDebuggerNotInErrorState;
@@ -565,21 +650,26 @@
ThrPrgCheckNoSkip('loop, fixed brk '+IntToStr(j));
for i := 0 to 9 do begin
- TestTrue('THread not gone over break 1 at line '+IntToStr(Brk1.Line)+' '+IntToStr(i),
+ Entry := FThrPrgInfo.Threads[i];
+ if Entry.PreviousLine < 0 then
+ continue;
+
+ TestTrue('THread not gone over break(n/5) 1 at line '+IntToStr(Brk1.Line)+' '+IntToStr(i),
not ThrPrgInfoHasGoneThroughLine(i, Brk1.Line)
);
- TestTrue('THread not gone over break 2 at line '+IntToStr(Brk2.Line)+' '+IntToStr(i),
+ TestTrue('THread not gone over break(n/5) 2 at line '+IntToStr(Brk2.Line)+' '+IntToStr(i),
not ThrPrgInfoHasGoneThroughLine(i, Brk2.Line)
);
- TestTrue('THread not gone over break 3 at line '+IntToStr(Brk3.Line)+' '+IntToStr(i),
+ TestTrue('THread not gone over break(n/5) 3 at line '+IntToStr(Brk3.Line)+' '+IntToStr(i),
not ThrPrgInfoHasGoneThroughLine(i, Brk3.Line)
);
- TestTrue('THread not gone over break 4 at line '+IntToStr(Brk4.Line)+' '+IntToStr(i),
+ TestTrue('THread not gone over break(n/5) 4 at line '+IntToStr(Brk4.Line)+' '+IntToStr(i),
not ThrPrgInfoHasGoneThroughLine(i, Brk4.Line)
);
- TestTrue('THread not gone over break 5 at line '+IntToStr(Brk5.Line)+' '+IntToStr(i),
+ TestTrue('THread not gone over break(n/5) 5 at line '+IntToStr(Brk5.Line)+' '+IntToStr(i),
not ThrPrgInfoHasGoneThroughLine(i, Brk5.Line)
);
+
end;
end;
@@ -598,6 +688,7 @@
ExeName: String;
i, j: Integer;
MainBrk, Brk1: TDBGBreakPoint;
+ Entry: TBreakThreadPrgInfoEntry;
begin
if SkipTest then exit;
if not TestControlCanTest(ControlTestThreadMove1) then exit;
@@ -633,6 +724,9 @@
ThrPrgCheckNoSkip('loop, one brk '+IntToStr(j));
for i := 0 to 9 do begin
+ Entry := FThrPrgInfo.Threads[i];
+ if Entry.PreviousLine < 0 then
+ continue;
TestTrue('THread not gone over break at line '+IntToStr(Brk1.Line)+' '+IntToStr(i),
not ThrPrgInfoHasGoneThroughLine(i, Brk1.Line)
);
@@ -657,6 +751,7 @@
ExeName: String;
i, j: Integer;
MainBrk, Brk1, Brk2, Brk3, Brk4, Brk5: TDBGBreakPoint;
+ Entry: TBreakThreadPrgInfoEntry;
begin
if SkipTest then exit;
if not TestControlCanTest(ControlTestThreadMove2) then exit;
@@ -702,6 +797,9 @@
ThrPrgCheckNoSkip('loop, changing brk '+IntToStr(j));
for i := 0 to 9 do begin
+ Entry := FThrPrgInfo.Threads[i];
+ if Entry.PreviousLine < 0 then
+ continue;
TestTrue('THread not gone over break '+IntToStr(i), not ThrPrgInfoHasGoneThroughLine(i, Brk1.Line) );
TestTrue('THread not gone over break '+IntToStr(i), not ThrPrgInfoHasGoneThroughLine(i, Brk2.Line) );
TestTrue('THread not gone over break '+IntToStr(i), not ThrPrgInfoHasGoneThroughLine(i, Brk3.Line) );
@@ -727,7 +825,7 @@
begin
Result := True; // defaults to ok, if Line is not in this range.
if FThrPrgInfo.Threads[AnIdx].LastBrkLine = -1 then exit;
- if FThrPrgInfo.Threads[AnIdx].PrevLastBrkLine = -1 then exit;
+ if FThrPrgInfo.Threads[AnIdx].PreviousLastBrkLine = -1 then exit;
if FThrPrgInfo.Threads[AnIdx].Line = BrkLine then begin
if FThrPrgInfo.Threads[AnIdx].IsCurrent then
@@ -738,8 +836,8 @@
if FThrPrgInfo.Threads[AnIdx].Line = NextBrkLine then begin
if (FThrPrgInfo.Threads[AnIdx].LastBrkLine = NextBrkLine) then
Result := (FThrPrgInfo.Threads[AnIdx].LastBrkLoop = FThrPrgInfo.Threads[AnIdx].Loop) and
- (FThrPrgInfo.Threads[AnIdx].PrevLastBrkLine = BrkLine)
- // PrevLastBrkLoop can be equal or 1 less
+ (FThrPrgInfo.Threads[AnIdx].PreviousLastBrkLine = BrkLine)
+ // PreviousLastBrkLoop can be equal or 1 less
else
Result := (FThrPrgInfo.Threads[AnIdx].LastBrkLine = BrkLine)
;
@@ -768,6 +866,7 @@
ExeName: String;
i, j: Integer;
MainBrk, Brk1, Brk2, Brk3, Brk4, Brk5: TDBGBreakPoint;
+ Entry: TBreakThreadPrgInfoEntry;
begin
if SkipTest then exit;
if not TestControlCanTest(ControlTestThreadHit) then exit;
@@ -802,6 +901,9 @@
ThrPrgCheckNoSkip('loop, changing brk '+IntToStr(j));
for i := 0 to 9 do begin
+ Entry := FThrPrgInfo.Threads[i];
+ if Entry.PreviousLine < 0 then
+ continue;
TestTrue('THread not gone over break '+IntToStr(i), not ThrPrgInfoHasGoneThroughLine(i, Brk1.Line) );
TestTrue('THread not gone over break '+IntToStr(i), not ThrPrgInfoHasGoneThroughLine(i, Brk2.Line) );
TestTrue('THread not gone over break '+IntToStr(i), not ThrPrgInfoHasGoneThroughLine(i, Brk3.Line) );
diff -Nru lazarus-2.2.4+dfsg1/components/lazutils/lazutf8.pas lazarus-2.2.6+dfsg1/components/lazutils/lazutf8.pas
--- lazarus-2.2.4+dfsg1/components/lazutils/lazutf8.pas 2022-09-25 12:37:17.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/lazutils/lazutf8.pas 2023-03-04 14:24:24.000000000 +0100
@@ -4056,7 +4056,10 @@
function TStringListUTF8Fast.DoCompareText(const s1, s2: string): PtrInt;
begin
- Result:=UTF8CompareLatinTextFast(s1, s2);
+ if CaseSensitive then
+ Result := Utf8CompareStr(s1, s2)
+ else
+ Result:=UTF8CompareLatinTextFast(s1, s2);
end;
diff -Nru lazarus-2.2.4+dfsg1/components/lazutils/lazversion.pas lazarus-2.2.6+dfsg1/components/lazutils/lazversion.pas
--- lazarus-2.2.4+dfsg1/components/lazutils/lazversion.pas 2022-09-25 12:37:17.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/lazutils/lazversion.pas 2023-03-04 14:24:24.000000000 +0100
@@ -22,10 +22,10 @@
const
laz_major = 2;
laz_minor = 2;
- laz_release = 4;
+ laz_release = 6;
laz_patch = 0;
laz_fullversion = ((laz_major * 100 + laz_minor) * 100 + laz_release) * 100 + laz_patch;
- laz_version = '2.2.4.0';
+ laz_version = '2.2.6.0';
implementation
diff -Nru lazarus-2.2.4+dfsg1/components/lazutils/masks.pas lazarus-2.2.6+dfsg1/components/lazutils/masks.pas
--- lazarus-2.2.4+dfsg1/components/lazutils/masks.pas 2022-09-25 12:37:17.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/lazutils/masks.pas 2023-03-04 14:24:24.000000000 +0100
@@ -73,11 +73,11 @@
function GetCount: Integer;
function GetItem(Index: Integer): TMask;
public
- constructor Create(const AValue: String; ASeparator: Char; const CaseSensitive: Boolean);
- constructor Create(const AValue: String; ASeparator: Char = ';'; const AOptions: TMaskOptions = []);
+ constructor Create(const AValue: String; ASeparator: Char; const CaseSensitive: Boolean); virtual;
+ constructor Create(const AValue: String; ASeparator: Char = ';'; const AOptions: TMaskOptions = []); virtual;
destructor Destroy; override;
- function Matches(const AFileName: String): Boolean;
+ function Matches(const AFileName: String): Boolean; virtual;
function MatchesWindowsMask(const AFileName: String): Boolean;
property Count: Integer read GetCount;
diff -Nru lazarus-2.2.4+dfsg1/components/sqldb/generatesqldlg.lfm lazarus-2.2.6+dfsg1/components/sqldb/generatesqldlg.lfm
--- lazarus-2.2.4+dfsg1/components/sqldb/generatesqldlg.lfm 2022-09-25 12:37:17.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/sqldb/generatesqldlg.lfm 2023-03-04 14:24:24.000000000 +0100
@@ -1,19 +1,21 @@
object GenerateSQLForm: TGenerateSQLForm
Left = 364
- Height = 423
+ Height = 419
Top = 295
- Width = 796
+ Width = 797
ActiveControl = PCSQL
Caption = 'Edit/Generate SQL statements'
- ClientHeight = 423
- ClientWidth = 796
+ ClientHeight = 419
+ ClientWidth = 797
+ OnActivate = FormActivate
OnCreate = FormCreate
- LCLVersion = '2.1.0.0'
+ Position = poScreenCenter
+ LCLVersion = '2.3.0.0'
object PCSQL: TPageControl
Left = 0
- Height = 372
+ Height = 373
Top = 0
- Width = 796
+ Width = 797
ActivePage = TSFields
Align = alClient
TabIndex = 0
@@ -25,151 +27,228 @@
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.ControlsPerLine = 3
- ClientHeight = 341
- ClientWidth = 786
+ ClientHeight = 345
+ ClientWidth = 789
OnResize = TSResize
object POptions: TPanel
Left = 0
- Height = 341
+ Height = 345
Top = 0
- Width = 254
+ Width = 263
Align = alLeft
BevelOuter = bvNone
- ClientHeight = 341
- ClientWidth = 254
- Constraints.MinWidth = 180
+ ClientHeight = 345
+ ClientWidth = 263
TabOrder = 0
object LCBTables: TLabel
+ AnchorSideLeft.Control = CBTables
+ AnchorSideTop.Control = CBSystemTables
+ AnchorSideTop.Side = asrCenter
Left = 8
- Height = 16
- Top = 8
- Width = 64
- Anchors = [akTop, akLeft, akRight]
- AutoSize = False
+ Height = 15
+ Top = 5
+ Width = 27
Caption = 'Ta&ble'
+ Color = clDefault
FocusControl = CBTables
ParentColor = False
end
object LSEIndent: TLabel
- Left = 30
- Height = 20
- Top = 202
- Width = 150
+ AnchorSideTop.Control = seIndent
+ AnchorSideTop.Side = asrCenter
+ AnchorSideRight.Control = seIndent
+ Left = 169
+ Height = 15
+ Top = 214
+ Width = 34
Alignment = taRightJustify
- Anchors = [akTop, akLeft, akRight]
- AutoSize = False
+ Anchors = [akTop, akRight]
+ BorderSpacing.Right = 4
Caption = 'I&ndent'
+ Color = clDefault
Layout = tlCenter
ParentColor = False
end
object LSELineLength: TLabel
- Left = 22
- Height = 20
- Top = 231
- Width = 154
+ AnchorSideTop.Control = seLineLength
+ AnchorSideTop.Side = asrCenter
+ AnchorSideRight.Control = seLineLength
+ Left = 141
+ Height = 15
+ Top = 245
+ Width = 62
Alignment = taRightJustify
- Anchors = [akTop, akLeft, akRight]
- AutoSize = False
+ Anchors = [akTop, akRight]
+ BorderSpacing.Right = 4
Caption = 'Line Length'
+ Color = clDefault
Layout = tlCenter
ParentColor = False
end
object CBTables: TComboBox
+ AnchorSideLeft.Control = POptions
+ AnchorSideTop.Control = CBSystemTables
+ AnchorSideTop.Side = asrBottom
+ AnchorSideRight.Control = POptions
+ AnchorSideRight.Side = asrBottom
Left = 8
- Height = 31
- Top = 32
- Width = 238
+ Height = 23
+ Top = 25
+ Width = 247
Anchors = [akTop, akLeft, akRight]
- ItemHeight = 0
+ BorderSpacing.Left = 8
+ BorderSpacing.Top = 3
+ BorderSpacing.Right = 8
+ ItemHeight = 15
OnChange = CBTablesChange
Sorted = True
Style = csDropDownList
- TabOrder = 0
+ TabOrder = 1
end
object BGenerate: TButton
+ AnchorSideLeft.Control = CBTables
+ AnchorSideRight.Control = CBTables
+ AnchorSideRight.Side = asrBottom
+ AnchorSideBottom.Control = POptions
+ AnchorSideBottom.Side = asrBottom
Left = 8
Height = 25
- Top = 305
- Width = 238
+ Top = 314
+ Width = 247
Anchors = [akLeft, akRight, akBottom]
+ BorderSpacing.Top = 6
+ BorderSpacing.Bottom = 6
BorderSpacing.InnerBorder = 4
Caption = '&Generate SQL'
OnClick = BGenerateClick
- TabOrder = 1
+ TabOrder = 9
end
object seIndent: TSpinEdit
- Left = 196
- Height = 29
- Top = 197
- Width = 50
- TabOrder = 2
+ AnchorSideTop.Control = cbFullyQualifiedFields
+ AnchorSideTop.Side = asrBottom
+ AnchorSideRight.Control = CBTables
+ AnchorSideRight.Side = asrBottom
+ Left = 207
+ Height = 23
+ Top = 210
+ Width = 48
+ Alignment = taRightJustify
+ Anchors = [akTop, akRight]
+ BorderSpacing.Top = 16
+ TabOrder = 7
Value = 2
end
object seLineLength: TSpinEdit
- Left = 196
- Height = 29
- Top = 229
- Width = 50
- TabOrder = 3
+ AnchorSideTop.Control = seIndent
+ AnchorSideTop.Side = asrBottom
+ AnchorSideRight.Control = CBTables
+ AnchorSideRight.Side = asrBottom
+ Left = 207
+ Height = 23
+ Top = 241
+ Width = 48
+ Alignment = taRightJustify
+ Anchors = [akTop, akRight]
+ BorderSpacing.Top = 8
+ TabOrder = 8
Value = 72
end
object CBQuoteFields: TCheckBox
+ AnchorSideLeft.Control = POptions
+ AnchorSideTop.Control = edtQuoteChar
+ AnchorSideTop.Side = asrCenter
Left = 8
- Height = 23
- Top = 72
- Width = 95
+ Height = 19
+ Top = 70
+ Width = 84
+ BorderSpacing.Left = 8
Caption = 'Quote Fields'
- TabOrder = 4
+ TabOrder = 2
end
object CBSystemTables: TCheckBox
- Left = 88
- Height = 23
+ AnchorSideTop.Control = POptions
+ AnchorSideRight.Control = CBTables
+ AnchorSideRight.Side = asrBottom
+ Left = 134
+ Height = 19
Top = 3
- Width = 136
+ Width = 121
+ Anchors = [akTop, akRight]
+ BorderSpacing.Top = 3
Caption = 'Show system tables'
OnChange = CBSystemTablesChange
- TabOrder = 5
+ TabOrder = 0
end
object CBOneFieldPerLine: TCheckBox
+ AnchorSideLeft.Control = POptions
+ AnchorSideTop.Control = CBQuoteFields
+ AnchorSideTop.Side = asrBottom
Left = 8
- Height = 23
- Top = 104
- Width = 121
+ Height = 19
+ Top = 105
+ Width = 108
+ BorderSpacing.Left = 8
+ BorderSpacing.Top = 16
Caption = 'One field per line'
- TabOrder = 6
+ TabOrder = 4
end
object cbUpperCaseKeywords: TCheckBox
+ AnchorSideLeft.Control = POptions
+ AnchorSideTop.Control = CBOneFieldPerLine
+ AnchorSideTop.Side = asrBottom
Left = 8
- Height = 23
- Top = 136
- Width = 143
+ Height = 19
+ Top = 140
+ Width = 126
+ BorderSpacing.Left = 8
+ BorderSpacing.Top = 16
Caption = 'Uppercase keywords'
- TabOrder = 7
+ TabOrder = 5
end
object cbFullyQualifiedFields: TCheckBox
+ AnchorSideLeft.Control = POptions
+ AnchorSideTop.Control = cbUpperCaseKeywords
+ AnchorSideTop.Side = asrBottom
Left = 8
- Height = 23
- Top = 168
- Width = 135
+ Height = 19
+ Top = 175
+ Width = 123
+ BorderSpacing.Left = 8
+ BorderSpacing.Top = 16
Caption = 'Fully qualified fields'
- TabOrder = 8
+ TabOrder = 6
end
object edtQuoteChar: TEdit
- Left = 214
- Height = 29
- Top = 69
+ AnchorSideTop.Control = CBTables
+ AnchorSideTop.Side = asrBottom
+ AnchorSideRight.Control = CBTables
+ AnchorSideRight.Side = asrBottom
+ Left = 223
+ Height = 23
+ Top = 68
Width = 32
+ Alignment = taCenter
+ Anchors = [akTop, akRight]
+ BorderSpacing.Top = 20
MaxLength = 1
- TabOrder = 9
+ TabOrder = 3
Text = '"'
end
object lblQuoteChar: TLabel
- Left = 143
- Height = 17
- Top = 74
- Width = 62
+ AnchorSideTop.Control = edtQuoteChar
+ AnchorSideTop.Side = asrCenter
+ AnchorSideRight.Control = edtQuoteChar
+ Left = 160
+ Height = 15
+ Top = 72
+ Width = 59
Alignment = taRightJustify
+ Anchors = [akTop, akRight]
+ BorderSpacing.Left = 16
+ BorderSpacing.Right = 4
Caption = 'Quote char'
+ Color = clDefault
+ Layout = tlCenter
ParentColor = False
end
end
@@ -177,90 +256,95 @@
AnchorSideLeft.Control = POptions
AnchorSideLeft.Side = asrBottom
AnchorSideRight.Control = PSelectFields
- Left = 254
- Height = 341
+ Left = 263
+ Height = 345
Top = 0
- Width = 244
+ Width = 263
Align = alClient
BevelOuter = bvNone
- ClientHeight = 341
- ClientWidth = 244
+ ClientHeight = 345
+ ClientWidth = 263
TabOrder = 1
object LLBKeyFields: TLabel
Left = 0
- Height = 26
- Top = 0
- Width = 244
+ Height = 15
+ Top = 4
+ Width = 263
Align = alTop
Alignment = taCenter
- AutoSize = False
+ BorderSpacing.Top = 4
Caption = '&Key fields'
+ Color = clDefault
Layout = tlCenter
ParentColor = False
end
object LBKeyFields: TListBox
- Left = 2
- Height = 296
- Top = 34
- Width = 238
- Anchors = [akTop, akLeft, akRight, akBottom]
+ Left = 6
+ Height = 314
+ Top = 25
+ Width = 247
+ Align = alClient
+ BorderSpacing.Right = 4
+ BorderSpacing.Around = 6
ItemHeight = 0
MultiSelect = True
- ScrollWidth = 236
+ ScrollWidth = 240
Sorted = True
TabOrder = 0
- TopIndex = -1
end
end
object PSelectFields: TPanel
- Left = 498
- Height = 341
+ Left = 526
+ Height = 345
Top = 0
- Width = 288
+ Width = 263
Align = alRight
BevelOuter = bvNone
- ClientHeight = 341
- ClientWidth = 288
+ ClientHeight = 345
+ ClientWidth = 263
TabOrder = 2
object Label2: TLabel
+ AnchorSideRight.Side = asrBottom
Left = 0
- Height = 26
- Top = 0
- Width = 288
+ Height = 15
+ Top = 4
+ Width = 263
Align = alTop
Alignment = taCenter
- AutoSize = False
+ BorderSpacing.Top = 4
Caption = 'Select/Update/Insert fields'
+ Color = clDefault
Layout = tlCenter
ParentColor = False
end
object LBFields: TListBox
- Left = 12
- Height = 296
- Top = 34
- Width = 266
- Anchors = [akTop, akLeft, akRight, akBottom]
+ Left = 6
+ Height = 314
+ Top = 25
+ Width = 247
+ Align = alClient
+ BorderSpacing.Right = 4
+ BorderSpacing.Around = 6
ItemHeight = 0
MultiSelect = True
- ScrollWidth = 264
+ ScrollWidth = 240
Sorted = True
TabOrder = 0
- TopIndex = -1
end
end
end
object TSSelect: TTabSheet
Caption = 'Select'
- ClientHeight = 341
- ClientWidth = 786
+ ClientHeight = 345
+ ClientWidth = 789
inline MSelect: TSynEdit
Left = 0
- Height = 328
+ Height = 345
Top = 0
- Width = 802
+ Width = 789
Align = alClient
- Font.Height = 13
- Font.Name = 'DejaVu Sans Mono'
+ Font.Height = -13
+ Font.Name = 'Courier New'
Font.Pitch = fpFixed
Font.Quality = fqNonAntialiased
ParentColor = False
@@ -756,16 +840,16 @@
end
object TSInsert: TTabSheet
Caption = '&Insert'
- ClientHeight = 341
- ClientWidth = 786
+ ClientHeight = 345
+ ClientWidth = 789
inline MInsert: TSynEdit
Left = 0
- Height = 328
+ Height = 345
Top = 0
- Width = 802
+ Width = 789
Align = alClient
- Font.Height = 13
- Font.Name = 'DejaVu Sans Mono'
+ Font.Height = -13
+ Font.Name = 'Courier New'
Font.Pitch = fpFixed
Font.Quality = fqNonAntialiased
ParentColor = False
@@ -1261,16 +1345,16 @@
end
object TSUpdate: TTabSheet
Caption = '&Update'
- ClientHeight = 341
- ClientWidth = 786
+ ClientHeight = 345
+ ClientWidth = 789
inline MUpdate: TSynEdit
Left = 0
- Height = 328
+ Height = 345
Top = 0
- Width = 802
+ Width = 789
Align = alClient
- Font.Height = 13
- Font.Name = 'DejaVu Sans Mono'
+ Font.Height = -13
+ Font.Name = 'Courier New'
Font.Pitch = fpFixed
Font.Quality = fqNonAntialiased
ParentColor = False
@@ -1766,16 +1850,16 @@
end
object TSDelete: TTabSheet
Caption = '&Delete'
- ClientHeight = 341
- ClientWidth = 786
+ ClientHeight = 345
+ ClientWidth = 789
inline MDelete: TSynEdit
Left = 0
- Height = 328
+ Height = 345
Top = 0
- Width = 802
+ Width = 789
Align = alClient
- Font.Height = 13
- Font.Name = 'DejaVu Sans Mono'
+ Font.Height = -13
+ Font.Name = 'Courier New'
Font.Pitch = fpFixed
Font.Quality = fqNonAntialiased
ParentColor = False
@@ -2271,16 +2355,16 @@
end
object TSRefresh: TTabSheet
Caption = 'Refresh'
- ClientHeight = 341
- ClientWidth = 786
+ ClientHeight = 345
+ ClientWidth = 789
inline MRefresh: TSynEdit
Left = 0
- Height = 328
+ Height = 345
Top = 0
- Width = 802
+ Width = 789
Align = alClient
- Font.Height = 13
- Font.Name = 'DejaVu Sans Mono'
+ Font.Height = -13
+ Font.Name = 'Courier New'
Font.Pitch = fpFixed
Font.Quality = fqNonAntialiased
ParentColor = False
@@ -2777,9 +2861,9 @@
end
object BPGenSQL: TButtonPanel
Left = 6
- Height = 39
- Top = 378
- Width = 784
+ Height = 34
+ Top = 379
+ Width = 785
OKButton.Name = 'OKButton'
OKButton.DefaultCaption = True
HelpButton.Name = 'HelpButton'
@@ -2795,7 +2879,7 @@
DefaultFilter = 'SQL Files (*.sql)|*.sql'
Enabled = False
SQLDialect = sqlFirebird40
- left = 392
- top = 64
+ Left = 392
+ Top = 64
end
end
diff -Nru lazarus-2.2.4+dfsg1/components/sqldb/generatesqldlg.pp lazarus-2.2.6+dfsg1/components/sqldb/generatesqldlg.pp
--- lazarus-2.2.4+dfsg1/components/sqldb/generatesqldlg.pp 2022-09-25 12:37:17.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/sqldb/generatesqldlg.pp 2023-03-04 14:24:24.000000000 +0100
@@ -73,12 +73,14 @@
procedure BGenerateClick(Sender: TObject);
procedure CBSystemTablesChange(Sender: TObject);
procedure CBTablesChange(Sender: TObject);
+ procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TSResize(Sender: TObject);
private
FConnection : TSQLConnection;
FDataset: TSQLQuery;
QuoteChar : Char;
+ FActivateCalled: Boolean;
Function IndentString : string;
Function SQLKeyWord(aKeyWord : TSQLKeyWord) : String;
procedure GenDeleteSQL(const TableName : string; KeyFields, SQL: TStrings);
@@ -124,7 +126,7 @@
try
Dataset:=Q;
Connection:=Q.SQLConnection;
- SelectSQL.Text:=Q.SQL.text;
+ SelectSQL.Text:=Q.SQL.Text;
UpdateSQL.Text:=Q.UpdateSQL.Text;
DeleteSQL.Text:=Q.DeleteSQL.Text;
InsertSQL.Text:=Q.insertSQL.Text;
@@ -132,7 +134,7 @@
Result:=ShowModal=mrOK;
if Result then
begin
- Q.SQL.text := SelectSQL.Text;
+ Q.SQL.Text := SelectSQL.Text;
Q.UpdateSQL.Text := UpdateSQL.Text;
Q.DeleteSQL.Text := DeleteSQL.Text;
Q.insertSQL.Text := InsertSQL.Text;
@@ -164,7 +166,7 @@
L:=L+' '+Format('(%s = :%s%s)', [FieldName,ParamPrefix,KeyFields[I]]);
if I<KeyFields.Count - 1 then
L:=L+' '+SQLKeyWord(skAnd);
- if CBOneFieldPerLine.Checked or ((Length(L)>MaxLen) and IsNotLast) then
+ if CBOneFieldPerLine.Checked or (Length(L)>MaxLen) or (not IsNotLast) then
begin
SQL.Add(L);
L:=IndentString;
@@ -213,7 +215,7 @@
L:=L+FN;
if IsNotLast then
L:=L+', ';
- if CBOneFieldPerLine.Checked or ((Length(L)>MaxLen) and IsNotLast) then
+ if CBOneFieldPerLine.Checked or (Length(L)>MaxLen) or (not IsNotLast) then
begin
SQL.Add(L);
L:=IndentString;
@@ -251,7 +253,7 @@
L:=L+FN;
if IsNotLast then
L:=L+', ';
- if CBOneFieldPerLine.Checked or ((Length(L)>MaxLen) and IsNotLast) then
+ if CBOneFieldPerLine.Checked or (Length(L)>MaxLen) or (not IsNotLast) then
begin
SQL.Add(L);
L:=IndentString;
@@ -299,7 +301,7 @@
L:=L+FN;
if IsNotLast then
L:=L+', ';
- if CBOneFieldPerLine.Checked or ((Length(L)>MaxLen) and IsNotLast) then
+ if CBOneFieldPerLine.Checked or (Length(L)>MaxLen) or (not IsNotLast) then
begin
SQL.Add(L);
L:=IndentString;
@@ -372,9 +374,9 @@
W : Integer;
begin
- W:=TSFields.CLientWidth div 3;
- POPtions.Width:=W;
- PSelectFIelds.Width:=W;
+ W:=TSFields.ClientWidth div 3;
+ POptions.Width:=W;
+ PSelectFields.Width:= (TSFields.ClientWidth - POptions.Width) div 2;
end;
function TGenerateSQLForm.IndentString: string;
@@ -527,11 +529,36 @@
ClearSQL;
end;
+procedure TGenerateSQLForm.FormActivate(Sender: TObject);
+begin
+ if FActivateCalled then
+ exit;
+ FActivateCalled := true;
+ Constraints.MinHeight := PCSQL.Height - PCSQL.ClientHeight +
+ seLineLength.Top + seLineLength.Height +
+ bGenerate.Height + bGenerate.BorderSpacing.Top + bGenerate.BorderSpacing.Bottom +
+ BPGenSQL.Height + BPGenSQL.BorderSpacing.Around*2;
+ Constraints.MinWidth := 3 * (PCSQL.Width - PCSQL.ClientWidth +
+ CBQuoteFields.Left + CBQuoteFields.Width +
+ lblQuoteChar.BorderSpacing.Left + lblQuoteChar.Width + lblQuoteChar.BorderSpacing.Right +
+ edtQuoteChar.Width + CBTables.BorderSpacing.Right);
+end;
+
procedure TGenerateSQLForm.FormCreate(Sender: TObject);
begin
Caption:= lrsGeneratesqlstatements;
EdtQuoteChar.Text:='"';
+ MSelect.Font.Height := SynDefaultFontHeight;
+ MSelect.Font.Name := SynDefaultFontName;
+ MInsert.Font.Height := SynDefaultFontHeight;
+ MInsert.Font.Name := SynDefaultFontName;
+ MUpdate.Font.Height := SynDefaultFontHeight;
+ MUpdate.Font.Name := SynDefaultFontName;
+ MDelete.Font.Height := SynDefaultFontHeight;
+ MDelete.Font.Name := SynDefaultFontName;
+ MRefresh.Font.Height := SynDefaultFontHeight;
+ MRefresh.Font.Name := SynDefaultFontName;
end;
procedure TGenerateSQLForm.BGenerateClick(Sender: TObject);
diff -Nru lazarus-2.2.4+dfsg1/components/synedit/synedit.pp lazarus-2.2.6+dfsg1/components/synedit/synedit.pp
--- lazarus-2.2.4+dfsg1/components/synedit/synedit.pp 2022-09-25 12:37:17.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/synedit/synedit.pp 2023-03-04 14:24:24.000000000 +0100
@@ -7998,7 +7998,7 @@
nFound: integer;
bBackward, bFromCursor: boolean;
bPrompt: boolean;
- bReplace, bReplaceAll, SelIsColumn: boolean;
+ bReplace, bReplaceAll, SelIsColumn, ZeroLen: boolean;
nAction: TSynReplaceAction;
CurReplace: string;
ptFoundStart, ptFoundEnd: TPoint;
@@ -8091,10 +8091,16 @@
begin
//DebugLn(['TCustomSynEdit.SearchReplace FOUND ptStart=',dbgs(ptStart),' ptEnd=',dbgs(ptEnd),' ptFoundStart=',dbgs(ptFoundStart),' ptFoundEnd=',dbgs(ptFoundEnd)]);
// check if found place is entirely in range
- if (not SelIsColumn) or
- ( (ptFoundStart.Y=ptFoundEnd.Y) and
- (ptFoundStart.X >= ReplaceBlockSelection.ColumnStartBytePos[ptFoundStart.Y]) and
- (ptFoundEnd.X <= ReplaceBlockSelection.ColumnEndBytePos[ptFoundStart.Y])
+ ZeroLen := ptFoundStart = ptFoundEnd;
+ if ( (not SelIsColumn) or
+ ( (ptFoundStart.Y=ptFoundEnd.Y) and
+ (ptFoundStart.X >= ReplaceBlockSelection.ColumnStartBytePos[ptFoundStart.Y]) and
+ (ptFoundEnd.X <= ReplaceBlockSelection.ColumnEndBytePos[ptFoundStart.Y])
+ )
+ ) and (
+ not( ZeroLen and (ptStart = ptFoundStart) and
+ (ssoFindContinue in AOptions) and (not SelAvail)
+ )
)
then
begin
@@ -8149,6 +8155,8 @@
if not bReplaceAll then
exit;
end;
+ Exclude(AOptions, ssoFindContinue); // ZeroLen will now be handled below
+
// shrink search range for next search
if ssoSearchInReplacement in AOptions then begin
if bBackward then begin
@@ -8163,6 +8171,21 @@
ptStart:=ptFoundEnd;
end;
end;
+ if ZeroLen then begin
+ FInternalCaret.LineBytePos := ptStart;
+ if bBackward then begin
+ if not FInternalCaret.MoveHoriz(-1) then
+ ptStart := Point(length(FTheLinesView[ptStart.Y - 1]), ptStart.Y - 1)
+ else
+ ptStart := FInternalCaret.LineBytePos;
+ end
+ else begin
+ if not FInternalCaret.MoveHoriz(1) then
+ ptStart := Point(1, ptStart.Y + 1)
+ else
+ ptStart := FInternalCaret.LineBytePos;
+ end;
+ end;
//DebugLn(['TCustomSynEdit.SearchReplace FIND NEXT ptStart=',dbgs(ptStart),' ptEnd=',dbgs(ptEnd)]);
end;
finally
diff -Nru lazarus-2.2.4+dfsg1/components/synedit/syneditsearch.pp lazarus-2.2.6+dfsg1/components/synedit/syneditsearch.pp
--- lazarus-2.2.4+dfsg1/components/synedit/syneditsearch.pp 2022-09-25 12:37:17.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/synedit/syneditsearch.pp 2023-03-04 14:24:24.000000000 +0100
@@ -757,7 +757,7 @@
exit;
end;
MinY:=Max(0,StartPos.Y-1);
- MaxY:=Min(Lines.Count,EndPos.Y-1);
+ MaxY:=Min(Lines.Count,EndPos.Y)-1;
if MinY>MaxY then exit;
if Backwards then begin
// backwards
diff -Nru lazarus-2.2.4+dfsg1/components/synedit/test/testsearch.pas lazarus-2.2.6+dfsg1/components/synedit/test/testsearch.pas
--- lazarus-2.2.4+dfsg1/components/synedit/test/testsearch.pas 2022-09-25 12:37:17.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/synedit/test/testsearch.pas 2023-03-04 14:24:24.000000000 +0100
@@ -6,7 +6,7 @@
uses
Classes, SysUtils, testregistry, TestBase,
- SynEdit, SynEditSearch, SynHighlighterPas;
+ SynEdit, SynEditSearch, SynHighlighterPas, SynEditTypes;
type
@@ -17,6 +17,8 @@
protected
fTSearch: TSynEditSearch;
//procedure ReCreateEdit; reintroduce;
+ function TextLinesSimple: TStringArray;
+ function TextLinesSimple2: TStringArray;
procedure ReCreateEditWithLinesSimple;
procedure TestFindNext(AName, ASearchTxt: String;
AStartX, AStartY, AEndX, AEndY: Integer;
@@ -25,6 +27,7 @@
procedure TestSearchSimple;
procedure TestSearchSimpleUtf8;
procedure TestSearchSimpleRegEx;
+ procedure TestSearchZeroLengthRegEx;
procedure FindMatchingBracket;
procedure TestSearchMultiLine; // not regex
end;
@@ -33,24 +36,38 @@
{ TTestSynSearch }
+function TTestSynSearch.TextLinesSimple: TStringArray;
+begin
+ SetLength(Result, 12);
+ Result[ 0] := 'Some text to search Text';
+ Result[ 1] := 'Text and more Text, texting';
+ Result[ 2] := 'text and more text, texting';
+ Result[ 3] := 'Text';
+ Result[ 4] := '';
+ Result[ 5] := 'utf8: äöü äää äöü ÄÖÜ ÄÄÄ ÄÖÜ äÖü ÄäÄ äääää äöüäöüä ä Ä';
+ Result[ 6] := '';
+ Result[ 7] := '';
+ Result[ 8] := '';
+ Result[ 9] := 'Test or Dest or Destination. Test.';
+ Result[10] := 'test or dest or destination. test.';
+ Result[11] := '';
+end;
+
+function TTestSynSearch.TextLinesSimple2: TStringArray;
+begin
+ SetLength(Result, 6);
+ Result[ 0] := 'foo bar some more';
+ Result[ 1] := 'äöü äää äöü';
+ Result[ 2] := 'abc def 123';
+ Result[ 3] := 'mno xyz 789';
+ Result[ 4] := 'Text';
+ Result[ 5] := '';
+end;
+
procedure TTestSynSearch.ReCreateEditWithLinesSimple;
begin
ReCreateEdit;
- SetLines
- ([ 'Some text to search Text',
- 'Text and more Text, texting',
- 'text and more text, texting',
- 'Text',
- '',
- 'utf8: äöü äää äöü ÄÖÜ ÄÄÄ ÄÖÜ äÖü ÄäÄ äääää äöüäöüä ä Ä',
- '',
- '',
- '',
- 'Test or Dest or Destination. Test.',
- 'test or dest or destination. test.',
- ''
- ]);
-
+ SetLines(TextLinesSimple);
end;
procedure TTestSynSearch.TestFindNext(AName, ASearchTxt: String; AStartX, AStartY, AEndX,
@@ -179,6 +196,213 @@
TestFindNext('RegEx Case', '(t...),', 1,2, 25,3, true, 15,3, 20,3);
AssertEquals('RegexRepl Case', 'atextB', fTSearch.RegExprReplace);
+ fTSearch.Free;
+end;
+
+procedure TTestSynSearch.TestSearchZeroLengthRegEx;
+var
+ aBackwards: Boolean;
+
+ procedure DoTestSearch(AName: String;
+ AStartX, AStartY: Integer; ASearch: String;
+ AExpX, AExpY: Integer;
+ AOpts: TSynSearchOptions = [ssoRegExpr]);
+ begin
+ AName := AName + ' # Search: "' + ASearch + '" ';
+ if aBackwards then
+ AOpts := AOpts + [ssoBackwards];
+ ReCreateEdit;
+ SetLines(TextLinesSimple2);
+ SetCaret(AStartX, AStartY);
+ SynEdit.SearchReplaceEx(ASearch, '', AOpts, SynEdit.CaretObj.LineBytePos);
+
+ TestIsCaret(AName+' (Caret): ', AExpX, AExpY);
+ end;
+
+ procedure DoTestRepl(AName: String;
+ AStartX, AStartY: Integer; ASearch, ARepl: String;
+ AExpX, AExpY: Integer; AExpTextRepl: Array of const;
+ AOpts: TSynSearchOptions = [ssoRegExpr, ssoReplaceAll]);
+ begin
+ AName := AName + ' # Replace "' + ASearch + '" => "' + ARepl + '"';
+ if aBackwards then
+ AOpts := AOpts + [ssoBackwards];
+ ReCreateEdit;
+ SetLines(TextLinesSimple2);
+ SetCaret(AStartX, AStartY);
+ SynEdit.SearchReplaceEx(ASearch, ARepl, AOpts, SynEdit.CaretObj.LineBytePos);
+
+ TestIsCaret(AName+' (Caret): ', AExpX, AExpY);
+ TestIsText(AName+' (Text): ', TextLinesSimple2, AExpTextRepl);
+ end;
+
+begin
+ aBackwards := False;
+
+ // Search ^
+ DoTestSearch('Cont', 3, 3, '^', 1, 4, [ssoRegExpr, ssoFindContinue]);
+ DoTestSearch('', 3, 3, '^', 1, 4);
+ DoTestSearch('', 1, 4, '^', 1, 4);
+ DoTestSearch('Cont', 1, 4, '^', 1, 5, [ssoRegExpr, ssoFindContinue]);
+
+ // Search $
+ DoTestSearch('Cont', 3, 3, '$', 12, 3, [ssoRegExpr, ssoFindContinue]);
+ DoTestSearch('', 3, 3, '$', 12, 3);
+// TODO: fTSearch.FindNextOne does not find the end in line 3 (when it is the start point)
+// DoTestSearch('', 12, 3, '$', 12, 3);
+ DoTestSearch('Cont', 12, 3, '$', 12, 4, [ssoRegExpr, ssoFindContinue]);
+
+ // Search ^|$
+ DoTestSearch('', 3, 3, '^|$', 12, 3);
+// DoTestSearch('', 12, 3, '^|$', 12, 3);
+ DoTestSearch('Cont', 12, 3, '^|$', 1, 4, [ssoRegExpr, ssoFindContinue]);
+ DoTestSearch('', 1, 4, '^|$', 1, 4);
+ DoTestSearch('Cont', 1, 4, '^|$', 12, 4, [ssoRegExpr, ssoFindContinue]);
+
+ // Search ()
+ DoTestSearch('', 3, 3, '()', 3, 3);
+ DoTestSearch('Cont', 3, 3, '()', 4, 3, [ssoRegExpr, ssoFindContinue]);
+
+ DoTestSearch('UTF ', 3, 2, '()', 3, 2);
+ DoTestSearch('UTF Cont', 3, 2, '()', 5, 2, [ssoRegExpr, ssoFindContinue]);
+
+
+ // Replace ^
+ DoTestRepl('', 3, 3, '^', 'X', 2, 4, [4, 'Xmno xyz 789'], [ssoRegExpr, ssoReplace]);
+ DoTestRepl('', 1, 4, '^', 'X', 2, 4, [4, 'Xmno xyz 789'], [ssoRegExpr, ssoReplace]);
+ DoTestRepl('', 1, 4, '^', 'X', 2, 5, [5, 'XText'], [ssoRegExpr, ssoReplace, ssoFindContinue]);
+
+ DoTestRepl('', 3, 3, '^', '', 1, 5, []);
+ DoTestRepl('', 1, 4, '^', '', 1, 5, []);
+ DoTestRepl('', 1, 4, '^', '', 1, 5, [], [ssoRegExpr, ssoReplaceAll, ssoFindContinue]);
+
+ // Replace-All ^
+ DoTestRepl('', 3, 3, '^', 'X', 2, 5, [4, 'Xmno xyz 789', 5, 'XText']);
+ DoTestRepl('', 1, 4, '^', 'X', 2, 5, [4, 'Xmno xyz 789', 5, 'XText']);
+ DoTestRepl('', 1, 4, '^', 'X', 2, 5, [5, 'XText'], [ssoRegExpr, ssoReplaceAll, ssoFindContinue]);
+
+ DoTestRepl('', 3, 3, '^', '', 1, 4, [], [ssoRegExpr, ssoReplace]);
+ DoTestRepl('', 1, 4, '^', '', 1, 4, [], [ssoRegExpr, ssoReplace]);
+ DoTestRepl('', 1, 4, '^', '', 1, 5, [], [ssoRegExpr, ssoReplace, ssoFindContinue]);
+
+
+ // Replace $
+ DoTestRepl('', 4, 4, '$', 'X', 13, 4, [4, 'mno xyz 789X'], [ssoRegExpr, ssoReplace]);
+// DoTestRepl('', 12, 4, '$', 'X', 13, 4, [4, 'mno xyz 789X'], [ssoRegExpr, ssoReplace]);
+ DoTestRepl('', 12, 4, '$', 'X', 6, 5, [5, 'TextX'], [ssoRegExpr, ssoReplace, ssoFindContinue]);
+
+ DoTestRepl('', 4, 4, '$', '', 12, 4, [], [ssoRegExpr, ssoReplace]);
+// DoTestRepl('', 12, 4, '$', '', 12, 4, [], [ssoRegExpr, ssoReplace]);
+ DoTestRepl('', 12, 4, '$', '', 5, 5, [], [ssoRegExpr, ssoReplace, ssoFindContinue]);
+
+ // Replace-All $
+ DoTestRepl('', 4, 4, '$', 'X', 6, 5, [4, 'mno xyz 789X', 5, 'TextX']);
+// DoTestRepl('', 12, 4, '$', 'X', 6, 5, [4, 'mno xyz 789X', 5, 'TextX']);
+ DoTestRepl('', 12, 4, '$', 'X', 6, 5, [5, 'TextX'], [ssoRegExpr, ssoReplaceAll, ssoFindContinue]);
+
+ DoTestRepl('', 4, 4, '$', '', 5, 5, []);
+ DoTestRepl('', 12, 4, '$', '', 5, 5, []);
+ DoTestRepl('', 12, 4, '$', '', 5, 5, [], [ssoRegExpr, ssoReplaceAll, ssoFindContinue]);
+
+
+ // Replace ^|$
+ DoTestRepl('', 1, 4, '^|$', 'X', 2, 4, [4, 'Xmno xyz 789'], [ssoRegExpr, ssoReplace]);
+ DoTestRepl('', 1, 4, '^|$', 'X', 13, 4, [4, 'mno xyz 789X'], [ssoRegExpr, ssoReplace, ssoFindContinue]);
+// DoTestRepl('', 12, 4, '^|$', 'X', 13, 4, [4, 'mno xyz 789X'], [ssoRegExpr, ssoReplace]);
+ DoTestRepl('', 12, 4, '^|$', 'X', 2, 5, [5, 'XText'], [ssoRegExpr, ssoReplace, ssoFindContinue]);
+
+ // Replace-All ^|$
+ DoTestRepl('', 1, 4, '^|$', 'X', 7, 5, [4, 'Xmno xyz 789X', 5, 'XTextX']);
+ DoTestRepl('', 4, 4, '^|$', 'X', 7, 5, [4, 'mno xyz 789X', 5, 'XTextX']);
+// DoTestRepl('', 12, 4, '^|$', 'X', 7, 5, [4, 'mno xyz 789X', 5, 'XTextX']);
+ DoTestRepl('', 12, 4, '^|$', 'X', 7, 5, [5, 'XTextX'], [ssoRegExpr, ssoReplaceAll, ssoFindContinue]);
+
+
+ // Replace ()
+ DoTestRepl('', 1,4, '()', 'X', 2, 4, [4, 'Xmno xyz 789'], [ssoRegExpr, ssoReplace]);
+ DoTestRepl('', 1,4, '()', 'X', 3, 4, [4, 'mXno xyz 789'], [ssoRegExpr, ssoReplace, ssoFindContinue]);
+ DoTestRepl('', 2,4, '()', 'X', 3, 4, [4, 'mXno xyz 789'], [ssoRegExpr, ssoReplace]);
+ DoTestRepl('', 2,4, '()', 'X', 4, 4, [4, 'mnXo xyz 789'], [ssoRegExpr, ssoReplace, ssoFindContinue]);
+// DoTestRepl('', 12,4, '()', 'X', 13, 4, [4, 'mno xyz 789X'], [ssoRegExpr, ssoReplace]);
+ DoTestRepl('', 12,4, '()', 'X', 2, 5, [5, 'XText'], [ssoRegExpr, ssoReplace, ssoFindContinue]);
+
+ // Replace-All ()
+// DoTestRepl('', 11,4, '()', 'X', 10, 5, [4, 'mno xyz 78X9X', 5, 'XTXeXxXtX']);
+// DoTestRepl('', 11,4, '()', '', 5, 5, []);
+// Incorrect results BELOW (expect wrong caret and text, but test that it does not hang
+DoTestRepl('', 11,4, '()', 'X', 8, 5, [4, 'mno xyz 78X9', 5, 'XTXeXxXt']);
+DoTestRepl('', 11,4, '()', '', 4, 5, []);
+// << end incorrect result
+
+
+ // ****************************
+ aBackwards := True;
+//exit; // backward reg-ex is not (fully?) implemented
+
+ // Search ^
+ DoTestSearch('Cont', 3, 4, '^', 1, 4, [ssoRegExpr, ssoFindContinue]);
+ DoTestSearch('', 3, 4, '^', 1, 4);
+ DoTestSearch('', 1, 4, '^', 1, 4);
+// DoTestSearch('Cont', 1, 4, '^', 1, 3, [ssoRegExpr, ssoFindContinue]);
+
+ // Search $
+// DoTestSearch('', 4, 4, '$', 12, 3);
+// DoTestSearch('Cont', 1, 4, '$', 12, 3);
+// DoTestSearch('Cont', 1, 4, '$', 12, 3, [ssoRegExpr, ssoFindContinue]);
+// DoTestSearch('', 12, 4, '$', 12, 4);
+// DoTestSearch('Cont', 12, 4, '$', 12, 3, [ssoRegExpr, ssoFindContinue]);
+
+ // Search ^|$
+// DoTestSearch('', 4, 4, '^|$', 1, 4);
+// DoTestSearch('', 1, 4, '^|$', 1, 4);
+// DoTestSearch('Cont', 1, 4, '^|$', 12, 3, [ssoRegExpr, ssoFindContinue]);
+// DoTestSearch('Cont', 12, 3, '^|$', 12, 3);
+// DoTestSearch('Cont', 12, 3, '^|$', 1, 3, [ssoRegExpr, ssoFindContinue]);
+
+ // Search ()
+// DoTestSearch('', 3, 3, '()', 3, 3);
+// DoTestSearch('Cont', 3, 3, '()', 2, 3, [ssoRegExpr, ssoFindContinue]);
+
+// DoTestSearch('UTF ', 3, 2, '()', 3, 2);
+// DoTestSearch('UTF Cont', 5, 2, '()', 3, 2, [ssoRegExpr, ssoFindContinue]);
+
+ // Replace ^ // selection is backward on inserted text
+// DoTestRepl('', 3, 4, '^', 'X', 1, 4, [4, 'Xmno xyz 789'], [ssoRegExpr, ssoReplace]);
+ DoTestRepl('', 1, 4, '^', 'X', 1, 4, [4, 'Xmno xyz 789'], [ssoRegExpr, ssoReplace]);
+// DoTestRepl('', 1, 4, '^', 'X', 1, 3, [5, 'XText'], [ssoRegExpr, ssoReplace, ssoFindContinue]);
+
+// DoTestRepl('', 3, 4, '^', '', 1, 4, []);
+// DoTestRepl('', 1, 4, '^', '', 1, 4, []);
+// DoTestRepl('', 1, 4, '^', '', 1, 3, [], [ssoRegExpr, ssoReplaceAll, ssoFindContinue]);
+
+ // Replace-All ^
+// DoTestRepl('', 3, 2, '^', 'X', 1, 1, [1, 'Xfoo bar some more', 2, 'Xäöü äää äöü']);
+// DoTestRepl('', 1, 2, '^', 'X', 1, 1, [1, 'Xfoo bar some more', 2, 'Xäöü äää äöü']);
+// DoTestRepl('', 1, 2, '^', 'X', 1, 1, [1, 'Xfoo bar some more'], [ssoRegExpr, ssoReplaceAll, ssoFindContinue]);
+
+// DoTestRepl('', 3, 2, '^', '', 1, 1, []);
+// DoTestRepl('', 1, 2, '^', '', 1, 1, []);
+// DoTestRepl('', 1, 2, '^', '', 1, 1, [], [ssoRegExpr, ssoReplaceAll, ssoFindContinue]);
+
+ // Replace $
+// DoTestRepl('', 4, 5, '$', 'X', 12, 4, [4, 'mno xyz 789X'], [ssoRegExpr, ssoReplace]);
+// DoTestRepl('', 12, 4, '$', 'X', 12, 4, [4, 'mno xyz 789X', 5, 'TextX'], [ssoRegExpr, ssoReplace]);
+// DoTestRepl('', 12, 4, '$', 'X', 12, 3, [3, 'abc def 123X'], [ssoRegExpr, ssoReplace, ssoFindContinue]);
+
+// DoTestRepl('', 4, 5, '$', '', 12, 4, [], [ssoRegExpr, ssoReplace]);
+// DoTestRepl('', 12, 4, '$', '', 12, 4, [], [ssoRegExpr, ssoReplace]);
+// DoTestRepl('', 12, 4, '$', '', 12, 3, [], [ssoRegExpr, ssoReplace, ssoFindContinue]);
+
+ // Replace-All $
+// DoTestRepl('', 3, 3, '$', 'X', 18, 1, [1, 'foo bar some moreX', 2, 'äöü äää äöüX']);
+// DoTestRepl('', 21, 2, '$', 'X', 18, 1, [1, 'foo bar some moreX', 2, 'äöü äää äöüX']);
+// DoTestRepl('', 21, 2, '$', 'X', 18, 1, [1, 'foo bar some moreX'], [ssoRegExpr, ssoReplaceAll, ssoFindContinue]);
+
+// DoTestRepl('', 3, 3, '$', '', 18, 1, []);
+// DoTestRepl('', 21, 2, '$', '', 18, 1, []);
+// DoTestRepl('', 21, 2, '$', '', 18, 1, [], [ssoRegExpr, ssoReplaceAll, ssoFindContinue]);
+
+
end;
procedure TTestSynSearch.FindMatchingBracket;
@@ -280,6 +504,7 @@
TestFindNext('3 lines middle empty', 'a'+LineEnding+LineEnding+'b', 1,1, 1,9, true, 1,2, 2,4);
TestFindNext('3 lines middle empty - no match', 'a'+LineEnding+LineEnding+'b', 1,5, 1,9, False, 1,2, 2,4);
+ fTSearch.Free;
end;
//more ftsearch:
diff -Nru lazarus-2.2.4+dfsg1/components/tachart/tachartlistbox.pas lazarus-2.2.6+dfsg1/components/tachart/tachartlistbox.pas
--- lazarus-2.2.4+dfsg1/components/tachart/tachartlistbox.pas 2022-09-25 12:37:17.000000000 +0200
+++ lazarus-2.2.6+dfsg1/components/tachart/tachartlistbox.pas 2023-03-04 14:24:24.000000000 +0100
@@ -526,7 +526,7 @@
procedure TChartListbox.MouseDown(
AButton: TMouseButton; AShift: TShiftState; AX, AY: Integer);
var
- rcb, ricon: TRect;
+ R, rcb, ricon: TRect;
index: Integer;
p: TPoint;
begin
@@ -537,7 +537,17 @@
p := Point(AX, AY);
index := GetIndexAtXY(AX, AY);
if index < 0 then exit;
- CalcRects(ItemRect(index), rcb, ricon);
+ R := ItemRect(index);
+ {$IFDEF DARWIN}
+ { Workaround for ItemRect returning something different than what is
+ passed to DrawItem in macOS Monterey.
+ See discussion in https://forum.lazarus.freepascal.org/index.php/topic,61074.0.html
+ The consequence of this workaround is that there can only be a single
+ column, but Columns > 1 does not work on cocoa anyway. }
+ R.Left := 0;
+ R.Right := ClientWidth;
+ {$ENDIF}
+ CalcRects(R, rcb, ricon);
if (cloShowCheckboxes in Options) and IsPointInRect(p, rcb) then
ClickedCheckbox(index)
else if (cloShowIcons in Options) and IsPointInRect(p, ricon) then
diff -Nru lazarus-2.2.4+dfsg1/debian/changelog lazarus-2.2.6+dfsg1/debian/changelog
--- lazarus-2.2.4+dfsg1/debian/changelog 2023-03-25 12:11:51.000000000 +0100
+++ lazarus-2.2.6+dfsg1/debian/changelog 2023-03-31 19:51:15.000000000 +0200
@@ -1,3 +1,10 @@
+lazarus (2.2.6+dfsg1-1) unstable; urgency=medium
+
+ * New upstream version 2.2.6+dfsg1
+ * Updated patches list removing patch already integrated by upstream.
+
+ -- Abou Al Montacir <abou.almontacir@sfr.fr> Fri, 31 Mar 2023 19:51:15 +0200
+
lazarus (2.2.4+dfsg1-3) unstable; urgency=medium
* Remove binary NMU number from revision.inc to avoid useless warning.
diff -Nru lazarus-2.2.4+dfsg1/debian/patches/dwarf-debug-info-type-ppc64el.patch lazarus-2.2.6+dfsg1/debian/patches/dwarf-debug-info-type-ppc64el.patch
--- lazarus-2.2.4+dfsg1/debian/patches/dwarf-debug-info-type-ppc64el.patch 2022-08-28 18:21:22.000000000 +0200
+++ lazarus-2.2.6+dfsg1/debian/patches/dwarf-debug-info-type-ppc64el.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
-Description: Use dwarf debug info type (-gw) for components/chmhelp/lhelp
-
-Stab debug info (-gs) used only in components/chmhelp/lhelp/Makefile.fp
-breaks ppc64el but not dwarf (-gw) also Dwarf is actually the
-recommended setting :
-https://wiki.freepascal.org/GDB_Debugger_Tips#Stabs_.28only_GDB.29
-Author: Frédéric Bonnard <frediz@debian.org>
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
---- a/components/chmhelp/lhelp/Makefile.fpc
-+++ b/components/chmhelp/lhelp/Makefile.fpc
-@@ -15,7 +15,7 @@
- packages=rtl
-
- [compiler]
--options=-gs -gl -Sghi -O3 -dlcl$(LCL_PLATFORM) $(DBG_OPTIONS)
-+options=-gw -gl -Sghi -O3 -dlcl$(LCL_PLATFORM) $(DBG_OPTIONS)
- unittargetdir=lib/$(CPU_TARGET)-$(OS_TARGET)
- unitdir=. $(LAZDIR)/components/lazutils/lib/$(CPU_TARGET)-$(OS_TARGET) \
- $(LAZDIR)/packager/units/$(CPU_TARGET)-$(OS_TARGET) \
diff -Nru lazarus-2.2.4+dfsg1/debian/patches/series lazarus-2.2.6+dfsg1/debian/patches/series
--- lazarus-2.2.4+dfsg1/debian/patches/series 2022-11-20 12:42:50.000000000 +0100
+++ lazarus-2.2.6+dfsg1/debian/patches/series 2023-03-31 19:51:08.000000000 +0200
@@ -5,7 +5,6 @@
fix-fpdoc-crashes-on-lazarus-documentation.patch
fix-perl-shbang.patch
Fix-compilation-of-PascalScript.diff
-dwarf-debug-info-type-ppc64el.patch
Fixed-end-of-line-for-resource-file.diff
Fixed-allowing-arbitrary-FPPKG-path.patch
Added-missing-source-file.patch
Binary files /tmp/IdHZXXQ1G9/lazarus-2.2.4+dfsg1/docs/chm/lazutils.chm and /tmp/5arYyC9vuS/lazarus-2.2.6+dfsg1/docs/chm/lazutils.chm differ
diff -Nru lazarus-2.2.4+dfsg1/docs/chm/lazutils.xct lazarus-2.2.6+dfsg1/docs/chm/lazutils.xct
--- lazarus-2.2.4+dfsg1/docs/chm/lazutils.xct 2022-09-25 12:18:59.000000000 +0200
+++ lazarus-2.2.6+dfsg1/docs/chm/lazutils.xct 2023-03-04 14:25:27.000000000 +0100
@@ -191,6 +191,7 @@
ArrayCP437ToUTF8 codepagescommon/arraycp437toutf8.html
ArrayCP850ToUTF8 codepagescommon/arraycp850toutf8.html
ArrayCP852ToUTF8 codepagescommon/arraycp852toutf8.html
+ ArrayCP865ToUTF8 codepagescommon/arraycp865toutf8.html
ArrayCP866ToUTF8 codepagescommon/arraycp866toutf8.html
ArrayCP874ToUTF8 codepagescommon/arraycp874toutf8.html
ArrayKOI8RToUTF8 codepagescommon/arraykoi8rtoutf8.html
@@ -2350,7 +2351,6 @@
UTF16ToUTF8 lazutf8/utf16toutf8.html
LazGetLanguageIDs lazutf8/lazgetlanguageids.html
LazGetShortLanguageID lazutf8/lazgetshortlanguageid.html
- ReplaceSubstring lazutf8/replacesubstring.html
FPUpChars lazutf8/fpupchars.html
LazUTF8Classes lazutf8classes/index.html
TFileStreamUTF8 lazutf8classes/tfilestreamutf8.html
@@ -2554,6 +2554,7 @@
EncodingCP437 lconvencoding/encodingcp437.html
EncodingCP850 lconvencoding/encodingcp850.html
EncodingCP852 lconvencoding/encodingcp852.html
+ EncodingCP865 lconvencoding/encodingcp865.html
EncodingCP866 lconvencoding/encodingcp866.html
EncodingCP874 lconvencoding/encodingcp874.html
EncodingCP932 lconvencoding/encodingcp932.html
@@ -2618,6 +2619,7 @@
CP437ToUTF8 lconvencoding/cp437toutf8.html
CP850ToUTF8 lconvencoding/cp850toutf8.html
CP852ToUTF8 lconvencoding/cp852toutf8.html
+ CP865ToUTF8 lconvencoding/cp865toutf8.html
CP866ToUTF8 lconvencoding/cp866toutf8.html
CP874ToUTF8 lconvencoding/cp874toutf8.html
KOI8RToUTF8 lconvencoding/koi8rtoutf8.html
@@ -2651,6 +2653,7 @@
UTF8ToCP437 lconvencoding/utf8tocp437.html
UTF8ToCP850 lconvencoding/utf8tocp850.html
UTF8ToCP852 lconvencoding/utf8tocp852.html
+ UTF8ToCP865 lconvencoding/utf8tocp865.html
UTF8ToCP866 lconvencoding/utf8tocp866.html
UTF8ToCP874 lconvencoding/utf8tocp874.html
UTF8ToKOI8R lconvencoding/utf8tokoi8r.html
@@ -2782,6 +2785,7 @@
TMaskOption masks/tmaskoption.html
TMaskOptions masks/tmaskoptions.html
TMaskClass masks/tmaskclass.html
+ TMaskListClass masks/tmasklistclass.html
EMaskError masks/emaskerror.html
TMaskExceptionCode masks/emaskerror.tmaskexceptioncode.html
FCode masks/emaskerror.fcode.html
@@ -2808,7 +2812,7 @@
fMatchMaximumLiteralBytes masks/tmaskbase.fmatchmaximumliteralbytes.html
fMaskOpcodesAllowed masks/tmaskbase.fmaskopcodesallowed.html
fMaskEscapeChar masks/tmaskbase.fmaskescapechar.html
- Compile masks/tmaskbase.compile.html
+ PrepareCompile masks/tmaskbase.preparecompile.html
Exception_InvalidCharMask masks/tmaskbase.exception_invalidcharmask.html
Exception_MissingCloseChar masks/tmaskbase.exception_missingclosechar.html
Exception_IncompleteMask masks/tmaskbase.exception_incompletemask.html
@@ -2862,7 +2866,6 @@
GetMaskClass masks/twindowsmasklist.getmaskclass.html
AddMasksToList masks/twindowsmasklist.addmaskstolist.html
Create masks/twindowsmasklist.create.html
- MatchesWindowsMask masks/twindowsmasklist.matcheswindowsmask.html
Quirks masks/twindowsmasklist.quirks.html
MatchesMask masks/matchesmask.html
MatchesWindowsMask masks/matcheswindowsmask.html
@@ -3730,7 +3733,7 @@
2VfMatchMaximumLiteralBytes
2VfMaskOpcodesAllowed
2VfMaskEscapeChar
-2MCompile
+2MPrepareCompile
2MException_InvalidCharMask
2MException_MissingCloseChar
2MException_IncompleteMask
@@ -3817,7 +3820,6 @@
2MGetMaskClass
2MAddMasksToList
3MCreate
-3MMatchesWindowsMask
3PQuirks rw
#lazutils.GraphType.TRawImageDescription
0VFormat
Binary files /tmp/IdHZXXQ1G9/lazarus-2.2.4+dfsg1/docs/chm/lcl.chm and /tmp/5arYyC9vuS/lazarus-2.2.6+dfsg1/docs/chm/lcl.chm differ
diff -Nru lazarus-2.2.4+dfsg1/docs/chm/lcl.xct lazarus-2.2.6+dfsg1/docs/chm/lcl.xct
--- lazarus-2.2.4+dfsg1/docs/chm/lcl.xct 2022-09-25 12:18:59.000000000 +0200
+++ lazarus-2.2.6+dfsg1/docs/chm/lcl.xct 2023-03-04 14:25:27.000000000 +0100
@@ -88,9 +88,9 @@
ShortCut actnlist/tcustomaction.shortcut.html
Visible actnlist/tcustomaction.visible.html
TAction actnlist/taction.html
+ Create actnlist/taction.create.html
OnExecute actnlist/taction.onexecute.html
OnUpdate actnlist/taction.onupdate.html
- Create actnlist/tcustomaction.create.html
AutoCheck actnlist/tcustomaction.autocheck.html
Caption actnlist/tcustomaction.caption.html
Checked actnlist/tcustomaction.checked.html
@@ -286,6 +286,7 @@
BitBtnResNames buttons/bitbtnresnames.html
TButtonLayout buttons/tbuttonlayout.html
TButtonState buttons/tbuttonstate.html
+ TButtonImage buttons/tbuttonimage.html
TNumGlyphs buttons/tnumglyphs.html
TGlyphTransparencyMode buttons/tglyphtransparencymode.html
TBitBtnKind buttons/tbitbtnkind.html
@@ -339,6 +340,7 @@
LoadGlyphFromResourceName buttons/tcustombitbtn.loadglyphfromresourcename.html
LoadGlyphFromLazarusResource buttons/tcustombitbtn.loadglyphfromlazarusresource.html
LoadGlyphFromStock buttons/tcustombitbtn.loadglyphfromstock.html
+ LoadGlyphFromResource buttons/tcustombitbtn.loadglyphfromresource.html
CanShowGlyph buttons/tcustombitbtn.canshowglyph.html
Caption buttons/tcustombitbtn.caption.html
DefaultCaption buttons/tcustombitbtn.defaultcaption.html
@@ -551,9 +553,11 @@
LoadGlyphFromResourceName buttons/loadglyphfromresourcename.html
LoadGlyphFromLazarusResource buttons/loadglyphfromlazarusresource.html
LoadGlyphFromStock buttons/loadglyphfromstock.html
+ LoadGlyphFromResource buttons/loadglyphfromresource.html
GetButtonCaption buttons/getbuttoncaption.html
GetDefaultButtonIcon buttons/getdefaultbuttonicon.html
GetButtonIcon buttons/getbuttonicon.html
+ GetButtonImageIndex buttons/getbuttonimageindex.html
BidiAdjustButtonLayout buttons/bidiadjustbuttonlayout.html
dbgs buttons/dbgs.html
Register buttons/register.html
@@ -701,7 +705,6 @@
FormClose calendarpopup/tcalendarpopupform.formclose.html
FormCreate calendarpopup/tcalendarpopupform.formcreate.html
FormDeactivate calendarpopup/tcalendarpopupform.formdeactivate.html
- Paint calendarpopup/tcalendarpopupform.paint.html
ShowCalendarPopup calendarpopup/showcalendarpopup.html
CheckLst checklst/index.html
TCheckListClicked checklst/tchecklistclicked.html
@@ -1606,6 +1609,7 @@
CreateWnd comctrls/tcustomtabcontrol.createwnd.html
Loaded comctrls/tcustomtabcontrol.loaded.html
DoChange comctrls/tcustomtabcontrol.dochange.html
+ InitializeWnd comctrls/tcustomtabcontrol.initializewnd.html
Change comctrls/tcustomtabcontrol.change.html
KeyDown comctrls/tcustomtabcontrol.keydown.html
DialogChar comctrls/tcustomtabcontrol.dialogchar.html
@@ -1663,14 +1667,17 @@
TabWidth comctrls/tcustomtabcontrol.tabwidth.html
TabStop comctrls/tcustomtabcontrol.tabstop.html
WSRegisterClass lclclasses/tlclcomponent.wsregisterclass.html
- InitializeWnd controls/twincontrol.initializewnd.html
ReadState controls/tcontrol.readstate.html
TTabSheet comctrls/ttabsheet.html
Create comctrls/ttabsheet.create.html
Destroy comctrls/ttabsheet.destroy.html
PageControl comctrls/ttabsheet.pagecontrol.html
TabIndex comctrls/ttabsheet.tabindex.html
+ Height comctrls/ttabsheet.height.html
+ Left comctrls/ttabsheet.left.html
TabVisible comctrls/ttabsheet.tabvisible.html
+ Top comctrls/ttabsheet.top.html
+ Width comctrls/ttabsheet.width.html
WSRegisterClass lclclasses/tlclcomponent.wsregisterclass.html
AutoSize controls/tcontrol.autosize.html
BorderWidth controls/twincontrol.borderwidth.html
@@ -1681,9 +1688,7 @@
ClientWidth controls/tcontrol.clientwidth.html
Enabled controls/tcontrol.enabled.html
Font controls/tcontrol.font.html
- Height controls/tcontrol.height.html
ImageIndex comctrls/tcustompage.imageindex.html
- Left controls/tcontrol.left.html
OnContextPopup controls/tcontrol.oncontextpopup.html
OnDragDrop controls/tcontrol.ondragdrop.html
OnDragOver controls/tcontrol.ondragover.html
@@ -1708,12 +1713,12 @@
ParentShowHint controls/tcontrol.parentshowhint.html
PopupMenu controls/tcontrol.popupmenu.html
ShowHint controls/tcontrol.showhint.html
- Top controls/tcontrol.top.html
- Width controls/tcontrol.width.html
TPageControl comctrls/tpagecontrol.html
GetPageClass comctrls/tpagecontrol.getpageclass.html
DoAddDockClient comctrls/tpagecontrol.doadddockclient.html
+ DockOver comctrls/tpagecontrol.dockover.html
DoRemoveDockClient comctrls/tpagecontrol.doremovedockclient.html
+ ChildClassAllowed comctrls/tpagecontrol.childclassallowed.html
Clear comctrls/tpagecontrol.clear.html
FindNextPage comctrls/tpagecontrol.findnextpage.html
SelectNextPage comctrls/tpagecontrol.selectnextpage.html
@@ -1721,11 +1726,8 @@
ActivePageIndex comctrls/tpagecontrol.activepageindex.html
Pages comctrls/tpagecontrol.pages.html
ActivePage comctrls/tpagecontrol.activepage.html
- OnChange comctrls/tpagecontrol.onchange.html
WSRegisterClass lclclasses/tlclcomponent.wsregisterclass.html
- DockOver controls/twincontrol.dockover.html
DoUndockClientMsg controls/twincontrol.doundockclientmsg.html
- ChildClassAllowed controls/twincontrol.childclassallowed.html
IndexOfTabAt comctrls/tcustomtabcontrol.indexoftabat.html
IndexOfPageAt comctrls/tcustomtabcontrol.indexofpageat.html
OnGetDockCaption controls/twincontrol.ongetdockcaption.html
@@ -1761,6 +1763,7 @@
TabStop controls/twincontrol.tabstop.html
TabWidth comctrls/tcustomtabcontrol.tabwidth.html
Visible controls/tcontrol.visible.html
+ OnChange comctrls/tcustomtabcontrol.onchange.html
OnChanging comctrls/tcustomtabcontrol.onchanging.html
OnCloseTabClicked comctrls/tcustomtabcontrol.onclosetabclicked.html
OnContextPopup controls/tcontrol.oncontextpopup.html
@@ -2827,6 +2830,7 @@
ShouldAutoAdjust comctrls/tcustomtrackbar.shouldautoadjust.html
Create comctrls/tcustomtrackbar.create.html
SetTick comctrls/tcustomtrackbar.settick.html
+ SetParams comctrls/tcustomtrackbar.setparams.html
Frequency comctrls/tcustomtrackbar.frequency.html
LineSize comctrls/tcustomtrackbar.linesize.html
Max comctrls/tcustomtrackbar.max.html
@@ -3072,8 +3076,11 @@
TopLvlItems comctrls/ttreenodes.toplvlitems.html
DefineProperties
TCustomTreeView comctrls/tcustomtreeview.html
+ TFindOption comctrls/tcustomtreeview.tfindoption.html
+ TFindOptions comctrls/tcustomtreeview.tfindoptions.html
FChangeTimer comctrls/tcustomtreeview.fchangetimer.html
FEditor comctrls/tcustomtreeview.feditor.html
+ FFindOptions comctrls/tcustomtreeview.ffindoptions.html
GetControlClassDefaultSize comctrls/tcustomtreeview.getcontrolclassdefaultsize.html
Added comctrls/tcustomtreeview.added.html
EditorEditingDone comctrls/tcustomtreeview.editoreditingdone.html
@@ -3136,6 +3143,7 @@
NodeChanged comctrls/tcustomtreeview.nodechanged.html
NodeHasChildren comctrls/tcustomtreeview.nodehaschildren.html
Notification comctrls/tcustomtreeview.notification.html
+ Paint comctrls/tcustomtreeview.paint.html
ScrollView comctrls/tcustomtreeview.scrollview.html
SetDragMode comctrls/tcustomtreeview.setdragmode.html
SetOptions comctrls/tcustomtreeview.setoptions.html
@@ -3184,6 +3192,7 @@
OnHasChildren comctrls/tcustomtreeview.onhaschildren.html
OnNodeChanged comctrls/tcustomtreeview.onnodechanged.html
OnSelectionChanged comctrls/tcustomtreeview.onselectionchanged.html
+ PathDelimiter comctrls/tcustomtreeview.pathdelimiter.html
ReadOnly comctrls/tcustomtreeview.readonly.html
RightClickSelect comctrls/tcustomtreeview.rightclickselect.html
RowSelect comctrls/tcustomtreeview.rowselect.html
@@ -3273,7 +3282,6 @@
DoDragMsg
DoEndDrag controls/tcontrol.doenddrag.html
DoMouseWheel controls/tcontrol.domousewheel.html
- Paint controls/tcustomcontrol.paint.html
GetChildAccessibleObjectAtPos controls/tcontrol.getchildaccessibleobjectatpos.html
TTreeView comctrls/ttreeview.html
ParentColor comctrls/ttreeview.parentcolor.html
@@ -3907,6 +3915,7 @@
SetReplacingControl controls/tdockmanager.setreplacingcontrol.html
AutoFreeByControl controls/tdockmanager.autofreebycontrol.html
IsEnabledControl controls/tdockmanager.isenabledcontrol.html
+ CanBeDoubleDocked controls/tdockmanager.canbedoubledocked.html
TSizeConstraints controls/tsizeconstraints.html
Change controls/tsizeconstraints.change.html
AssignTo controls/tsizeconstraints.assignto.html
@@ -4176,6 +4185,7 @@
UpdateMouseCursor controls/tcontrol.updatemousecursor.html
Changed controls/tcontrol.changed.html
GetPalette controls/tcontrol.getpalette.html
+ GetParentBackground controls/tcontrol.getparentbackground.html
ChildClassAllowed controls/tcontrol.childclassallowed.html
ReadState controls/tcontrol.readstate.html
Loaded controls/tcontrol.loaded.html
@@ -4197,6 +4207,7 @@
SetHint controls/tcontrol.sethint.html
SetName controls/tcontrol.setname.html
SetParent controls/tcontrol.setparent.html
+ SetParentBackground controls/tcontrol.setparentbackground.html
SetParentComponent controls/tcontrol.setparentcomponent.html
WndProc controls/tcontrol.wndproc.html
ParentFormHandleInitialized controls/tcontrol.parentformhandleinitialized.html
@@ -4238,6 +4249,7 @@
DragKind controls/tcontrol.dragkind.html
DragMode controls/tcontrol.dragmode.html
MouseCapture controls/tcontrol.mousecapture.html
+ ParentBackground controls/tcontrol.parentbackground.html
ParentColor controls/tcontrol.parentcolor.html
ParentFont controls/tcontrol.parentfont.html
ParentShowHint controls/tcontrol.parentshowhint.html
@@ -4378,6 +4390,7 @@
InitiateAction controls/tcontrol.initiateaction.html
ShowHelp controls/tcontrol.showhelp.html
HasHelp controls/tcontrol.hashelp.html
+ RemoveAllHandlersOfObject controls/tcontrol.removeallhandlersofobject.html
AddHandlerOnResize controls/tcontrol.addhandleronresize.html
RemoveHandlerOnResize controls/tcontrol.removehandleronresize.html
AddHandlerOnChangeBounds controls/tcontrol.addhandleronchangebounds.html
@@ -4386,8 +4399,10 @@
RemoveHandlerOnVisibleChanging controls/tcontrol.removehandleronvisiblechanging.html
AddHandlerOnVisibleChanged controls/tcontrol.addhandleronvisiblechanged.html
RemoveHandlerOnVisibleChanged controls/tcontrol.removehandleronvisiblechanged.html
+ AddHandlerOnEnabledChanging controls/tcontrol.addhandleronenabledchanging.html
+ RemoveHandlerOnEnabledChanging controls/tcontrol.removehandleronenabledchanging.html
AddHandlerOnEnabledChanged controls/tcontrol.addhandleronenabledchanged.html
- RemoveHandlerOnEnableChanging controls/tcontrol.removehandleronenablechanging.html
+ RemoveHandlerOnEnabledChanged controls/tcontrol.removehandleronenabledchanged.html
AddHandlerOnKeyDown controls/tcontrol.addhandleronkeydown.html
RemoveHandlerOnKeyDown controls/tcontrol.removehandleronkeydown.html
AddHandlerOnBeforeDestruction controls/tcontrol.addhandleronbeforedestruction.html
@@ -4459,7 +4474,6 @@
HelpKeyword controls/tcontrol.helpkeyword.html
HelpContext controls/tcontrol.helpcontext.html
WSRegisterClass lclclasses/tlclcomponent.wsregisterclass.html
- RemoveAllHandlersOfObject lclclasses/tlclcomponent.removeallhandlersofobject.html
TControlChildSizing controls/tcontrolchildsizing.html
Change controls/tcontrolchildsizing.change.html
Create controls/tcontrolchildsizing.create.html
@@ -4603,7 +4617,6 @@
GetClientRect controls/twincontrol.getclientrect.html
GetControlOrigin controls/twincontrol.getcontrolorigin.html
GetDeviceContext controls/twincontrol.getdevicecontext.html
- GetParentBackground controls/twincontrol.getparentbackground.html
IsControlMouseMsg controls/twincontrol.iscontrolmousemsg.html
CreateHandle controls/twincontrol.createhandle.html
CreateParams controls/twincontrol.createparams.html
@@ -4627,7 +4640,6 @@
SetBorderStyle controls/twincontrol.setborderstyle.html
SetColor controls/twincontrol.setcolor.html
SetChildZPosition controls/twincontrol.setchildzposition.html
- SetParentBackground controls/twincontrol.setparentbackground.html
ShowControl controls/twincontrol.showcontrol.html
UpdateControlState controls/twincontrol.updatecontrolstate.html
UpdateShowing controls/twincontrol.updateshowing.html
@@ -4637,7 +4649,6 @@
BorderStyle controls/twincontrol.borderstyle.html
OnGetSiteInfo controls/twincontrol.ongetsiteinfo.html
OnGetDockCaption controls/twincontrol.ongetdockcaption.html
- ParentBackground controls/twincontrol.parentbackground.html
BorderWidth controls/twincontrol.borderwidth.html
BoundsLockCount controls/twincontrol.boundslockcount.html
Brush controls/twincontrol.brush.html
@@ -4793,6 +4804,7 @@
SetHeight controls/tdockzone.setheight.html
SetLeft controls/tdockzone.setleft.html
SetTop controls/tdockzone.settop.html
+ SetWidth controls/tdockzone.setwidth.html
Create controls/tdockzone.create.html
FindZone controls/tdockzone.findzone.html
FirstVisibleChild controls/tdockzone.firstvisiblechild.html
@@ -4822,7 +4834,6 @@
Width controls/tdockzone.width.html
NextSibling controls/tdockzone.nextsibling.html
PrevSibling controls/tdockzone.prevsibling.html
- SetWidth controls/tdockzone.width.html
TDockTree controls/tdocktree.html
HitTest controls/tdocktree.hittest.html
PaintDockFrame controls/tdocktree.paintdockframe.html
@@ -6921,6 +6932,9 @@
BorderSpacing controls/tcontrol.borderspacing.html
CellHintPriority grids/tcustomgrid.cellhintpriority.html
Color controls/tcontrol.color.html
+ ColRowDraggingCursor grids/tcustomgrid.colrowdraggingcursor.html
+ ColRowDragIndicatorColor grids/tcustomgrid.colrowdragindicatorcolor.html
+ ColSizingCursor grids/tcustomgrid.colsizingcursor.html
Constraints controls/tcontrol.constraints.html
DataSource dbgrids/tcustomdbgrid.datasource.html
DefaultDrawing grids/tcustomgrid.defaultdrawing.html
@@ -7001,6 +7015,13 @@
Create dblogdlg/tlogindialog.create.html
LoginDialogEx dblogdlg/logindialogex.html
DefaultTranslator defaulttranslator/index.html
+ DialogRes dialogres/index.html
+ DialogResName dialogres/dialogresname.html
+ TDialogImage dialogres/tdialogimage.html
+ TDialogImageList dialogres/tdialogimagelist.html
+ Create dialogres/tdialogimagelist.create.html
+ DialogIcon dialogres/tdialogimagelist.dialogicon.html
+ DialogGlyphs dialogres/dialogglyphs.html
Dialogs dialogs/index.html
mtWarning dialogs/mtwarning.html
mtError dialogs/mterror.html
@@ -7110,6 +7131,7 @@
CheckFile dialogs/topendialog.checkfile.html
CheckFileMustExist dialogs/topendialog.checkfilemustexist.html
CheckAllFiles dialogs/topendialog.checkallfiles.html
+ DoExecute dialogs/topendialog.doexecute.html
DefaultTitle dialogs/topendialog.defaulttitle.html
Create dialogs/topendialog.create.html
DoCanClose dialogs/topendialog.docanclose.html
@@ -7120,25 +7142,25 @@
OnFolderChange dialogs/topendialog.onfolderchange.html
OnSelectionChange dialogs/topendialog.onselectionchange.html
WSRegisterClass lclclasses/tlclcomponent.wsregisterclass.html
- DoExecute dialogs/tcommondialog.doexecute.html
TSaveDialog dialogs/tsavedialog.html
+ DefaultTitle dialogs/tsavedialog.defaulttitle.html
Create dialogs/tsavedialog.create.html
WSRegisterClass lclclasses/tlclcomponent.wsregisterclass.html
- DefaultTitle dialogs/topendialog.defaulttitle.html
TSelectDirectoryDialog dialogs/tselectdirectorydialog.html
+ CheckFileMustExist dialogs/tselectdirectorydialog.checkfilemustexist.html
+ DefaultTitle dialogs/tselectdirectorydialog.defaulttitle.html
+ Create dialogs/tselectdirectorydialog.create.html
WSRegisterClass lclclasses/tlclcomponent.wsregisterclass.html
- CheckFileMustExist dialogs/topendialog.checkfilemustexist.html
- DefaultTitle dialogs/tcommondialog.defaulttitle.html
- Create dialogs/topendialog.create.html
TColorDialog dialogs/tcolordialog.html
+ DefaultTitle dialogs/tcolordialog.defaulttitle.html
Create dialogs/tcolordialog.create.html
Destroy dialogs/tcolordialog.destroy.html
Title dialogs/tcolordialog.title.html
Color dialogs/tcolordialog.color.html
CustomColors dialogs/tcolordialog.customcolors.html
WSRegisterClass lclclasses/tlclcomponent.wsregisterclass.html
- DefaultTitle dialogs/tcommondialog.defaulttitle.html
TColorButton dialogs/tcolorbutton.html
+ DoAutoAdjustLayout dialogs/tcolorbutton.doautoadjustlayout.html
DrawGlyph dialogs/tcolorbutton.drawglyph.html
GetDisabledPattern dialogs/tcolorbutton.getdisabledpattern.html
GetGlyphSize dialogs/tcolorbutton.getglyphsize.html
@@ -7244,14 +7266,15 @@
DefaultTitle dialogs/treplacedialog.defaulttitle.html
ReplaceClick dialogs/treplacedialog.replaceclick.html
ReplaceAllClick dialogs/treplacedialog.replaceallclick.html
+ CreateForm dialogs/treplacedialog.createform.html
+ SetFormValues dialogs/treplacedialog.setformvalues.html
+ GetFormValues dialogs/treplacedialog.getformvalues.html
Create dialogs/treplacedialog.create.html
- CreateForm dialogs/tfinddialog.createform.html
- SetFormValues dialogs/tfinddialog.setformvalues.html
- GetFormValues dialogs/tfinddialog.getformvalues.html
ReplaceText dialogs/tfinddialog.replacetext.html
OnReplace dialogs/tfinddialog.onreplace.html
TCustomPrinterSetupDialog dialogs/tcustomprintersetupdialog.html
TCustomPrintDialog dialogs/tcustomprintdialog.html
+ Create dialogs/tcustomprintdialog.create.html
Collate dialogs/tcustomprintdialog.collate.html
Copies dialogs/tcustomprintdialog.copies.html
FromPage dialogs/tcustomprintdialog.frompage.html
@@ -7261,7 +7284,6 @@
PrintToFile dialogs/tcustomprintdialog.printtofile.html
PrintRange dialogs/tcustomprintdialog.printrange.html
ToPage dialogs/tcustomprintdialog.topage.html
- Create ms-its:rtl.chm::/classes/tcomponent.create.html
TTaskDialogBaseButtonItem dialogs/ttaskdialogbasebuttonitem.html
Client dialogs/ttaskdialogbasebuttonitem.client.html
GetDisplayName dialogs/ttaskdialogbasebuttonitem.getdisplayname.html
@@ -7309,6 +7331,7 @@
Text dialogs/tcustomtaskdialog.text.html
Title dialogs/tcustomtaskdialog.title.html
VerificationText dialogs/tcustomtaskdialog.verificationtext.html
+ Width dialogs/tcustomtaskdialog.width.html
OnButtonClicked dialogs/tcustomtaskdialog.onbuttonclicked.html
TTaskDialog dialogs/ttaskdialog.html
Buttons dialogs/tcustomtaskdialog.buttons.html
@@ -7325,6 +7348,7 @@
Text dialogs/tcustomtaskdialog.text.html
Title dialogs/tcustomtaskdialog.title.html
VerificationText dialogs/tcustomtaskdialog.verificationtext.html
+ Width dialogs/tcustomtaskdialog.width.html
OnButtonClicked dialogs/tcustomtaskdialog.onbuttonclicked.html
TCustomCopyToClipboardDialog dialogs/tcustomcopytoclipboarddialog.html
DoCreate dialogs/tcustomcopytoclipboarddialog.docreate.html
@@ -7498,13 +7522,13 @@
fOnFilterItemEx editbtn/tcustomcontrolfilteredit.fonfilteritemex.html
fOnCheckItem editbtn/tcustomcontrolfilteredit.foncheckitem.html
DestroyWnd editbtn/tcustomcontrolfilteredit.destroywnd.html
+ ActivateFilter editbtn/tcustomcontrolfilteredit.activatefilter.html
DoDefaultFilterItem editbtn/tcustomcontrolfilteredit.dodefaultfilteritem.html
DoFilterItem editbtn/tcustomcontrolfilteredit.dofilteritem.html
EditKeyDown editbtn/tcustomcontrolfilteredit.editkeydown.html
EditChange editbtn/tcustomcontrolfilteredit.editchange.html
BuddyClick editbtn/tcustomcontrolfilteredit.buddyclick.html
SortAndFilter editbtn/tcustomcontrolfilteredit.sortandfilter.html
- ApplyFilter editbtn/tcustomcontrolfilteredit.applyfilter.html
ApplyFilterCore editbtn/tcustomcontrolfilteredit.applyfiltercore.html
MoveNext editbtn/tcustomcontrolfilteredit.movenext.html
MovePrev editbtn/tcustomcontrolfilteredit.moveprev.html
@@ -8324,10 +8348,14 @@
Canvas extctrls/tcustomimage.canvas.html
DestRect extctrls/tcustomimage.destrect.html
Invalidate extctrls/tcustomimage.invalidate.html
+ HasGraphic extctrls/tcustomimage.hasgraphic.html
AntialiasingMode extctrls/tcustomimage.antialiasingmode.html
Center extctrls/tcustomimage.center.html
KeepOriginXWhenClipped extctrls/tcustomimage.keeporiginxwhenclipped.html
KeepOriginYWhenClipped extctrls/tcustomimage.keeporiginywhenclipped.html
+ ImageIndex extctrls/tcustomimage.imageindex.html
+ ImageWidth extctrls/tcustomimage.imagewidth.html
+ Images extctrls/tcustomimage.images.html
Picture extctrls/tcustomimage.picture.html
Stretch extctrls/tcustomimage.stretch.html
StretchOutEnabled extctrls/tcustomimage.stretchoutenabled.html
@@ -8350,6 +8378,9 @@
OnMouseWheelDown controls/tcontrol.onmousewheeldown.html
OnMouseWheelUp controls/tcontrol.onmousewheelup.html
TImage extctrls/timage.html
+ ImageIndex extctrls/timage.imageindex.html
+ ImageWidth extctrls/timage.imagewidth.html
+ Images extctrls/timage.images.html
AntialiasingMode extctrls/tcustomimage.antialiasingmode.html
Align controls/tcontrol.align.html
Anchors controls/tcontrol.anchors.html
@@ -8495,7 +8526,7 @@
OnSelectionChanged extctrls/tcustomradiogroup.onselectionchanged.html
OnStartDrag controls/tcontrol.onstartdrag.html
OnUTF8KeyPress controls/twincontrol.onutf8keypress.html
- ParentBackground controls/twincontrol.parentbackground.html
+ ParentBackground
ParentBidiMode controls/tcontrol.parentbidimode.html
ParentFont controls/tcontrol.parentfont.html
ParentColor controls/tcontrol.parentcolor.html
@@ -8572,7 +8603,7 @@
OnResize controls/tcontrol.onresize.html
OnStartDrag controls/tcontrol.onstartdrag.html
OnUTF8KeyPress controls/twincontrol.onutf8keypress.html
- ParentBackground controls/twincontrol.parentbackground.html
+ ParentBackground
ParentBiDiMode controls/tcontrol.parentbidimode.html
ParentFont controls/tcontrol.parentfont.html
ParentColor controls/tcontrol.parentcolor.html
@@ -8700,6 +8731,7 @@
Paint extctrls/tcustompanel.paint.html
SetParentBackground extctrls/tcustompanel.setparentbackground.html
UpdateParentColorChange extctrls/tcustompanel.updateparentcolorchange.html
+ ShowAccelChar extctrls/tcustompanel.showaccelchar.html
VerticalAlignment extctrls/tcustompanel.verticalalignment.html
WordWrap extctrls/tcustompanel.wordwrap.html
Create extctrls/tcustompanel.create.html
@@ -8718,6 +8750,7 @@
CMParentColorChanged controls/tcontrol.cmparentcolorchanged.html
GetDefaultDockCaption controls/tcontrol.getdefaultdockcaption.html
TPanel extctrls/tpanel.html
+ ShowAccelChar extctrls/tcustompanel.showaccelchar.html
UseDockManager extctrls/tpanel.usedockmanager.html
Align extctrls/tcustompanel.align.html
Alignment extctrls/tcustompanel.alignment.html
@@ -9523,6 +9556,10 @@
WSRegisterClass lclclasses/tlclcomponent.wsregisterclass.html
GetControlClassDefaultSize controls/tcontrol.getcontrolclassdefaultsize.html
TScrollBox forms/tscrollbox.html
+ SetParentBackground forms/tscrollbox.setparentbackground.html
+ CMParentColorChanged forms/tscrollbox.cmparentcolorchanged.html
+ Loaded forms/tscrollbox.loaded.html
+ UpdateParentColorChange forms/tscrollbox.updateparentcolorchange.html
Create forms/tscrollbox.create.html
AutoScroll forms/tscrollbox.autoscroll.html
BorderStyle forms/tscrollbox.borderstyle.html
@@ -9946,12 +9983,12 @@
TCustomDockForm forms/tcustomdockform.html
DoAddDockClient forms/tcustomdockform.doadddockclient.html
DoRemoveDockClient forms/tcustomdockform.doremovedockclient.html
+ GetSiteInfo forms/tcustomdockform.getsiteinfo.html
Loaded forms/tcustomdockform.loaded.html
Create forms/tcustomdockform.create.html
AutoScroll forms/tcustomdockform.autoscroll.html
BorderStyle forms/tcustomdockform.borderstyle.html
FormStyle forms/tcustomdockform.formstyle.html
- GetSiteInfo controls/twincontrol.getsiteinfo.html
PixelsPerInch forms/tcustomdesigncontrol.pixelsperinch.html
THintWindow forms/thintwindow.html
WMNCHitTest forms/thintwindow.wmnchittest.html
@@ -10192,6 +10229,10 @@
RemoveOnShowHintHandler forms/tapplication.removeonshowhinthandler.html
AddOnGetMainFormHandleHandler forms/tapplication.addongetmainformhandlehandler.html
RemoveOnGetMainFormHandleHandler forms/tapplication.removeongetmainformhandlehandler.html
+ AddOnActionExecuteHandler forms/tapplication.addonactionexecutehandler.html
+ RemoveOnActionExecuteHandler forms/tapplication.removeonactionexecutehandler.html
+ AddOnActionUpdateHandler forms/tapplication.addonactionupdatehandler.html
+ RemoveOnActionUpdateHandler forms/tapplication.removeonactionupdatehandler.html
RemoveAllHandlersOfObject forms/tapplication.removeallhandlersofobject.html
DoBeforeMouseMessage forms/tapplication.dobeforemousemessage.html
IsShortcut forms/tapplication.isshortcut.html
@@ -10299,6 +10340,8 @@
SetOnHint forms/tapplicationproperties.setonhint.html
SetOnShowHint forms/tapplicationproperties.setonshowhint.html
SetOnUserInput forms/tapplicationproperties.setonuserinput.html
+ SetOnActionExecute forms/tapplicationproperties.setonactionexecute.html
+ SetOnActionUpdate forms/tapplicationproperties.setonactionupdate.html
Create forms/tapplicationproperties.create.html
Destroy forms/tapplicationproperties.destroy.html
ExceptionDialog forms/tapplicationproperties.exceptiondialog.html
@@ -10332,6 +10375,8 @@
OnHint forms/tapplication.onhint.html
OnShowHint forms/tapplication.onshowhint.html
OnUserInput forms/tapplication.onuserinput.html
+ OnActionExecute forms/tapplication.onactionexecute.html
+ OnActionUpdate forms/tapplication.onactionupdate.html
TIDesigner forms/tidesigner.html
FLookupRoot forms/tidesigner.flookuproot.html
FDefaultFormBoundsValid forms/tidesigner.fdefaultformboundsvalid.html
@@ -11355,6 +11400,7 @@
DrawVerticalGradient graphutil/drawverticalgradient.html
DrawGradientWindow graphutil/drawgradientwindow.html
AntiAliasedStretchDrawBitmap graphutil/antialiasedstretchdrawbitmap.html
+ BitmapGrayscale graphutil/bitmapgrayscale.html
DrawArrow graphutil/drawarrow.html
FloodFill graphutil/floodfill.html
ScaleImg graphutil/scaleimg.html
@@ -11447,6 +11493,7 @@
TSizingRec grids/tsizingrec.html
TGridDataCache grids/tgriddatacache.html
TGridCursorState grids/tgridcursorstate.html
+ TGridScrollerDoScroll grids/tgridscrollerdoscroll.html
TGetEditEvent grids/tgeteditevent.html
TSetEditEvent grids/tseteditevent.html
TGetCheckboxStateEvent grids/tgetcheckboxstateevent.html
@@ -11632,6 +11679,10 @@
Items grids/tgridcolumns.items.html
VisibleCount grids/tgridcolumns.visiblecount.html
Enabled grids/tgridcolumns.enabled.html
+ TGridScroller grids/tgridscroller.html
+ Create grids/tgridscroller.create.html
+ Destroy grids/tgridscroller.destroy.html
+ Start grids/tgridscroller.start.html
TCustomGrid grids/tcustomgrid.html
fGridState grids/tcustomgrid.fgridstate.html
RTLSign grids/tcustomgrid.rtlsign.html
@@ -13057,6 +13108,7 @@
AppRemoveStayOnTopFlags interfacebase/twidgetset.appremovestayontopflags.html
AppRestoreStayOnTopFlags interfacebase/twidgetset.apprestorestayontopflags.html
AppSetMainFormOnTaskBar interfacebase/twidgetset.appsetmainformontaskbar.html
+ AppSetupMainForm interfacebase/twidgetset.appsetupmainform.html
LCLPlatform interfacebase/twidgetset.lclplatform.html
GetLCLCapability interfacebase/twidgetset.getlclcapability.html
DCGetPixel interfacebase/twidgetset.dcgetpixel.html
@@ -13711,6 +13763,7 @@
DoDrawImage lazcanvas/tlazcanvas.dodrawimage.html
CanvasCopyRect lazcanvas/tlazcanvas.canvascopyrect.html
FillColor lazcanvas/tlazcanvas.fillcolor.html
+ Polygon lazcanvas/tlazcanvas.polygon.html
AssignPenData lazcanvas/tlazcanvas.assignpendata.html
AssignBrushData lazcanvas/tlazcanvas.assignbrushdata.html
AssignFontData lazcanvas/tlazcanvas.assignfontdata.html
@@ -14574,6 +14627,8 @@
TLCLPlatform lclplatformdef/tlclplatform.html
TLCLPlatforms lclplatformdef/tlclplatforms.html
DirNameToLCLPlatform lclplatformdef/dirnametolclplatform.html
+ DirNameToDisplayName lclplatformdef/dirnametodisplayname.html
+ DisplayNameToDirName lclplatformdef/displaynametodirname.html
GetBuildLCLWidgetType lclplatformdef/getbuildlclwidgettype.html
BuildLCLWidgetType lclplatformdef/buildlclwidgettype.html
LCLProc lclproc/index.html
@@ -18389,8 +18444,15 @@
TObjectTypes shellctrls/tobjecttypes.html
TFileSortType shellctrls/tfilesorttype.html
TMaskCaseSensitivity shellctrls/tmaskcasesensitivity.html
+ TExpandCollapseMode shellctrls/texpandcollapsemode.html
+ TFileItemCompareEvent shellctrls/tfileitemcompareevent.html
TAddItemEvent shellctrls/tadditemevent.html
TCSLVFileAddedEvent shellctrls/tcslvfileaddedevent.html
+ TFileItem shellctrls/tfileitem.html
+ isFolder shellctrls/tfileitem.isfolder.html
+ Create shellctrls/tfileitem.create.html
+ BasePath shellctrls/tfileitem.basepath.html
+ FileInfo shellctrls/tfileitem.fileinfo.html
TCustomShellTreeView shellctrls/tcustomshelltreeview.html
WSRegisterClass
DoCreateNodeClass shellctrls/tcustomshelltreeview.docreatenodeclass.html
@@ -18400,9 +18462,11 @@
DoSelectionChanged shellctrls/tcustomshelltreeview.doselectionchanged.html
DoAddItem shellctrls/tcustomshelltreeview.doadditem.html
CanExpand shellctrls/tcustomshelltreeview.canexpand.html
+ Collapse shellctrls/tcustomshelltreeview.collapse.html
DrawBuiltInIcon shellctrls/tcustomshelltreeview.drawbuiltinicon.html
GetBuiltinIconSize shellctrls/tcustomshelltreeview.getbuiltiniconsize.html
NodeHasChildren shellctrls/tcustomshelltreeview.nodehaschildren.html
+ ExpandCollapseMode shellctrls/tcustomshelltreeview.expandcollapsemode.html
Create shellctrls/tcustomshelltreeview.create.html
Destroy shellctrls/tcustomshelltreeview.destroy.html
GetBasePath shellctrls/tcustomshelltreeview.getbasepath.html
@@ -18417,8 +18481,10 @@
Root shellctrls/tcustomshelltreeview.root.html
Path shellctrls/tcustomshelltreeview.path.html
OnAddItem shellctrls/tcustomshelltreeview.onadditem.html
+ OnSortCompare shellctrls/tcustomshelltreeview.onsortcompare.html
Items comctrls/tcustomtreeview.items.html
TShellTreeView shellctrls/tshelltreeview.html
+ ExpandCollapseMode shellctrls/tshelltreeview.expandcollapsemode.html
ParentColor shellctrls/tshelltreeview.parentcolor.html
TabStop shellctrls/tshelltreeview.tabstop.html
Tag shellctrls/tshelltreeview.tag.html
@@ -18493,6 +18559,7 @@
OnMouseWheelRight controls/tcontrol.onmousewheelright.html
OnSelectionChanged comctrls/tcustomtreeview.onselectionchanged.html
OnShowHint controls/tcontrol.onshowhint.html
+ OnSortCompare shellctrls/tcustomshelltreeview.onsortcompare.html
OnUTF8KeyPress controls/twincontrol.onutf8keypress.html
Options comctrls/tcustomtreeview.options.html
TreeLineColor comctrls/tcustomtreeview.treelinecolor.html
@@ -18597,6 +18664,7 @@
Root shellctrls/tcustomshelllistview.root.html
ShellTreeView shellctrls/tcustomshelllistview.shelltreeview.html
TShellTreeNode shellctrls/tshelltreenode.html
+ FFileInfo shellctrls/tshelltreenode.ffileinfo.html
SetBasePath shellctrls/tshelltreenode.setbasepath.html
ShortFilename shellctrls/tshelltreenode.shortfilename.html
FullFilename shellctrls/tshelltreenode.fullfilename.html
@@ -20175,6 +20243,8 @@
IsMixed themes/tthemeservices.ismixed.html
GetElementDetails themes/tthemeservices.getelementdetails.html
GetDetailSize themes/tthemeservices.getdetailsize.html
+ GetDetailSizeForWindow themes/tthemeservices.getdetailsizeforwindow.html
+ GetDetailSizeForPPI themes/tthemeservices.getdetailsizeforppi.html
GetDetailRegion themes/tthemeservices.getdetailregion.html
GetStockImage themes/tthemeservices.getstockimage.html
GetOption themes/tthemeservices.getoption.html
@@ -22361,6 +22431,7 @@
3MAppRemoveStayOnTopFlags
3MAppRestoreStayOnTopFlags
3MAppSetMainFormOnTaskBar
+3MAppSetupMainForm
3MLCLPlatform
3MGetLCLCapability
3MDCGetPixel
@@ -22997,6 +23068,8 @@
3MIsMixed
3MGetElementDetails
3MGetDetailSize
+3MGetDetailSizeForWindow
+3MGetDetailSizeForPPI
3MGetDetailRegion
3MGetStockImage
3MGetOption
@@ -24738,6 +24811,7 @@
3MSetReplacingControl
3MAutoFreeByControl
3MIsEnabledControl
+3MCanBeDoubleDocked
#lcl.Controls.TSizeConstraints #rtl.Classes.TPersistent
1VFControl
1VFMaxHeight
@@ -25226,6 +25300,7 @@
2MUpdateMouseCursor
2MChanged
2MGetPalette
+2MGetParentBackground
2MChildClassAllowed
2MReadState
2MLoaded
@@ -25247,6 +25322,7 @@
2MSetHint
2MSetName
2MSetParent
+2MSetParentBackground
2MSetParentComponent
2MWndProc
2MParentFormHandleInitialized
@@ -25288,6 +25364,7 @@
2PDragKind rw
2PDragMode rw
2PMouseCapture rw
+2PParentBackground rw
2PParentColor rw
2PParentFont rw
2PParentShowHint rw
@@ -25437,8 +25514,10 @@
3MRemoveHandlerOnVisibleChanging
3MAddHandlerOnVisibleChanged
3MRemoveHandlerOnVisibleChanged
+3MAddHandlerOnEnabledChanging
+3MRemoveHandlerOnEnabledChanging
3MAddHandlerOnEnabledChanged
-3MRemoveHandlerOnEnableChanging
+3MRemoveHandlerOnEnabledChanged
3MAddHandlerOnKeyDown
3MRemoveHandlerOnKeyDown
3MAddHandlerOnBeforeDestruction
@@ -25743,7 +25822,6 @@
2MGetClientRect
2MGetControlOrigin
2MGetDeviceContext
-2MGetParentBackground
2MIsControlMouseMsg
2MCreateHandle
2MCreateParams
@@ -25767,7 +25845,6 @@
2MSetBorderStyle
2MSetColor
2MSetChildZPosition
-2MSetParentBackground
2MShowControl
2MUpdateControlState
2MUpdateShowing
@@ -25777,7 +25854,6 @@
2PBorderStyle rw
2POnGetSiteInfo rw
2POnGetDockCaption rw
-2PParentBackground rw
3PBorderWidth rw
3PBoundsLockCount r
3PBrush r
@@ -27889,6 +27965,10 @@
4PVertScrollBar rw
#lcl.Forms.TScrollBox #lcl.Forms.TScrollingWinControl
2MWSRegisterClass
+2MSetParentBackground
+2MCMParentColorChanged
+2MLoaded
+2MUpdateParentColorChange
3MCreate
4PAlign
4PAnchors
@@ -28869,6 +28949,10 @@
3MRemoveOnShowHintHandler
3MAddOnGetMainFormHandleHandler
3MRemoveOnGetMainFormHandleHandler
+3MAddOnActionExecuteHandler
+3MRemoveOnActionExecuteHandler
+3MAddOnActionUpdateHandler
+3MRemoveOnActionUpdateHandler
3MRemoveAllHandlersOfObject
3MDoBeforeMouseMessage
3MIsShortcut
@@ -28976,6 +29060,8 @@
1VFOnQueryEndSession
1VFOnMinimize
1VFOnRestore
+1VFOnActionExecute
+1VFOnActionUpdate
1MSetExceptionDialog
2MSetCaptureExceptions
2MSetHelpFile
@@ -29007,6 +29093,8 @@
2MSetOnHint
2MSetOnShowHint
2MSetOnUserInput
+2MSetOnActionExecute
+2MSetOnActionUpdate
3MCreate
3MDestroy
4PCaptureExceptions rw
@@ -29040,6 +29128,8 @@
4POnHint rw
4POnShowHint rw
4POnUserInput rw
+4POnActionExecute rw
+4POnActionUpdate rw
#lcl.Forms.TIDesigner #rtl.System.TObject
2VFLookupRoot
2VFDefaultFormBoundsValid
@@ -29541,6 +29631,7 @@
1MSetButtonColorAutoSize
1MSetButtonColorSize
2MWSRegisterClass
+2MDoAutoAdjustLayout
2MDrawGlyph
2MGetDisabledPattern
2MGetGlyphSize
@@ -29746,6 +29837,7 @@
1VFText
1VFTitle
1VFVerificationText
+1VFWidth
1VFOnButtonClicked
1MDoOnButtonClickedHandler
1MSetButtons
@@ -29773,6 +29865,7 @@
3PText rw
3PTitle rw
3PVerificationText rw
+3PWidth rw
3POnButtonClicked rw
#lcl.Dialogs.TTaskDialog #lcl.Dialogs.TCustomTaskDialog
4PButtons
@@ -29789,6 +29882,7 @@
4PText
4PTitle
4PVerificationText
+4PWidth
4POnButtonClicked
#lcl.Dialogs.TCustomCopyToClipboardDialog #lcl.Forms.TForm
2MDoCreate
@@ -29899,6 +29993,7 @@
3MLoadGlyphFromResourceName
3MLoadGlyphFromLazarusResource
3MLoadGlyphFromStock
+3MLoadGlyphFromResource
3MCanShowGlyph
3PCaption s
3PDefaultCaption rw
@@ -30581,6 +30676,9 @@
4POnStartDrag
#lcl.ExtCtrls.TCustomImage #lcl.Controls.TGraphicControl
1VFAntialiasingMode
+1VFImageIndex
+1VFImages
+1VFImageWidth
1VFOnPictureChanged
1VFOnPaintBackground
1VFPicture
@@ -30595,7 +30693,11 @@
1VFUseAncestorCanvas
1VFPainting
1MGetCanvas
+1MGetHasGraphic
1MSetAntialiasingMode
+1MSetImageIndex
+1MSetImages
+1MSetImageWidth
1MSetPicture
1MSetCenter
1MSetKeepOriginX
@@ -30615,6 +30717,7 @@
3PCanvas r
3MDestRect
3MInvalidate
+3PHasGraphic r
3PAntialiasingMode rw
3PAlign
3PAutoSize
@@ -30622,6 +30725,9 @@
3PKeepOriginXWhenClipped rw
3PKeepOriginYWhenClipped rw
3PConstraints
+3PImageIndex rw
+3PImageWidth rw
+3PImages rw
3PPicture rw
3PVisible
3POnClick
@@ -30653,6 +30759,9 @@
4PDragCursor
4PDragMode
4PEnabled
+4PImageIndex
+4PImageWidth
+4PImages
4POnChangeBounds
4POnClick
4POnContextPopup
@@ -31053,6 +31162,7 @@
1VFAlignment
1VFVertAlignment
1VFFullRepaint
+1VFShowAccelChar
1VFWordWrap
1MPaintBevel
1MSetAlignment
@@ -31060,6 +31170,7 @@
1MSetBevelInner
1MSetBevelOuter
1MSetBevelWidth
+1MSetShowAccelChar
1MSetVertAlignment
1MSetWordwrap
2MWSRegisterClass
@@ -31072,6 +31183,7 @@
2MPaint
2MSetParentBackground
2MUpdateParentColorChange
+2PShowAccelChar rw
2PVerticalAlignment rw
2PWordWrap rw
3MCreate
@@ -31120,6 +31232,7 @@
4PParentFont
4PParentShowHint
4PPopupMenu
+4PShowAccelChar
4PShowHint
4PTabOrder
4PTabStop
@@ -31609,6 +31722,12 @@
3VCombo
3VEdit
3VVerif
+#lcl.DialogRes.TDialogImageList #lcl.ImgList.TLCLGlyphs
+1VfDialogIndexes
+1MLoadImage
+1MGetDialogIcon
+3MCreate
+3PDialogIcon r
#lcl.ComCtrls.TStatusPanel #rtl.Classes.TCollectionItem
1VFBidiMode
1VFText
@@ -33613,7 +33732,6 @@
1MSetMin
1MSetOrientation
1MSetPageSize
-1MSetParams
1MSetPosition
1MSetReversed
1MSetScalePos
@@ -33634,6 +33752,7 @@
2MShouldAutoAdjust
3MCreate
3MSetTick
+3MSetParams
4PAutoSize
4PFrequency rw
4PLineSize rw
@@ -34038,6 +34157,7 @@
1VFOnNodeChanged
1VFOnSelectionChanged
1VFOptions
+1VFPathDelimiter
1VFRClickNode
1VFSaveItems
1VFScrollBars
@@ -34147,8 +34267,11 @@
1MAllowMultiSelectWithShift
1MSetExpandSignSize
1MSetExpandSignWidth
+2MTFindOption
+2MTFindOptions
2VFChangeTimer
2VFEditor
+2VFFindOptions
2MWSRegisterClass
2MGetControlClassDefaultSize
2MAdded
@@ -34266,6 +34389,7 @@
2POnHasChildren rw
2POnNodeChanged rw
2POnSelectionChanged rw
+2PPathDelimiter rw
2PReadOnly rw
2PRightClickSelect rw
2PRowSelect rw
@@ -35194,6 +35318,8 @@
1MSetReadOnly
1MSetValueChecked
1MSetValueUnchecked
+1MNonDefaultValueChecked
+1MNonDefaultValueUnchecked
1MCMGetDataLink
2MGetFieldCheckState
2MDataChange
@@ -35254,8 +35380,8 @@
4PShowHint
4PTabOrder
4PTabStop
-4PValueChecked rw
-4PValueUnchecked rw
+4PValueChecked rws
+4PValueUnchecked rws
4PVisible
#lcl.DBCtrls.TCustomDBComboBox #lcl.StdCtrls.TCustomComboBox
1VFDataLink
@@ -36535,6 +36661,9 @@
4PBorderStyle
4PCellHintPriority
4PColor
+4PColRowDraggingCursor
+4PColRowDragIndicatorColor
+4PColSizingCursor
4PColumns
4PConstraints
4PDataSource
@@ -36915,6 +37044,14 @@
3PItems rw
3PVisibleCount r
3PEnabled r
+#lcl.Grids.TGridScroller #rtl.System.TObject
+1VDir
+1VTimer
+1VCallback
+1MTimerTick
+3MCreate
+3MDestroy
+3MStart
#lcl.Grids.TCustomGrid #lcl.Controls.TCustomControl
1VFAlternateColor
1VFAutoAdvance
@@ -37031,6 +37168,7 @@
1VFSavedHint
1VFCellHintPriority
1VFOnGetCellHint
+1VFScroller
1MAdjustCount
1MCacheVisibleGrid
1MCancelSelection
@@ -37052,6 +37190,8 @@
1MSetAltColorStartNormal
1MSetFlat
1MSetFocusRectVisible
+1MScrollerDoScroll
+1MSetScroller
1MSetTitleImageList
1MSetTitleImageListWidth
1MSetTitleFont
@@ -38422,17 +38562,27 @@
4POnStartDrag
4POnSelect
4POnUTF8KeyPress
+#lcl.ShellCtrls.TFileItem #rtl.System.TObject
+1VFFileInfo
+1VFBasePath
+3VisFolder
+3MCreate
+3PBasePath r
+3PFileInfo rw
#lcl.ShellCtrls.TCustomShellTreeView #lcl.ComCtrls.TCustomTreeView
1VFObjectTypes
1VFRoot
1VFShellListView
+1VFExpandCollapseMode
1VFFileSortType
1VFInitialRoot
1VFUseBuiltinIcons
1VFOnAddItem
+1VFOnSortCompare
1MGetPath
1MSetFileSortType
1MSetObjectTypes
+1MSetOnSortCompare
1MSetPath
1MSetRoot
1MSetShellListView
@@ -38445,9 +38595,11 @@
2MDoSelectionChanged
2MDoAddItem
2MCanExpand
+2MCollapse
2MDrawBuiltInIcon
2MGetBuiltinIconSize
2MNodeHasChildren
+2PExpandCollapseMode rw
3MCreate
3MDestroy
3MGetBasePath
@@ -38462,6 +38614,7 @@
3PRoot rw
3PPath rw
3POnAddItem rw
+3POnSortCompare rw
3PItems
#lcl.ShellCtrls.TShellTreeView #lcl.ShellCtrls.TCustomShellTreeView
4PAlign
@@ -38474,6 +38627,7 @@
4PColor
4PConstraints
4PEnabled
+4PExpandCollapseMode
4PExpandSignType
4PFont
4PFileSortType
@@ -38538,6 +38692,7 @@
4POnMouseWheelRight
4POnSelectionChanged
4POnShowHint
+4POnSortCompare
4POnUTF8KeyPress
4POptions
4PTreeLineColor
@@ -38656,8 +38811,8 @@
4PRoot
4PShellTreeView
#lcl.ShellCtrls.TShellTreeNode #lcl.ComCtrls.TTreeNode
-1VFFileInfo
1VFBasePath
+2VFFileInfo
2MSetBasePath
3MShortFilename
3MFullFilename
@@ -40316,14 +40471,17 @@
4PTextHint
4PVisible
#lcl.EditBtn.TCustomControlFilterEdit #lcl.EditBtn.TCustomEditButton
-1VfFilter
1VfFilterLowercase
1VfFilterOptions
1VfIdleConnected
1VfSortData
1VfIsFirstSetFormActivate
1VfOnAfterFilter
+1MApplyFilter
+1MGetFilter
1MSetFilter
+1MSetFilterOptions
+1MSetSortData
1MSetIdleConnected
1MOnIdle
1MIsTextHintStored
@@ -40334,13 +40492,13 @@
2VfOnFilterItemEx
2VfOnCheckItem
2MDestroyWnd
+2MActivateFilter
2MDoDefaultFilterItem
2MDoFilterItem
2MEditKeyDown
2MEditChange
2MBuddyClick
2MSortAndFilter
-2MApplyFilter
2MApplyFilterCore
2MMoveNext
2MMovePrev
@@ -41246,7 +41404,6 @@
1MInitialize
1MKeepInView
1MReturnDate
-2MPaint
#lcl.JSONPropStorage.TCustomJSONPropStorage #lcl.Forms.TFormPropertyStorage
1VFCount
1VFJSONFileName
@@ -41816,6 +41973,7 @@
1VFAssignedFont
1VFAssignedPen
1VFBaseWindowOrg
+1VFPolygonWindingMode
1VFWindowOrg
1VGraphicStateList
1MGetAssignedBrush
@@ -41848,6 +42006,7 @@
3MDoDrawImage
3MCanvasCopyRect
3MFillColor
+3MPolygon
3MAssignPenData
3MAssignBrushData
3MAssignFontData
diff -Nru lazarus-2.2.4+dfsg1/ide/lazarus.lpi lazarus-2.2.6+dfsg1/ide/lazarus.lpi
--- lazarus-2.2.4+dfsg1/ide/lazarus.lpi 2022-09-25 12:37:17.000000000 +0200
+++ lazarus-2.2.6+dfsg1/ide/lazarus.lpi 2023-03-04 14:24:25.000000000 +0100
@@ -25,7 +25,7 @@
<UseVersionInfo Value="True"/>
<MajorVersionNr Value="2"/>
<MinorVersionNr Value="2"/>
- <RevisionNr Value="4"/>
+ <RevisionNr Value="6"/>
<CharSet Value="04B0"/>
<StringTable ProductName="Lazarus IDE"/>
</VersionInfo>
Binary files /tmp/IdHZXXQ1G9/lazarus-2.2.4+dfsg1/ide/lazarus.res and /tmp/5arYyC9vuS/lazarus-2.2.6+dfsg1/ide/lazarus.res differ
diff -Nru lazarus-2.2.4+dfsg1/ide/version.inc lazarus-2.2.6+dfsg1/ide/version.inc
--- lazarus-2.2.4+dfsg1/ide/version.inc 2022-09-25 12:37:17.000000000 +0200
+++ lazarus-2.2.6+dfsg1/ide/version.inc 2023-03-04 14:24:25.000000000 +0100
@@ -1 +1 @@
-'2.2.4'
+'2.2.6'
diff -Nru lazarus-2.2.4+dfsg1/languages/lazaruside.sk.po lazarus-2.2.6+dfsg1/languages/lazaruside.sk.po
--- lazarus-2.2.4+dfsg1/languages/lazaruside.sk.po 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/languages/lazaruside.sk.po 2023-03-04 14:24:25.000000000 +0100
@@ -3,7 +3,7 @@
"Project-Id-Version: lazaruside\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-12-26 15:21+0100\n"
-"PO-Revision-Date: 2022-06-10 10:51+0200\n"
+"PO-Revision-Date: 2022-12-09 10:55+0100\n"
"Last-Translator: Slavko <slavino@slavino.sk>\n"
"Language-Team: Slovenský <sk@li.org>\n"
"MIME-Version: 1.0\n"
@@ -682,7 +682,7 @@
#: lazarusidestrconsts.dlgaddnewmode
msgid "Add new mode"
-msgstr ""
+msgstr "Pridať nový režim"
#: lazarusidestrconsts.dlgaddsemicolon
msgid "Add semicolon"
@@ -757,7 +757,7 @@
#: lazarusidestrconsts.dlgautohidecursor
msgid "Hide mouse pointer when typing"
-msgstr ""
+msgstr "Pri písaní skryť ukazovateľ myši"
#: lazarusidestrconsts.dlgautoindent
msgctxt "lazarusidestrconsts.dlgautoindent"
@@ -1649,7 +1649,6 @@
msgstr ""
#: lazarusidestrconsts.dlgedmisc
-#, fuzzy
msgctxt "lazarusidestrconsts.dlgedmisc"
msgid "Miscellaneous"
msgstr "Rôzne"
@@ -2906,7 +2905,7 @@
#: lazarusidestrconsts.dlgmouseoptions
msgctxt "lazarusidestrconsts.dlgmouseoptions"
msgid "Mouse"
-msgstr ""
+msgstr "Myš"
#: lazarusidestrconsts.dlgmouseoptionsadv
msgid "Advanced"
@@ -4720,11 +4719,11 @@
#: lazarusidestrconsts.lisaddanewseparatoraboveselecteditem
msgid "Add a new separator above selected item"
-msgstr ""
+msgstr "Pridať nový oddeľovač nad vybratú položku"
#: lazarusidestrconsts.lisaddanewseparatorbelowselecteditem
msgid "Add a new separator below selected item"
-msgstr ""
+msgstr "Pridať nový oddeľovač pod vybratú položku"
#: lazarusidestrconsts.lisadddelphidefine
msgid "Add defines simulating Delphi7"
@@ -4791,7 +4790,7 @@
#: lazarusidestrconsts.lisaddnewmacro
msgid "Add new macro"
-msgstr ""
+msgstr "Pridať nové makro"
#: lazarusidestrconsts.lisaddnewset
msgid "Add new set"
@@ -5150,7 +5149,7 @@
#: lazarusidestrconsts.lisautomatically
msgid "Automatically"
-msgstr ""
+msgstr "Automaticky"
#: lazarusidestrconsts.lisautomaticallyconvertlfmtolrs
msgid "Automatically convert .lfm files to .lrs resource files"
@@ -5214,7 +5213,7 @@
#: lazarusidestrconsts.lisavailableforinstallation
msgid "Available for installation"
-msgstr ""
+msgstr "Dostupné na inštaláciu"
#: lazarusidestrconsts.lisavailableprojectbuildmodes
msgid "Available project build modes:"
@@ -5372,7 +5371,7 @@
#: lazarusidestrconsts.lisbtndlgadd
msgid "&Add ..."
-msgstr ""
+msgstr "Prid&ať ..."
#: lazarusidestrconsts.lisbtndlgreplace
msgctxt "lazarusidestrconsts.lisbtndlgreplace"
@@ -6372,7 +6371,7 @@
#: lazarusidestrconsts.liscleancommonfiles
msgid "Clean common files"
-msgstr ""
+msgstr "Vyčistiť bežné súbory"
#: lazarusidestrconsts.liscleanlazarussource
msgid "Clean Lazarus Source"
@@ -6384,7 +6383,7 @@
#: lazarusidestrconsts.liscleanup
msgid "Clean up"
-msgstr ""
+msgstr "Vyčistiť"
#: lazarusidestrconsts.liscleanupandbuild
msgctxt "lazarusidestrconsts.liscleanupandbuild"
@@ -6398,7 +6397,7 @@
#: lazarusidestrconsts.liscleanuppackage
#, object-pascal-format
msgid "Clean up package \"%s\"."
-msgstr ""
+msgstr "Vyčistiť balíček \"%s\"."
#: lazarusidestrconsts.liscleanupunitpath
msgid "Clean up unit path?"
@@ -6423,7 +6422,7 @@
#: lazarusidestrconsts.lisclicktoseethechoices
msgid "Click to see the choices"
-msgstr ""
+msgstr "Kliknutím zobraziť možnosti"
#: lazarusidestrconsts.lisclicktoselectpalettepage
msgid "Click to Select Palette Page"
@@ -6431,7 +6430,7 @@
#: lazarusidestrconsts.lisclone
msgid "Clone"
-msgstr ""
+msgstr "Klonovať"
#: lazarusidestrconsts.lisclose
msgctxt "lazarusidestrconsts.lisclose"
@@ -6491,7 +6490,7 @@
#: lazarusidestrconsts.liscmppages
msgid "Pages"
-msgstr ""
+msgstr "Stránky"
#: lazarusidestrconsts.liscmppalettevisible
msgid "Palette is &visible"
@@ -7070,7 +7069,7 @@
#: lazarusidestrconsts.liscodetoolsoptsbracket
msgid "Bracket"
-msgstr ""
+msgstr "Zátvorka"
#: lazarusidestrconsts.liscodetoolsoptscaret
msgid "Caret (^)"
@@ -8141,7 +8140,7 @@
#: lazarusidestrconsts.liscreatefilter
msgid "Create Filter"
-msgstr ""
+msgstr "Vytvoriť filter"
#: lazarusidestrconsts.liscreatefppkgconfig
msgid "Restore Fppkg configuration"
@@ -8182,7 +8181,7 @@
#: lazarusidestrconsts.liscreateupdatepofilewhensavingalfmfile
msgid "Create/update .po file when saving a lfm file"
-msgstr ""
+msgstr "Vytvoriť/aktualizovať súbor .po pri ukladaní súboru lfm"
#: lazarusidestrconsts.liscreatingfileindexoffpcsources
#, object-pascal-format
@@ -8309,7 +8308,7 @@
#: lazarusidestrconsts.lisdadimagename
msgid "Image Name"
-msgstr ""
+msgstr "Názov obrázka"
#: lazarusidestrconsts.lisdadpid
msgid "PID"
@@ -8532,7 +8531,7 @@
#: lazarusidestrconsts.lisdebugoptionsfrmaddexception
msgid "Add Exception"
-msgstr ""
+msgstr "Pridať výnimku"
#: lazarusidestrconsts.lisdebugoptionsfrmadditionalsearchpath
msgid "Additional search path"
@@ -8632,14 +8631,13 @@
msgstr "Modul"
#: lazarusidestrconsts.lisdebugoptionsfrmname
-#, fuzzy
msgctxt "lazarusidestrconsts.lisdebugoptionsfrmname"
msgid "Name:"
msgstr "Meno:"
#: lazarusidestrconsts.lisdebugoptionsfrmnotifyonlazarusexceptions
msgid "Notify on Exceptions"
-msgstr ""
+msgstr "Upozorniť pri výnimkách"
#: lazarusidestrconsts.lisdebugoptionsfrmosexceptions
msgid "OS Exceptions"
@@ -8818,7 +8816,7 @@
#: lazarusidestrconsts.lisdeletemacro
#, object-pascal-format
msgid "Delete macro \"%s\"?"
-msgstr ""
+msgstr "Zmazať makro \"%s\"?"
#: lazarusidestrconsts.lisdeletemode
#, object-pascal-format
@@ -8832,7 +8830,7 @@
#: lazarusidestrconsts.lisdeleteoldfile2
msgid "Delete old file?"
-msgstr "Zmazať staré súbory?"
+msgstr "Zmazať starý súbor?"
#: lazarusidestrconsts.lisdeleteselectedmacro
msgid "Delete selected macro?"
@@ -8947,11 +8945,11 @@
#: lazarusidestrconsts.lisdirectories
msgid "Directories"
-msgstr ""
+msgstr "Adresáre"
#: lazarusidestrconsts.lisdirectory
msgid "Directory: "
-msgstr ""
+msgstr "Adresár:"
#: lazarusidestrconsts.lisdirectorynotfound
#, object-pascal-format
@@ -9047,7 +9045,7 @@
#: lazarusidestrconsts.lisdiscardchangescreatenewproject
msgid "Discard changes, create new project"
-msgstr ""
+msgstr "Zahodiť zmeny, vytvoriť nový projekt"
#: lazarusidestrconsts.lisdiskdiffclickononeoftheaboveitemstoseethediff
msgid "Click on one of the above items to see the diff"
@@ -9079,8 +9077,6 @@
msgstr "Rozoznávať veľké a malé písmená, napr. C a c"
#: lazarusidestrconsts.lisdlgadd
-#, fuzzy
-#| msgid "Add..."
msgctxt "lazarusidestrconsts.lisdlgadd"
msgid "Add ..."
msgstr "Pridať..."
@@ -9112,7 +9108,7 @@
#: lazarusidestrconsts.lisdlgimport
msgctxt "lazarusidestrconsts.lisdlgimport"
msgid "Import ..."
-msgstr ""
+msgstr "Importovať ..."
#: lazarusidestrconsts.lisdlgmore
msgctxt "lazarusidestrconsts.lisdlgmore"
@@ -9770,7 +9766,7 @@
#: lazarusidestrconsts.liserroropeningform
msgid "Error opening form"
-msgstr ""
+msgstr "Chyba otvárania formulára"
#: lazarusidestrconsts.liserrorparsinglfmcomponentstream
msgid "Error parsing lfm component stream."
@@ -9786,10 +9782,9 @@
msgstr "Chyba čítania XML"
#: lazarusidestrconsts.liserrorreadingxmlfile
-#, object-pascal-format, fuzzy, badformat
-#| msgid "Error reading xml file %s%s%s%s%s"
+#, object-pascal-format
msgid "Error reading xml file \"%s\"%s%s"
-msgstr "Chyba čítania XML súboru %s%s%s%s%s"
+msgstr "Chyba čítania XML súboru \"%s\"%s%s"
#: lazarusidestrconsts.liserrorrenamingfile
msgid "Error renaming file"
@@ -9803,7 +9798,7 @@
#: lazarusidestrconsts.liserrors2
#, object-pascal-format
msgid ", Errors: %s"
-msgstr ""
+msgstr ", Chyby: %s"
#: lazarusidestrconsts.liserrorsavingform
msgid "Error saving form"
@@ -9964,7 +9959,7 @@
#: lazarusidestrconsts.lisexportallitemstofile
msgid "Export All Items to File"
-msgstr ""
+msgstr "Exportovať všetky položky do súboru"
#: lazarusidestrconsts.lisexportenvironmentoptions
msgctxt "lazarusidestrconsts.lisexportenvironmentoptions"
@@ -9989,7 +9984,7 @@
#: lazarusidestrconsts.lisexportselected
msgid "Export selected"
-msgstr ""
+msgstr "Exportovať vybraté"
#: lazarusidestrconsts.lisexportsub
msgid "Export >>"
@@ -10106,7 +10101,7 @@
#: lazarusidestrconsts.lisfilefilters
msgid "File Filters"
-msgstr ""
+msgstr "Filtre súborov"
#: lazarusidestrconsts.lisfilefiltersaddrow
msgid "Add Row"
@@ -10162,10 +10157,9 @@
msgstr "Súbor je symbolický odkaz"
#: lazarusidestrconsts.lisfileisvirtual
-#, object-pascal-format, fuzzy, badformat
-#| msgid "File %s%s%s is virtual."
+#, object-pascal-format
msgid "File \"%s\" is virtual."
-msgstr "Súbor %s%s%s je virtuálny."
+msgstr "Súbor \"%s\" je virtuálny."
#: lazarusidestrconsts.lisfilelinkerror
msgid "File link error"
@@ -10834,10 +10828,8 @@
msgstr "Šestnástkovo"
#: lazarusidestrconsts.lishfmhelpforfreepascalcompilermessage
-#, fuzzy
-#| msgid "Help for FreePascal Compiler message"
msgid "Help for Free Pascal Compiler message"
-msgstr "Pomoc pre správu FreePascal Compiler"
+msgstr "Pomoc pre správu FreePascal prekladača"
#: lazarusidestrconsts.lishideallhintsandwarningsbyinsertingidedirectivesh
msgid "Hide all hints and warnings by inserting IDE directives {%H-}"
@@ -10989,7 +10981,7 @@
#: lazarusidestrconsts.lisidecompileandrestart
msgid "The IDE will be recompiled and restarted during installation/uninstallation of packages."
-msgstr ""
+msgstr "IDE bude znova preložené a reštartované počas inštalácie/odinštalácie balíčkov."
#: lazarusidestrconsts.lisideconficurationfoundmaybelongtootherlazarus
#, object-pascal-format
@@ -11139,7 +11131,7 @@
#: lazarusidestrconsts.lisignoreexceptiontype
msgid "Ignore this exception type"
-msgstr ""
+msgstr "Ignorovať tento typ výnimky"
#: lazarusidestrconsts.lisignoreuseasancestor
#, object-pascal-format
@@ -11179,7 +11171,7 @@
#: lazarusidestrconsts.lisimportlist
msgid "Import list"
-msgstr "Importný zoznam"
+msgstr "Importovať zoznam"
#: lazarusidestrconsts.lisimportpackagelistxml
msgid "Import package list (*.xml)"
@@ -11387,7 +11379,7 @@
#: lazarusidestrconsts.lisinsession
msgid "In session"
-msgstr ""
+msgstr "V relácii"
#: lazarusidestrconsts.lisinspect
msgid "&Inspect"
@@ -11516,7 +11508,7 @@
#: lazarusidestrconsts.lisinvalidfilename
msgid "Invalid file name"
-msgstr ""
+msgstr "Neplatné meno súboru"
#: lazarusidestrconsts.lisinvalidfilter
msgid "Invalid filter"
@@ -11596,7 +11588,7 @@
#: lazarusidestrconsts.lisinvalidversionin
#, object-pascal-format
msgid "invalid version in %s"
-msgstr ""
+msgstr "neplatná verzia v %s"
#: lazarusidestrconsts.lisisalreadypartoftheproject
#, object-pascal-format
@@ -11616,7 +11608,7 @@
#: lazarusidestrconsts.lisisddirectorynotfound
msgid "directory not found"
-msgstr ""
+msgstr "adresár nenájdený"
#: lazarusidestrconsts.lisissues
msgid "Issues"
@@ -11985,15 +11977,15 @@
#: lazarusidestrconsts.liskmopenrecent
msgctxt "lazarusidestrconsts.liskmopenrecent"
msgid "Open Recent"
-msgstr ""
+msgstr "Otvoriť posledné"
#: lazarusidestrconsts.liskmopenrecentpackage
msgid "Open recent package"
-msgstr ""
+msgstr "Otvoriť nedávny balíček"
#: lazarusidestrconsts.liskmopenrecentproject
msgid "Open recent project"
-msgstr ""
+msgstr "Otvoriť nedávny projekt"
#: lazarusidestrconsts.liskmpastecomponentsfromclipboard
msgid "Paste Components"
@@ -12298,7 +12290,7 @@
#: lazarusidestrconsts.lislastopened
msgid "Last opened"
-msgstr ""
+msgstr "Naposledy otvorené"
#: lazarusidestrconsts.lislaunchingapplicationinvalid
msgid "Launching application invalid"
@@ -12454,7 +12446,7 @@
#: lazarusidestrconsts.lislazbuildrenameprofinfo
msgid "New name for profile:"
-msgstr ""
+msgstr "Nové meno pre profil:"
#: lazarusidestrconsts.lislazbuildrestartafterbuild
#, fuzzy
@@ -13126,19 +13118,19 @@
#: lazarusidestrconsts.lismenueditoraddnewitemabove
msgid "&Add new item above"
-msgstr ""
+msgstr "Prid&ať novú položku nad"
#: lazarusidestrconsts.lismenueditoraddnewitemafter
msgid "Add ne&w item after"
-msgstr ""
+msgstr "Pridať novú položku za"
#: lazarusidestrconsts.lismenueditoraddnewitembefore
msgid "&Add new item before"
-msgstr ""
+msgstr "Prid&ať novú položku pred"
#: lazarusidestrconsts.lismenueditoraddnewitembelow
msgid "Add ne&w item below"
-msgstr ""
+msgstr "Pridať &novú položku pod"
#: lazarusidestrconsts.lismenueditoraddonclickhandler
msgid "Add &OnClick handler"
@@ -13146,23 +13138,23 @@
#: lazarusidestrconsts.lismenueditoraddseparatorafter
msgid "Add separator &after"
-msgstr ""
+msgstr "Pridať oddeľovač &za"
#: lazarusidestrconsts.lismenueditoraddseparatorbefore
msgid "Add separator &before"
-msgstr ""
+msgstr "Pridať oddeľovač &pred"
#: lazarusidestrconsts.lismenueditoraddsubmenu
msgid "Add submenu"
-msgstr ""
+msgstr "Pridať podmenu"
#: lazarusidestrconsts.lismenueditoraddsubmenubelow
msgid "Add &submenu below"
-msgstr ""
+msgstr "Pridať &podmenu pod"
#: lazarusidestrconsts.lismenueditoraddsubmenuright
msgid "Add &submenu right"
-msgstr ""
+msgstr "Pridať &podmenu vpravo"
#: lazarusidestrconsts.lismenueditoranewmenutemplatehasbeensaved
#, object-pascal-format
@@ -13387,7 +13379,7 @@
#: lazarusidestrconsts.lismenueditormenuitemactions
msgid "Menu Item actions"
-msgstr ""
+msgstr "Akcie položky menu"
#: lazarusidestrconsts.lismenueditormenuitemshortcutconflictsins
#, object-pascal-format
@@ -13400,39 +13392,37 @@
#: lazarusidestrconsts.lismenueditormoveitemdown
msgid "Mo&ve item down"
-msgstr ""
+msgstr "Posunúť položku nadol"
#: lazarusidestrconsts.lismenueditormoveitemleft
msgid "&Move item left"
-msgstr ""
+msgstr "Posunúť položku doľava"
#: lazarusidestrconsts.lismenueditormoveitemright
msgid "Mo&ve item right"
-msgstr ""
+msgstr "Posunúť položku doprava"
#: lazarusidestrconsts.lismenueditormoveitemup
msgid "&Move item up"
-msgstr ""
+msgstr "&Posunúť položku nahor"
#: lazarusidestrconsts.lismenueditormoveselecteditemdown
-#, fuzzy
msgctxt "lazarusidestrconsts.lismenueditormoveselecteditemdown"
msgid "Move selected item down"
-msgstr "Presuň vybratú položku nadol"
+msgstr "Presunúť vybratú položku nadol"
#: lazarusidestrconsts.lismenueditormoveselecteditemtotheleft
msgid "Move selected item to the left"
-msgstr ""
+msgstr "Presunúť vybranú položku doľava"
#: lazarusidestrconsts.lismenueditormoveselecteditemtotheright
msgid "Move selected item to the right"
-msgstr ""
+msgstr "Presunúť vybranú položku doprava"
#: lazarusidestrconsts.lismenueditormoveselecteditemup
-#, fuzzy
msgctxt "lazarusidestrconsts.lismenueditormoveselecteditemup"
msgid "Move selected item up"
-msgstr "Presuň vybratú položku nahor"
+msgstr "Presunúť vybratú položku nahor"
#: lazarusidestrconsts.lismenueditormoveup
msgid "Move Up (or left)"
@@ -13483,7 +13473,7 @@
#: lazarusidestrconsts.lismenueditorremoveallseparators
msgid "&Remove all separators"
-msgstr ""
+msgstr "Odst&rániť všetky oddeľovače"
#: lazarusidestrconsts.lismenueditorresolvedconflictss
#, object-pascal-format
@@ -13525,7 +13515,7 @@
#: lazarusidestrconsts.lismenueditorseparators
msgid "Se¶tors"
-msgstr ""
+msgstr "Oddelovače"
#: lazarusidestrconsts.lismenueditorshortcutitemss
#, object-pascal-format
@@ -13615,7 +13605,7 @@
#: lazarusidestrconsts.lismenueditorssubmenu
#, object-pascal-format
msgid "%s submenu"
-msgstr ""
+msgstr "%s podmenu"
#: lazarusidestrconsts.lismenueditorstandardtemplates
msgid "Standard templates"
@@ -14635,15 +14625,15 @@
#: lazarusidestrconsts.lismmstoredinideenvironmentoptionsxml
msgid "Stored in IDE (environmentoptions.xml)"
-msgstr ""
+msgstr "Uložené v IDE (environmentoptions.xml)"
#: lazarusidestrconsts.lismmstoredinprojectlpi
msgid "Stored in project (.lpi)"
-msgstr ""
+msgstr "Uložené v projekte (.lpi)"
#: lazarusidestrconsts.lismmstoredinsessionofprojectlps
msgid "Stored in session of project (.lps)"
-msgstr ""
+msgstr "Uložené v relácii projektu (.lps)"
#: lazarusidestrconsts.lismmtargets
msgid "Targets: "
@@ -14746,12 +14736,12 @@
#: lazarusidestrconsts.lismoveonepositiondown
#, object-pascal-format
msgid "Move \"%s\" one position down"
-msgstr ""
+msgstr "Presunúť \"%s\" o jednu pozíciu nadol"
#: lazarusidestrconsts.lismoveonepositionup
#, object-pascal-format
msgid "Move \"%s\" one position up"
-msgstr ""
+msgstr "Presunúť \"%s\" o jednu pozíciu nahor"
#: lazarusidestrconsts.lismoveorcopyfiles
msgid "Move or Copy files?"
@@ -15723,7 +15713,7 @@
#: lazarusidestrconsts.lispckeditaddfilesfromfilesystem
msgid "Add Files from File System"
-msgstr ""
+msgstr "Pridať súbory zo systému súborov"
#: lazarusidestrconsts.lispckeditaddotheritems
msgid "Add other items"
@@ -15753,7 +15743,7 @@
#: lazarusidestrconsts.lispckeditcleanupdependencies
msgid "Clean up dependencies ..."
-msgstr ""
+msgstr "Vyčistiť závislosti ..."
#: lazarusidestrconsts.lispckeditcleardefaultpreferredfilenameofdependency
msgid "Clear default/preferred filename of dependency"
@@ -15876,14 +15866,10 @@
msgstr "Len na čítanie: %s"
#: lazarusidestrconsts.lispckeditrecompileallrequired
-#, fuzzy
-#| msgid "Recompile all required"
msgid "Recompile All Required"
msgstr "Znova preložiť všetky vyžadované"
#: lazarusidestrconsts.lispckeditrecompileclean
-#, fuzzy
-#| msgid "Recompile clean"
msgid "Recompile Clean"
msgstr "Vyčistiť a znova preložiť"
@@ -16212,25 +16198,23 @@
#: lazarusidestrconsts.lispesavepackageas
msgid "Save Package As ..."
-msgstr ""
+msgstr "Uložiť balíček ako ..."
#: lazarusidestrconsts.lispeshowdirectoryhierarchy
msgid "Show directory hierarchy"
-msgstr ""
+msgstr "Zobraziť hierarchiu adresárov"
#: lazarusidestrconsts.lispeshowmissingfiles
msgid "Show Missing Files"
-msgstr ""
+msgstr "Zobraziť chýbajúce súbory"
#: lazarusidestrconsts.lispesortfiles
-#, fuzzy
-#| msgid "Sort Files"
msgid "Sort Files Permanently"
-msgstr "Zoradiť súbory"
+msgstr "Zoradiť súbory natrvalo"
#: lazarusidestrconsts.lispesortfilesalphabetically
msgid "Sort files alphabetically"
-msgstr ""
+msgstr "Zoradiť súbory podľa abecedy"
#: lazarusidestrconsts.lispethefileiscurrentlynotintheincludepathofthepackagea
#, object-pascal-format
@@ -16713,16 +16697,14 @@
msgstr "Meno balíčka %s%s%s %ssúboru %s%s%s je neplatné."
#: lazarusidestrconsts.lispkgmangthepackagewasmarkedcurrentlylazarus
-#, object-pascal-format, fuzzy, badformat
-#| msgid "The package %s%s%s was marked.%sCurrently Lazarus only supports static linked packages. The real un-installation needs rebuilding and restarting of Lazarus.%s%sDo you want to rebuild Lazarus now?"
+#, object-pascal-format
msgid "The package \"%s\" was marked.%sCurrently Lazarus only supports static linked packages. The real un-installation needs rebuilding and restarting of Lazarus.%sDo you want to rebuild Lazarus now?"
-msgstr "Balíček %s%s%s bol označený na odinštaláciu.%sMomentálne Lazarus podporuje builen staticky pripojené balíčky, preto odinštalácia vyžaduje prebudovanie a reštart Lazarus.%s%sChcete teraz prebudovať Lazarus?"
+msgstr "Balíček \"%s\" bol označený.%sMomentálne Lazarus podporuje len staticky pripojené balíčky, preto odinštalácia vyžaduje prebudovanie a reštart Lazarusu.%sChcete teraz prebudovať Lazarus?"
#: lazarusidestrconsts.lispkgmangthepackagewasmarkedforinstallationcurrentlylazarus
-#, object-pascal-format, fuzzy, badformat
-#| msgid "The package %s%s%s was marked for installation.%sCurrently Lazarus only supports static linked packages. The real installation needs rebuilding and restarting of Lazarus.%s%sDo you want to rebuild Lazarus now?"
+#, object-pascal-format
msgid "The package \"%s\" was marked for installation.%sCurrently Lazarus only supports static linked packages. The real installation needs rebuilding and restarting of Lazarus.%sDo you want to rebuild Lazarus now?"
-msgstr "Balíček %s%s%s bol označený na inštaláciu.%sMomentálne Lazarus podporuje len staticky pripojené balíčky, preto inštalácia vyžaduje prebudovanie a reštart Lazarus.%s%sChcete teraz prebudovať Lazarus?"
+msgstr "Balíček \"%s\" bol označený na inštaláciu.%sMomentálne Lazarus podporuje len staticky pripojené balíčky, preto inštalácia vyžaduje prebudovanie a reštart Lazarus.%sChcete teraz prebudovať Lazarus?"
#: lazarusidestrconsts.lispkgmangtheprojectrequiresthepackagebutitwasnotfound
#, object-pascal-format, fuzzy, badformat
@@ -18777,7 +18759,7 @@
#: lazarusidestrconsts.lisstorepathdelimitersandas
msgid "Store path delimiters \\ and / as"
-msgstr ""
+msgstr "Ukladať oddeľovače cesty \\ a / ako"
#: lazarusidestrconsts.lisstrangelpifile
msgid "Strange lpi file"
@@ -19340,10 +19322,9 @@
msgstr ""
#: lazarusidestrconsts.listheprogrammakewasnotfoundthistoolisneededtobuildla
-#, object-pascal-format, fuzzy, badformat
-#| msgid "The program %smake%s was not found.%sThis tool is needed to build Lazarus.%s"
+#, object-pascal-format
msgid "The program \"make\" was not found.%sThis tool is needed to build Lazarus."
-msgstr "Program %smake%s nebol nájdený.%sTento nástroj je potrebný na prebudovanie Lazarus.%s"
+msgstr "Program \"make\" nebol nájdený.%sTento nástroj je potrebný na prebudovanie Lazarusu."
#: lazarusidestrconsts.listheprojectcompileroptionsandthedirectivesinthemain
msgid "The project compiler options and the directives in the main source differ. For the new unit the mode and string type of the project options are used:"
@@ -20139,10 +20120,9 @@
msgstr "Nemožno vyčistiť cieľový adresár"
#: lazarusidestrconsts.lisunabletocleanuppleasecheckpermissions
-#, object-pascal-format, fuzzy, badformat
-#| msgid "Unable to clean up %s%s%s.%sPlease check permissions."
+#, object-pascal-format
msgid "Unable to clean up \"%s\".%sPlease check permissions."
-msgstr "Nemožno vyčistiť %s%s%s.%sProsím skontrolujte prístupové práva."
+msgstr "Nemožno vyčistiť \"%s\".%sProsím skontrolujte prístupové práva."
#: lazarusidestrconsts.lisunabletoconvertcomponenttextintobinaryformat
#, object-pascal-format
@@ -21284,7 +21264,7 @@
#: lazarusidestrconsts.rscloseall
msgid "Close all pages"
-msgstr ""
+msgstr "Zatvoriť všetky stránky"
#: lazarusidestrconsts.rsclosecurrentpage
msgid "Close current page"
@@ -21328,11 +21308,11 @@
#: lazarusidestrconsts.rsi18nexcluded
msgid "Excluded"
-msgstr ""
+msgstr "Vylúčené"
#: lazarusidestrconsts.rsi18nforceupdatepofilesonnextbuild
msgid "Force update PO files on next build"
-msgstr ""
+msgstr "Vynútiť aktualizáciu súborov PO pri ďalšom vybudovaní"
#: lazarusidestrconsts.rsi18nidentifiers
msgid "Identifiers:"
@@ -21525,7 +21505,7 @@
#: lazarusidestrconsts.srkmcarhelpmenu
msgid "Help menu commands"
-msgstr "Príkazu menu Help"
+msgstr "Príkazy menu Help"
#: lazarusidestrconsts.srkmcatcmdcmd
msgid "Command commands"
diff -Nru lazarus-2.2.4+dfsg1/lazarus.app/Contents/Info.plist lazarus-2.2.6+dfsg1/lazarus.app/Contents/Info.plist
--- lazarus-2.2.4+dfsg1/lazarus.app/Contents/Info.plist 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/lazarus.app/Contents/Info.plist 2023-03-04 14:24:25.000000000 +0100
@@ -148,7 +148,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>2.2.4</string>
+ <string>2.2.6</string>
<key>CFBundleSignature</key>
<string>laza</string>
<key>CFBundleVersion</key>
diff -Nru lazarus-2.2.4+dfsg1/lcl/dialogs.pp lazarus-2.2.6+dfsg1/lcl/dialogs.pp
--- lazarus-2.2.4+dfsg1/lcl/dialogs.pp 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/lcl/dialogs.pp 2023-03-04 14:24:25.000000000 +0100
@@ -307,6 +307,8 @@
procedure SetButtonColorSize(const AValue: Integer);
protected
class procedure WSRegisterClass; override;
+ procedure DoAutoAdjustLayout(const AMode: TLayoutAdjustmentPolicy;
+ const AXProportion, AYProportion: Double); override;
function DrawGlyph(ACanvas: TCanvas; const AClient: TRect; const AOffset: TPoint;
AState: TButtonState; ATransparent: Boolean; BiDiFlags: Longint): TRect; override;
function GetDisabledPattern: TBitmap; virtual;
diff -Nru lazarus-2.2.4+dfsg1/lcl/grids.pas lazarus-2.2.6+dfsg1/lcl/grids.pas
--- lazarus-2.2.4+dfsg1/lcl/grids.pas 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/lcl/grids.pas 2023-03-04 14:24:25.000000000 +0100
@@ -6532,7 +6532,10 @@
aColRow: Integer;
begin
if FromIndex=ToIndex then
+ begin
+ VisualChange;
exit;
+ end;
CheckIndex(IsColumn, FromIndex);
CheckIndex(IsColumn, ToIndex);
diff -Nru lazarus-2.2.4+dfsg1/lcl/include/colorbutton.inc lazarus-2.2.6+dfsg1/lcl/include/colorbutton.inc
--- lazarus-2.2.4+dfsg1/lcl/include/colorbutton.inc 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/lcl/include/colorbutton.inc 2023-03-04 14:24:25.000000000 +0100
@@ -117,6 +117,17 @@
//debugln(['TColorButton.GetGlyphSize ',DbgSName(Self),' Drawing=',Drawing,' PaintRect=',dbgs(PaintRect),' Result=',dbgs(Result),' BoundsRect=',dbgs(BoundsRect),' Spacing=',Spacing,' Margin=',Margin]);
end;
+procedure TColorButton.DoAutoAdjustLayout(const AMode: TLayoutAdjustmentPolicy;
+ const AXProportion, AYProportion: Double);
+begin
+ inherited;
+ if AMode in [lapAutoAdjustWithoutHorizontalScrolling, lapAutoAdjustForDPI] then
+ begin
+ FButtonColorSize := round(FButtonColorSize * AXProportion);
+ FBorderWidth := round(FBorderWidth * AXProportion);
+ end;
+end;
+
function TColorButton.DrawGlyph(ACanvas: TCanvas; const AClient: TRect;
const AOffset: TPoint; AState: TButtonState; ATransparent: Boolean;
BiDiFlags: Longint): TRect;
diff -Nru lazarus-2.2.4+dfsg1/lcl/include/customflowpanel.inc lazarus-2.2.6+dfsg1/lcl/include/customflowpanel.inc
--- lazarus-2.2.4+dfsg1/lcl/include/customflowpanel.inc 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/lcl/include/customflowpanel.inc 2023-03-04 14:24:25.000000000 +0100
@@ -398,6 +398,8 @@
for I := 0 to ControlCount-1 do
begin
xControl := FControlList.Items[I].Control;
+ if not xControl.Visible then
+ Continue;
if FFlowStyle in [fsLeftRightTopBottom, fsRightLeftTopBottom, fsLeftRightBottomTop, fsRightLeftBottomTop] then
begin
PreferredHeight := Max(PreferredHeight,
diff -Nru lazarus-2.2.4+dfsg1/lcl/include/customform.inc lazarus-2.2.6+dfsg1/lcl/include/customform.inc
--- lazarus-2.2.4+dfsg1/lcl/include/customform.inc 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/lcl/include/customform.inc 2023-03-04 14:24:25.000000000 +0100
@@ -706,7 +706,7 @@
end;
{ call onShow() or onActivate() for the first time,
after first OnResize() and OnChangeBounds() }
- if FDelayedOnResize and FDelayedOnChangeBounds then
+ if (FDelayedOnResize or FDelayedOnChangeBounds) and Visible then
begin
if FIsFirstOnShow then
begin
diff -Nru lazarus-2.2.4+dfsg1/lcl/include/speedbutton.inc lazarus-2.2.6+dfsg1/lcl/include/speedbutton.inc
--- lazarus-2.2.4+dfsg1/lcl/include/speedbutton.inc 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/lcl/include/speedbutton.inc 2023-03-04 14:24:25.000000000 +0100
@@ -1119,7 +1119,6 @@
if FShowCaption and (Caption <> '') then
begin
TMP := Caption;
- DeleteAmpersands(TMP);
Flags := DT_CalcRect;
if not Canvas.TextStyle.SingleLine then
Inc(Flags, DT_WordBreak);
diff -Nru lazarus-2.2.4+dfsg1/lcl/include/wincontrol.inc lazarus-2.2.6+dfsg1/lcl/include/wincontrol.inc
--- lazarus-2.2.4+dfsg1/lcl/include/wincontrol.inc 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/lcl/include/wincontrol.inc 2023-03-04 14:24:25.000000000 +0100
@@ -4050,7 +4050,7 @@
or (Height<>InterfaceHeight) then
begin
// the LCL is not in sync with the interface
- if wcfBoundsRealized in FWinControlFlags then
+ if not (wcfBoundsRealized in FWinControlFlags) then
begin
// no bounds were sent yet to the interface and it didn't initialize
// them on its own
@@ -4058,12 +4058,16 @@
// they will probably change
// to avoid resizes it is better use the defaults
GetDefaults(Result);
- end else begin
+ end else
+ if not (self is TCustomForm) then
+ begin
// -> adjust client rect based on LCL bounds
// for example: if the Width in LCL differ from the Width of the Interface
// object, then adjust the clientwidth accordingly
// this often anticipates later LM_SIZE messages from the interface
// and reduces resizes
+ // BUT: Do this only when not a form. Form has its own clientrect specification:
+ // https://wiki.lazarus.freepascal.org/Lazarus_FAQ#Why_are_TForm.ClientWidth.2FClientHeight_the_same_as_TForm.Width.2FHeight
inc(Result.Right,Width-InterfaceWidth);
inc(Result.Bottom,Height-InterfaceHeight);
end;
diff -Nru lazarus-2.2.4+dfsg1/lcl/interfaces/lcl.lpk lazarus-2.2.6+dfsg1/lcl/interfaces/lcl.lpk
--- lazarus-2.2.4+dfsg1/lcl/interfaces/lcl.lpk 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/lcl/interfaces/lcl.lpk 2023-03-04 14:24:25.000000000 +0100
@@ -129,7 +129,7 @@
"/>
<License Value="modified LGPL-2
"/>
- <Version Major="2" Minor="2" Release="4"/>
+ <Version Major="2" Minor="2" Release="6"/>
<Files Count="488">
<Item1>
<Filename Value="carbon/agl.pp"/>
diff -Nru lazarus-2.2.4+dfsg1/lcl/interfaces/win32/win32wscomctrls.pp lazarus-2.2.6+dfsg1/lcl/interfaces/win32/win32wscomctrls.pp
--- lazarus-2.2.4+dfsg1/lcl/interfaces/win32/win32wscomctrls.pp 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/lcl/interfaces/win32/win32wscomctrls.pp 2023-03-04 14:24:25.000000000 +0100
@@ -1009,8 +1009,16 @@
Windows.SendMessage(wHandle, TBM_CLEARSEL, Windows.WPARAM(True), 0)
else
begin
- Windows.SendMessage(wHandle, TBM_SETSELSTART, Windows.WParam(False), SelStart);
- Windows.SendMessage(wHandle, TBM_SETSELEND, Windows.WParam(True), SelEnd)
+ if (GetWindowLong(ATrackBar.Handle, GWL_STYLE) and TBS_REVERSED) <> 0 then
+ begin
+ Windows.SendMessage(wHandle, TBM_SETSELSTART, Windows.WParam(False), ATrackBar.Max-SelEnd); //SelStart/SelEnd are not relative to Min/Max
+ Windows.SendMessage(wHandle, TBM_SETSELEND, Windows.WParam(True), ATrackBar.Max-SelStart)
+ end
+ else
+ begin
+ Windows.SendMessage(wHandle, TBM_SETSELSTART, Windows.WParam(False), SelStart);
+ Windows.SendMessage(wHandle, TBM_SETSELEND, Windows.WParam(True), SelEnd)
+ end;
end;
end;
end;
diff -Nru lazarus-2.2.4+dfsg1/lcl/interfaces/win32/win32wsmenus.pp lazarus-2.2.6+dfsg1/lcl/interfaces/win32/win32wsmenus.pp
--- lazarus-2.2.4+dfsg1/lcl/interfaces/win32/win32wsmenus.pp 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/lcl/interfaces/win32/win32wsmenus.pp 2023-03-04 14:24:25.000000000 +0100
@@ -1166,13 +1166,10 @@
AImageIndex := AMenuItem.ImageIndex;
end;
- if not AMenuItem.Enabled then
- AEffect := gdeDisabled
+ if AMenuItem.Enabled then
+ AEffect := gdeNormal
else
- if ASelected then
- AEffect := gdeHighlighted
- else
- AEffect := gdeNormal;
+ AEffect := gdeDisabled;
if AImageIndex < AImageList.Count then
begin
diff -Nru lazarus-2.2.4+dfsg1/lcl/lazcanvas.pas lazarus-2.2.6+dfsg1/lcl/lazcanvas.pas
--- lazarus-2.2.4+dfsg1/lcl/lazcanvas.pas 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/lcl/lazcanvas.pas 2023-03-04 14:24:25.000000000 +0100
@@ -406,7 +406,7 @@
if (nodeX[i ] < lBoundingBox.Left) then nodeX[i] := lBoundingBox.Left;
if (nodeX[i+1] > lBoundingBox.Right) then nodeX[i+1] := lBoundingBox.Right;
for X := nodeX[i] to nodeX[i+1]-1 do
- SetColor(X, Y, Brush.FPColor);
+ DrawPixel(X, Y, Brush.FPColor);
end;
i := i + 2;
diff -Nru lazarus-2.2.4+dfsg1/lcl/lclbase.lpk lazarus-2.2.6+dfsg1/lcl/lclbase.lpk
--- lazarus-2.2.4+dfsg1/lcl/lclbase.lpk 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/lcl/lclbase.lpk 2023-03-04 14:24:25.000000000 +0100
@@ -26,7 +26,7 @@
"/>
<License Value="modified LGPL-2
"/>
- <Version Major="2" Minor="2" Release="4"/>
+ <Version Major="2" Minor="2" Release="6"/>
<Files Count="287">
<Item1>
<Filename Value="checklst.pas"/>
diff -Nru lazarus-2.2.4+dfsg1/packager/globallinks/lcl-2.2.4.lpl lazarus-2.2.6+dfsg1/packager/globallinks/lcl-2.2.4.lpl
--- lazarus-2.2.4+dfsg1/packager/globallinks/lcl-2.2.4.lpl 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/packager/globallinks/lcl-2.2.4.lpl 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-$(LazarusDir)/lcl/interfaces/lcl.lpk
diff -Nru lazarus-2.2.4+dfsg1/packager/globallinks/lcl-2.2.6.lpl lazarus-2.2.6+dfsg1/packager/globallinks/lcl-2.2.6.lpl
--- lazarus-2.2.4+dfsg1/packager/globallinks/lcl-2.2.6.lpl 1970-01-01 01:00:00.000000000 +0100
+++ lazarus-2.2.6+dfsg1/packager/globallinks/lcl-2.2.6.lpl 2023-03-04 14:24:25.000000000 +0100
@@ -0,0 +1 @@
+$(LazarusDir)/lcl/interfaces/lcl.lpk
diff -Nru lazarus-2.2.4+dfsg1/packager/globallinks/lclbase-2.2.4.lpl lazarus-2.2.6+dfsg1/packager/globallinks/lclbase-2.2.4.lpl
--- lazarus-2.2.4+dfsg1/packager/globallinks/lclbase-2.2.4.lpl 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/packager/globallinks/lclbase-2.2.4.lpl 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-$(LazarusDir)/lcl/lclbase.lpk
diff -Nru lazarus-2.2.4+dfsg1/packager/globallinks/lclbase-2.2.6.lpl lazarus-2.2.6+dfsg1/packager/globallinks/lclbase-2.2.6.lpl
--- lazarus-2.2.4+dfsg1/packager/globallinks/lclbase-2.2.6.lpl 1970-01-01 01:00:00.000000000 +0100
+++ lazarus-2.2.6+dfsg1/packager/globallinks/lclbase-2.2.6.lpl 2023-03-04 14:24:25.000000000 +0100
@@ -0,0 +1 @@
+$(LazarusDir)/lcl/lclbase.lpk
diff -Nru lazarus-2.2.4+dfsg1/tools/install/linux/environmentoptions.xml lazarus-2.2.6+dfsg1/tools/install/linux/environmentoptions.xml
--- lazarus-2.2.4+dfsg1/tools/install/linux/environmentoptions.xml 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/tools/install/linux/environmentoptions.xml 2023-03-04 14:24:26.000000000 +0100
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<CONFIG>
<EnvironmentOptions>
- <Version Value="110" Lazarus="2.2.4"/>
+ <Version Value="110" Lazarus="2.2.6"/>
<LazarusDirectory Value="__LAZARUSDIR__">
<History Count="1">
<Item1 Value="/usr/lib/lazarus/"/>
diff -Nru lazarus-2.2.4+dfsg1/tools/install/macosx/environmentoptions.xml lazarus-2.2.6+dfsg1/tools/install/macosx/environmentoptions.xml
--- lazarus-2.2.4+dfsg1/tools/install/macosx/environmentoptions.xml 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/tools/install/macosx/environmentoptions.xml 2023-03-04 14:24:26.000000000 +0100
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<CONFIG>
<EnvironmentOptions>
- <Version Value="110" Lazarus="2.2.4"/>
+ <Version Value="110" Lazarus="2.2.6"/>
<LazarusDirectory Value="/Developer/lazarus/">
<History Count="1">
<Item1 Value="/Developer/lazarus/"/>
diff -Nru lazarus-2.2.4+dfsg1/tools/install/win/environmentoptions.xml lazarus-2.2.6+dfsg1/tools/install/win/environmentoptions.xml
--- lazarus-2.2.4+dfsg1/tools/install/win/environmentoptions.xml 2022-09-25 12:37:18.000000000 +0200
+++ lazarus-2.2.6+dfsg1/tools/install/win/environmentoptions.xml 2023-03-04 14:24:26.000000000 +0100
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<CONFIG>
<EnvironmentOptions>
- <Version Value="110" Lazarus="2.2.4"/>
+ <Version Value="110" Lazarus="2.2.6"/>
<LazarusDirectory Value="%LazDir%">
</LazarusDirectory>
<CompilerFilename Value="%FpcBinDir%\fpc.exe">
Attachment:
signature.asc
Description: This is a digitally signed message part