Skip to content

Instantly share code, notes, and snippets.

@SmiSoft
SmiSoft / PropOwner.php
Last active July 29, 2018 20:52
Automatic read-only and read-write properties support in PHP
<?php
/**
* Automatic read-only and read-write properties support in PHP
*
* Summary:
* protected $r_readonlyProp=12; - an read-only property, read with print($class->readonlyProp);
* write $class->readonlyProp=1; will trigger warning
* protected $rw_readwriteProp=44; - an read-write property, read with print($class->readwriteProp);
* write $class->readwriteProp=1; without restrictions
* protected $rw_getsetProp=7; - a property, that will be read using getter and write using setter.
@SmiSoft
SmiSoft / FileWatch.pas
Created January 9, 2019 18:25
Компонент для отслеживания изменений в файловой системе
unit FileWatch;
interface
Uses
Windows, SysUtils, Classes;
Const
MAX_FAILS=12;
FAIL_TIMEOUT=12;
@SmiSoft
SmiSoft / DirectoryWatch.pas
Created January 9, 2019 18:28
Компонент для отслеживания изменений в файловой системе
{
Модуль слежения за изменениями в файловой системе.
Пример применения:
Создание:
var
Waiter:TDirectoryWatch;
...
Waiter:=TDirectoryWatch.Create;
// подключение объектных, или простых обработчиков
Waiter.OnObjectAdd:=GetAdd;
@SmiSoft
SmiSoft / OdtFilter.pas
Created April 27, 2021 20:05
ODT/ODS import/export for Lazarus (no LibreOffice installed required)
unit OdtFilter;
interface
uses
Classes, SysUtils, laz2_DOM, ZipUtils, Zip, Unzip, laz2_XMLRead, myXMLWrite;
Type
// класс для преобразования одного документа ODF (OpenDocument format)
// в другой (например, для модификации содержимого),
@SmiSoft
SmiSoft / OdtImport.pas
Created April 27, 2021 20:16
ODT/ODS import/export for Lazarus (no LibreOffice installed required)
unit OdtImport;
interface
uses
Classes, OdtFilter, OdtExport, laz2_Dom;
Type
{ TOdtImport }
@SmiSoft
SmiSoft / OdsExport.pas
Created April 27, 2021 20:18
ODT/ODS import/export for Lazarus (no LibreOffice installed required)
unit OdsExport;
interface
uses
Windows, Classes, SysUtils, OdtFilter, Hash, laz2_Dom;
Type
{ TOdsExport }
@SmiSoft
SmiSoft / OdsImport.pas
Created April 27, 2021 20:18
ODT/ODS import/export for Lazarus (no LibreOffice installed required)
unit OdsImport;
interface
uses
Windows, Classes, SysUtils, OdtFilter, Hash, laz2_Dom;
Type
{ TOdsImport }
@SmiSoft
SmiSoft / OdtExport.pas
Created April 27, 2021 20:15
ODT/ODS import/export for Lazarus (no LibreOffice installed required)
{ Последовательность проверок:
var
Matrix:TDynamicMatrix;
I,J:integer;
begin
SetLength(Matrix,2,4);
For I:=0 to 1 do
For J:=0 to 3 do
Matrix[I,J]:=inttostr(Random(100));
TOdtExport.Export('PageIn.odt','PageOut.odt',Utf8Decode('Таблица1'),Matrix);