mirror of
https://github.com/nxshock/calculator.git
synced 2024-11-27 10:01:00 +05:00
Upload project
This commit is contained in:
parent
373d7a9821
commit
c95cd46279
2
.gitignore
vendored
2
.gitignore
vendored
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
# Resource files are binaries containing manifest, project icon and version info.
|
# Resource files are binaries containing manifest, project icon and version info.
|
||||||
# They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files.
|
# They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files.
|
||||||
#*.res
|
*.res
|
||||||
#
|
#
|
||||||
# Type library file (binary). In old Delphi versions it should be stored.
|
# Type library file (binary). In old Delphi versions it should be stored.
|
||||||
# Since Delphi 2009 it is produced from .ridl file and can safely be ignored.
|
# Since Delphi 2009 it is produced from .ridl file and can safely be ignored.
|
||||||
|
27
README.md
27
README.md
@ -1,2 +1,27 @@
|
|||||||
# calculator
|
# calculator
|
||||||
Simple and fast calculator
|
|
||||||
|
Простой и быстрый калькулятор для выполнения простых вычислений.
|
||||||
|
|
||||||
|
## Возможности
|
||||||
|
|
||||||
|
- Поддержка простых вычислений (`+`, `-`, `*`, `/`, `(`, `)`);
|
||||||
|
- Автоматическое удаление из формулы лишних символов (пробелы, буквы) - просто
|
||||||
|
копируйте и вставляйте формулы из любого места без необходимости их обработки;
|
||||||
|
- Горячая клавиша для отображения и скрытия окна программы (`Ctrl+1`);
|
||||||
|
- Никакого Electron'а. Быстрая работа и малое поребление памяти.
|
||||||
|
|
||||||
|
## Сборка
|
||||||
|
|
||||||
|
Запустите `src/make.bat`. Проект осуществляет сборку исполняемого файла в
|
||||||
|
`bin/calculator`.
|
||||||
|
|
||||||
|
## ToDo
|
||||||
|
|
||||||
|
- [ ] Подобрать имя проекта получше
|
||||||
|
- [ ] Добавить поддержку Linux
|
||||||
|
- [ ] Добавить настройки горячей клавиши вызова
|
||||||
|
- [ ] Добавить английский язык
|
||||||
|
|
||||||
|
## Использованные сторонние библиотеки
|
||||||
|
|
||||||
|
- [3926 Free "Farm-Fresh Web Icons"](https://www.fatcow.com/free-icons)
|
||||||
|
BIN
src/calculator.ico
Normal file
BIN
src/calculator.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.3 KiB |
109
src/calculator.lpi
Normal file
109
src/calculator.lpi
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectOptions>
|
||||||
|
<Version Value="10"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<General>
|
||||||
|
<Flags>
|
||||||
|
<SaveClosedFiles Value="False"/>
|
||||||
|
<LRSInOutputDirectory Value="False"/>
|
||||||
|
<SaveJumpHistory Value="False"/>
|
||||||
|
<SaveFoldState Value="False"/>
|
||||||
|
</Flags>
|
||||||
|
<SessionStorage Value="None"/>
|
||||||
|
<MainUnit Value="0"/>
|
||||||
|
<Title Value="Калькулятор"/>
|
||||||
|
<ResourceType Value="res"/>
|
||||||
|
<UseXPManifest Value="True"/>
|
||||||
|
<XPManifest>
|
||||||
|
<DpiAware Value="True"/>
|
||||||
|
</XPManifest>
|
||||||
|
<Icon Value="0"/>
|
||||||
|
</General>
|
||||||
|
<i18n>
|
||||||
|
<EnableI18N LFM="False"/>
|
||||||
|
</i18n>
|
||||||
|
<BuildModes Count="1">
|
||||||
|
<Item1 Name="Default" Default="True"/>
|
||||||
|
</BuildModes>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
</PublishOptions>
|
||||||
|
<RunParams>
|
||||||
|
<local>
|
||||||
|
<FormatVersion Value="1"/>
|
||||||
|
</local>
|
||||||
|
</RunParams>
|
||||||
|
<RequiredPackages Count="1">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="LCL"/>
|
||||||
|
</Item1>
|
||||||
|
</RequiredPackages>
|
||||||
|
<Units Count="4">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="calculator.lpr"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="Calculator"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="mainformunit.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="MainForm"/>
|
||||||
|
<HasResources Value="True"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="MainFormUnit"/>
|
||||||
|
</Unit1>
|
||||||
|
<Unit2>
|
||||||
|
<Filename Value="support.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="Support"/>
|
||||||
|
</Unit2>
|
||||||
|
<Unit3>
|
||||||
|
<Filename Value="hotkeysunit.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
</Unit3>
|
||||||
|
</Units>
|
||||||
|
</ProjectOptions>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Target>
|
||||||
|
<Filename Value="..\bin\calculator"/>
|
||||||
|
</Target>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
|
<UnitOutputDirectory Value="..\lib\$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<CodeGeneration>
|
||||||
|
<SmartLinkUnit Value="True"/>
|
||||||
|
<Optimizations>
|
||||||
|
<OptimizationLevel Value="3"/>
|
||||||
|
</Optimizations>
|
||||||
|
</CodeGeneration>
|
||||||
|
<Linking>
|
||||||
|
<Debugging>
|
||||||
|
<GenerateDebugInfo Value="False"/>
|
||||||
|
<StripSymbols Value="True"/>
|
||||||
|
</Debugging>
|
||||||
|
<LinkSmart Value="True"/>
|
||||||
|
<Options>
|
||||||
|
<Win32>
|
||||||
|
<GraphicApplication Value="True"/>
|
||||||
|
</Win32>
|
||||||
|
</Options>
|
||||||
|
</Linking>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Debugging>
|
||||||
|
<Exceptions Count="3">
|
||||||
|
<Item1>
|
||||||
|
<Name Value="EAbort"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Name Value="ECodetoolError"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<Name Value="EFOpenError"/>
|
||||||
|
</Item3>
|
||||||
|
</Exceptions>
|
||||||
|
</Debugging>
|
||||||
|
</CONFIG>
|
17
src/calculator.lpr
Normal file
17
src/calculator.lpr
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
program Calculator;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
uses
|
||||||
|
Interfaces, Forms, MainFormUnit, Support, hotkeysunit;
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
Application.Title:='Калькулятор';
|
||||||
|
RequireDerivedFormResource := True;
|
||||||
|
Application.Initialize;
|
||||||
|
Application.CreateForm(TMainForm, MainForm);
|
||||||
|
Application.Run;
|
||||||
|
end.
|
||||||
|
|
21
src/hotkeysunit.pas
Normal file
21
src/hotkeysunit.pas
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
unit HotkeysUnit;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, Windows;
|
||||||
|
|
||||||
|
procedure AssociateHotkeys(h: THANDLE);
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
procedure AssociateHotkeys(h: THANDLE);
|
||||||
|
begin
|
||||||
|
// Hotkey Ctrl+1
|
||||||
|
RegisterHotKey(h, GlobalAddAtom('Min/Restore hotkey'), MOD_CONTROL, VK_1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
282
src/mainformunit.lfm
Normal file
282
src/mainformunit.lfm
Normal file
@ -0,0 +1,282 @@
|
|||||||
|
object MainForm: TMainForm
|
||||||
|
Left = 312
|
||||||
|
Height = 58
|
||||||
|
Top = 109
|
||||||
|
Width = 320
|
||||||
|
BorderIcons = [biSystemMenu]
|
||||||
|
Caption = 'Калькулятор'
|
||||||
|
ClientHeight = 58
|
||||||
|
ClientWidth = 320
|
||||||
|
Constraints.MaxHeight = 58
|
||||||
|
Constraints.MinHeight = 58
|
||||||
|
FormStyle = fsSystemStayOnTop
|
||||||
|
OnClose = FormClose
|
||||||
|
OnCreate = FormCreate
|
||||||
|
OnShow = FormShow
|
||||||
|
LCLVersion = '1.6.0.4'
|
||||||
|
object QueryEdit: TEditButton
|
||||||
|
Left = 4
|
||||||
|
Height = 23
|
||||||
|
Top = 4
|
||||||
|
Width = 312
|
||||||
|
Align = alTop
|
||||||
|
BorderSpacing.Around = 4
|
||||||
|
ButtonHint = 'Очистить'
|
||||||
|
ButtonWidth = 23
|
||||||
|
Flat = True
|
||||||
|
Glyph.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000230000
|
||||||
|
0033000000330000003300000033000000330000003300000033000000330000
|
||||||
|
0033000000330000003300000033000000330000003300000023A9988AC0B5A2
|
||||||
|
92FFB3A090FFB39F8FFFB39F8FFFB39F8FFFB39F8FFFB3A08FFFB4A190FFB7A4
|
||||||
|
93FFBBA797FFBCA998FFBBA797FFB8A494FFB6A393FFA9988AC0B5A292FFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4E3
|
||||||
|
E5FF8F9092FF8A8B8CFF8F9092FFECEEEEFFFFFFFFFFB6A393FFB4A090FFFFFD
|
||||||
|
FCFFFBF8F5FFFAF7F4FFFAF7F4FFFAF7F4FFFAF7F4FFFBF8F5FFFFFEFBFF8786
|
||||||
|
84FFFFFFFFFF838282FFFFFFFFFF888786FFFFFFFFFFB5A291FFB4A191FFF8F3
|
||||||
|
EFFFF6F1ECFFF5EFEAFFF5EFEAFFF5EFEAFFF5EFEAFFF7F1ECFFFEF8F3FF7E7B
|
||||||
|
78FF817E7AFFE9E4E0FF817E7AFF7F7D79FFFFFCF8FFB6A292FFB5A292FFF1EA
|
||||||
|
E5FFF3EBE3FFF1E9E1FFF1E9E1FFF1E9E1FFF1E9E1FFF3EBE2FFF9F1E8FF827D
|
||||||
|
79FFFFFFF6FF7F7A77FFFFFFF6FF837F7AFFF9F1ECFFB6A393FFB6A393FFE8E3
|
||||||
|
DBFFF0E6DCFFEFE5DAFFEFE5DAFFEFE5DAFFEFE5DAFFEFE5DBFFF3E9DEFFD0C7
|
||||||
|
BFFF817B76FF7B7771FF817B76FFD1C8C0FFECE7E0FFB6A393FFB7A495FFE1DB
|
||||||
|
D4FFDED8D1FFDED7D0FFDED7D0FFDED7D0FFDED7D0FFDED7D0FFDFD8D1FFE2DB
|
||||||
|
D4FFE5DED7FFE7DFD8FFE5DED7FFE2DCD4FFE2DCD5FFB7A595FFB9A797EFB7A5
|
||||||
|
95FFB6A394FFB6A393FFB6A393FFB6A393FFB6A393FFB6A393FFB6A394FFB7A4
|
||||||
|
94FFB7A494FFB8A595FFB7A494FFB7A494FFB7A595FFB9A797B0FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
|
}
|
||||||
|
MaxLength = 0
|
||||||
|
NumGlyphs = 1
|
||||||
|
OnButtonClick = QueryEditButtonClick
|
||||||
|
OnChange = QueryEditChange
|
||||||
|
OnKeyPress = QueryEditKeyPress
|
||||||
|
PasswordChar = #0
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
object ResultEdit: TEdit
|
||||||
|
Left = 4
|
||||||
|
Height = 23
|
||||||
|
Top = 31
|
||||||
|
Width = 312
|
||||||
|
Align = alTop
|
||||||
|
BorderSpacing.Around = 4
|
||||||
|
TabOrder = 1
|
||||||
|
Text = '0,00'
|
||||||
|
end
|
||||||
|
object TrayIcon: TTrayIcon
|
||||||
|
PopUpMenu = TrayPopupMenu
|
||||||
|
Icon.Data = {
|
||||||
|
7E04000000000100010010100000010020006804000016000000280000001000
|
||||||
|
0000200000000100200000000000000400006400000064000000000000000000
|
||||||
|
0000FFFFFF000000002300000033000000330000003300000033000000330000
|
||||||
|
00330000003300000033000000330000003300000033000000330000002CFFFF
|
||||||
|
FF00FFFFFF00969696C09F9F9FFF9E9E9EFF9E9E9EFF9E9F9FFF9E9E9EFF9E9E
|
||||||
|
9EFF9E9F9FFF9E9E9EFF9D9E9FFF9D9E9FFF9D9E9EFF9F9F9FFF9E9E9EE1FFFF
|
||||||
|
FF00FFFFFF009F9F9FFFFFFEFEFFFBFAFAFFFEFDFDFFFEFDFDFFFDFCFCFFFEFD
|
||||||
|
FDFFFEFDFEFFFBFCFDFFF9FCFFFFF9FCFFFFF9FAFCFFFFFEFEFF9F9F9FFFFFFF
|
||||||
|
FF00FFFFFF009E9E9EFFF7F6F6FFF2F1F0FF8D8A88FF6D6B68FFF7F6F5FF8D8B
|
||||||
|
89FF6C6B69FFF2F6F9FFE49F55FFE49F55FFEEF2F5FFF7F6F7FF9E9E9EFFFFFF
|
||||||
|
FF00FFFFFF009D9E9EFFF4F3F2FFEDECEBFFF2F1F0FFF3F3F2FFF0F0EFFFF3F2
|
||||||
|
F1FFF3F3F3FFEDF1F6FFEEAD66FFE4A25BFFE9EDF2FFF4F4F3FF9D9E9EFFFFFF
|
||||||
|
FF00FFFFFF009E9E9EFFF3F2F0FFE9E8E7FF8E8C8AFF6E6C6AFFEDECEBFF8F8D
|
||||||
|
8AFF6E6C6BFFE9ECF0FFF0AC62FFF0AC62FFE5E8ECFFF2F2F1FF9E9E9EFFFFFF
|
||||||
|
FF00FFFFFF009E9E9EFFF0EEEEFFE4E2E2FFE9E7E7FFEAE8E9FFE8E6E6FFE9E7
|
||||||
|
E8FFEAE8E9FFE6E5E7FFE5E6EBFFE4E6EBFFE2E2E4FFF0EEEEFF9E9E9EFFFFFF
|
||||||
|
FF00FFFFFF009E9F9FFFEEEDEDFFE0DEDDFF918E8AFF716F6BFFE5E2E2FF918F
|
||||||
|
8CFF706E6CFFE4E2E2FF918F8CFF706E6AFFE1DFDEFFEEEDEEFF9E9F9FFFFFFF
|
||||||
|
FF00FFFFFF009F9F9FFFEEECECFFDDD9D5FFE4DED6FFE5DFD7FFE0DDD9FFE0DE
|
||||||
|
DDFFE1DFDEFFE1DDD9FFE5DFD7FFE5DFD6FFDDD9D5FFEEEDECFF9F9F9FFFFFFF
|
||||||
|
FF00FFFFFF009F9F9FFFEDECEAFFDAD5CEFF1F7FFFFF2266FFFFDDD8D1FF928F
|
||||||
|
8CFF716F6CFFDED8D2FF2080FFFF2265FFFFDAD5CEFFEEECEAFF9F9F9FFFFFFF
|
||||||
|
FF00FFFFFF00A0A1A1FFF1F0F0FFF1EFEDFFF6F1ECFFF6F2ECFFF2F1EFFFF1F1
|
||||||
|
F2FFF2F2F3FFF2F1EFFFF6F2ECFFF6F2ECFFF1F0EDFFF1F0F0FFA0A1A1FFFFFF
|
||||||
|
FF00FFFFFF00A2A3A5FF7C7E7FFF7B7D80FF7C7E80FF7C7E81FF7B7E81FF7B7E
|
||||||
|
82FF7B7E82FF7B7E81FF7C7E81FF7C7E80FF7B7D80FF7C7E7FFFA2A3A5FFFFFF
|
||||||
|
FF00FFFFFF00A0A3A7FFFFCA8BFFF9C27EFFF9C27FFFF9C280FFF9C280FFF9C2
|
||||||
|
80FFF9C280FFF9C280FFF9C280FFF9C27FFFF9C27EFFFFCA8BFFA0A3A7FFFFFF
|
||||||
|
FF00FFFFFF009EA2A6FFF9D0A4FFE8A760FFE7A762FFE7A863FFE7A863FFE7A8
|
||||||
|
63FFE7A863FFE7A863FFE7A863FFE7A762FFE8A760FFF9D0A4FF9EA2A6FFFFFF
|
||||||
|
FF00FFFFFF009FA2A5FFFDDBB6FFF8DAB8FFF8DAB9FFF8DAB9FFF8DAB9FFF8DA
|
||||||
|
B9FFF8DAB9FFF8DAB9FFF8DAB9FFF8DAB9FFF8DAB8FFFDDBB6FF9FA2A5FFFFFF
|
||||||
|
FF00FFFFFF00A3A4A5EF9FA2A5FF9EA1A5FF9DA1A5FF9DA1A5FF9DA1A5FF9DA1
|
||||||
|
A5FF9DA1A5FF9DA1A5FF9DA1A5FF9DA1A5FF9EA1A5FF9FA2A5FFA3A4A5EFFFFF
|
||||||
|
FF00000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000
|
||||||
|
}
|
||||||
|
Visible = True
|
||||||
|
OnClick = TrayIconClick
|
||||||
|
end
|
||||||
|
object TrayPopupMenu: TPopupMenu
|
||||||
|
Images = ImageList16px
|
||||||
|
left = 32
|
||||||
|
object ShowHideMenuItem: TMenuItem
|
||||||
|
Caption = 'Показать/Скрыть'
|
||||||
|
Bitmap.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000FFFFFF000000
|
||||||
|
0023000000330000003300000033000000330000003300000033000000330000
|
||||||
|
0033000000330000003300000033000000330000002CFFFFFF00FFFFFF009696
|
||||||
|
96C09F9F9FFF9E9E9EFF9E9E9EFF9E9F9FFF9E9E9EFF9E9E9EFF9E9F9FFF9E9E
|
||||||
|
9EFF9D9E9FFF9D9E9FFF9D9E9EFF9F9F9FFF9E9E9EE1FFFFFF00FFFFFF009F9F
|
||||||
|
9FFFFFFEFEFFFBFAFAFFFEFDFDFFFEFDFDFFFDFCFCFFFEFDFDFFFEFDFEFFFBFC
|
||||||
|
FDFFF9FCFFFFF9FCFFFFF9FAFCFFFFFEFEFF9F9F9FFFFFFFFF00FFFFFF009E9E
|
||||||
|
9EFFF7F6F6FFF2F1F0FF8D8A88FF6D6B68FFF7F6F5FF8D8B89FF6C6B69FFF2F6
|
||||||
|
F9FFE49F55FFE49F55FFEEF2F5FFF7F6F7FF9E9E9EFFFFFFFF00FFFFFF009D9E
|
||||||
|
9EFFF4F3F2FFEDECEBFFF2F1F0FFF3F3F2FFF0F0EFFFF3F2F1FFF3F3F3FFEDF1
|
||||||
|
F6FFEEAD66FFE4A25BFFE9EDF2FFF4F4F3FF9D9E9EFFFFFFFF00FFFFFF009E9E
|
||||||
|
9EFFF3F2F0FFE9E8E7FF8E8C8AFF6E6C6AFFEDECEBFF8F8D8AFF6E6C6BFFE9EC
|
||||||
|
F0FFF0AC62FFF0AC62FFE5E8ECFFF2F2F1FF9E9E9EFFFFFFFF00FFFFFF009E9E
|
||||||
|
9EFFF0EEEEFFE4E2E2FFE9E7E7FFEAE8E9FFE8E6E6FFE9E7E8FFEAE8E9FFE6E5
|
||||||
|
E7FFE5E6EBFFE4E6EBFFE2E2E4FFF0EEEEFF9E9E9EFFFFFFFF00FFFFFF009E9F
|
||||||
|
9FFFEEEDEDFFE0DEDDFF918E8AFF716F6BFFE5E2E2FF918F8CFF706E6CFFE4E2
|
||||||
|
E2FF918F8CFF706E6AFFE1DFDEFFEEEDEEFF9E9F9FFFFFFFFF00FFFFFF009F9F
|
||||||
|
9FFFEEECECFFDDD9D5FFE4DED6FFE5DFD7FFE0DDD9FFE0DEDDFFE1DFDEFFE1DD
|
||||||
|
D9FFE5DFD7FFE5DFD6FFDDD9D5FFEEEDECFF9F9F9FFFFFFFFF00FFFFFF009F9F
|
||||||
|
9FFFEDECEAFFDAD5CEFF1F7FFFFF2266FFFFDDD8D1FF928F8CFF716F6CFFDED8
|
||||||
|
D2FF2080FFFF2265FFFFDAD5CEFFEEECEAFF9F9F9FFFFFFFFF00FFFFFF00A0A1
|
||||||
|
A1FFF1F0F0FFF1EFEDFFF6F1ECFFF6F2ECFFF2F1EFFFF1F1F2FFF2F2F3FFF2F1
|
||||||
|
EFFFF6F2ECFFF6F2ECFFF1F0EDFFF1F0F0FFA0A1A1FFFFFFFF00FFFFFF00A2A3
|
||||||
|
A5FF7C7E7FFF7B7D80FF7C7E80FF7C7E81FF7B7E81FF7B7E82FF7B7E82FF7B7E
|
||||||
|
81FF7C7E81FF7C7E80FF7B7D80FF7C7E7FFFA2A3A5FFFFFFFF00FFFFFF00A0A3
|
||||||
|
A7FFFFCA8BFFF9C27EFFF9C27FFFF9C280FFF9C280FFF9C280FFF9C280FFF9C2
|
||||||
|
80FFF9C280FFF9C27FFFF9C27EFFFFCA8BFFA0A3A7FFFFFFFF00FFFFFF009EA2
|
||||||
|
A6FFF9D0A4FFE8A760FFE7A762FFE7A863FFE7A863FFE7A863FFE7A863FFE7A8
|
||||||
|
63FFE7A863FFE7A762FFE8A760FFF9D0A4FF9EA2A6FFFFFFFF00FFFFFF009FA2
|
||||||
|
A5FFFDDBB6FFF8DAB8FFF8DAB9FFF8DAB9FFF8DAB9FFF8DAB9FFF8DAB9FFF8DA
|
||||||
|
B9FFF8DAB9FFF8DAB9FFF8DAB8FFFDDBB6FF9FA2A5FFFFFFFF00FFFFFF00A3A4
|
||||||
|
A5EF9FA2A5FF9EA1A5FF9DA1A5FF9DA1A5FF9DA1A5FF9DA1A5FF9DA1A5FF9DA1
|
||||||
|
A5FF9DA1A5FF9DA1A5FF9EA1A5FF9FA2A5FFA3A4A5EFFFFFFF00
|
||||||
|
}
|
||||||
|
ImageIndex = 0
|
||||||
|
ShortCut = 16433
|
||||||
|
OnClick = ShowHideMenuItemClick
|
||||||
|
end
|
||||||
|
object ExitMenuItem: TMenuItem
|
||||||
|
Caption = 'Выход'
|
||||||
|
Bitmap.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000120000003200000033000000330000
|
||||||
|
0033000000330000003300000033000000330000003300000033000000330000
|
||||||
|
0033000000330000003300000033365D7B79497BA2FC68A4D9FF5C5C5CFF5C5C
|
||||||
|
5CFF5E5B5AFF5E5A59FF5D5A5AFF5B5A5BFF5A5B5BFF5A5B5BFF5A5B5BFF5B5A
|
||||||
|
5AFF5C5956FF576876FF4E7EA4FF4C80ACFF5082ABFF65A2D5FF5E5B5C005F5A
|
||||||
|
5C00635859003F69A5FF756667FF706869FF6D6969FF6C6A69FF6C6A69FF6C6A
|
||||||
|
68FF6E6762FF4C89BAFF4E85B2FF4D83AEFF5D8CB2FF629ED1FF66565D006955
|
||||||
|
5C0010866D0013826BFF009346FF715C62FF6A6263FF676463FF666463FF6764
|
||||||
|
62FF68615BFF4F8ABBFF5086B4FF4F84B1FF6895B9FF5F9BCDFF000000300000
|
||||||
|
003300000033008C46FF4FDDB0FF008D43FF6B585EFF655E60FF636160FF6260
|
||||||
|
5FFF645D57FF518DBEFF528AB7FF5187B4FF739FC2FF5D97C9FF008B4BF2008A
|
||||||
|
47FF008845FF008441FF00DAA2FF60D9B3FF008D42FF68545AFF625B5CFF605C
|
||||||
|
5AFF605852FF5490C2FF558CBAFF4E81ADFF7EA6C8FF5A94C4FF008A47FF63ED
|
||||||
|
D0FF00D4A0FF00D29EFF00CC9CFF00CD9CFF6FDCBDFF009346FF615457FF5C57
|
||||||
|
56FF5B534DFF5794C5FF588EBCFF47749BFF88AFCFFF5790C0FF008A47FF61E1
|
||||||
|
D0FF60DDCAFF63DCC8FF00C49BFF00C69CFF82E1C8FF009447FF5C5054FF5853
|
||||||
|
53FF574F4AFF5A96CAFF5B8FBEFF22B9F7FF95B5D3FF548DBCFF008D4CEF008A
|
||||||
|
47FF008844FF00853FFF00C1A0FF97E3D1FF008F43FF5A484EFF565051FF5351
|
||||||
|
4FFF524B45FF5B9ACDFF5C91C1FF20B7F5FF9EBCD7FF5189B8FF008F4E00008F
|
||||||
|
4C00008E4900008B44FFA0E8DAFF009144FF55434AFF524B4DFF4F4D4EFF4F4D
|
||||||
|
4CFF4D4641FF5E9CD2FF5C95C5FF5990C1FFA6C4DFFF4E86B5FF00904C000091
|
||||||
|
47001A866E0017866DFF009647FF523F45FF4F4749FF4D494AFF4C4A4AFF4C48
|
||||||
|
48FF4A423DFF60A0D5FF5D98C9FF5894C6FFAFCCE6FF4B83B0FF009242005276
|
||||||
|
AF004E77AB004D7BB0FF4C3D3BFF4A4343FF484544FF484644FF484644FF4745
|
||||||
|
42FF433C36FF5FA1D8FF5C9ACCFF5896C9FFB8D3EBFF4980ACFF4F79AB004C7A
|
||||||
|
A7004A7BA6004A7FACFF443831FF433B37FF433D38FF433D38FF433D38FF423B
|
||||||
|
36FF3C332CFFB9DAF5FF7FB0DAFF5495CCFFC0DAEFFF467CA8FF4B7CA6004A7C
|
||||||
|
A5004A7CA6004A7EA8B04A82AEFF4A83B0FF4A83B0FF4A83B0FF4A83B0FF4A82
|
||||||
|
AFFF447DA9FF709CBFFFB9D5EBFFB3D1EAFFC1DBF2FF4279A5FF4A7CA5004A7C
|
||||||
|
A5004A7CA5004A7CA5004A7EA7004A7EA8004A7EA8004A7EA8004A7EA800497D
|
||||||
|
A7004579A400709BBE00B5D2EA00C3DAEF58CDE3F5FB3F75A1FF
|
||||||
|
}
|
||||||
|
ImageIndex = 1
|
||||||
|
OnClick = ExitMenuItemClick
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object ImageList16px: TImageList
|
||||||
|
left = 64
|
||||||
|
Bitmap = {
|
||||||
|
4C69020000001000000010000000FFFFFF00A3A4A5EF9FA2A5FF9EA1A5FF9DA1
|
||||||
|
A5FF9DA1A5FF9DA1A5FF9DA1A5FF9DA1A5FF9DA1A5FF9DA1A5FF9DA1A5FF9EA1
|
||||||
|
A5FF9FA2A5FFA3A4A5EFFFFFFF00FFFFFF009FA2A5FFFDDBB6FFF8DAB8FFF8DA
|
||||||
|
B9FFF8DAB9FFF8DAB9FFF8DAB9FFF8DAB9FFF8DAB9FFF8DAB9FFF8DAB9FFF8DA
|
||||||
|
B8FFFDDBB6FF9FA2A5FFFFFFFF00FFFFFF009EA2A6FFF9D0A4FFE8A760FFE7A7
|
||||||
|
62FFE7A863FFE7A863FFE7A863FFE7A863FFE7A863FFE7A863FFE7A762FFE8A7
|
||||||
|
60FFF9D0A4FF9EA2A6FFFFFFFF00FFFFFF00A0A3A7FFFFCA8BFFF9C27EFFF9C2
|
||||||
|
7FFFF9C280FFF9C280FFF9C280FFF9C280FFF9C280FFF9C280FFF9C27FFFF9C2
|
||||||
|
7EFFFFCA8BFFA0A3A7FFFFFFFF00FFFFFF00A2A3A5FF7C7E7FFF7B7D80FF7C7E
|
||||||
|
80FF7C7E81FF7B7E81FF7B7E82FF7B7E82FF7B7E81FF7C7E81FF7C7E80FF7B7D
|
||||||
|
80FF7C7E7FFFA2A3A5FFFFFFFF00FFFFFF00A0A1A1FFF1F0F0FFF1EFEDFFF6F1
|
||||||
|
ECFFF6F2ECFFF2F1EFFFF1F1F2FFF2F2F3FFF2F1EFFFF6F2ECFFF6F2ECFFF1F0
|
||||||
|
EDFFF1F0F0FFA0A1A1FFFFFFFF00FFFFFF009F9F9FFFEDECEAFFDAD5CEFF1F7F
|
||||||
|
FFFF2266FFFFDDD8D1FF928F8CFF716F6CFFDED8D2FF2080FFFF2265FFFFDAD5
|
||||||
|
CEFFEEECEAFF9F9F9FFFFFFFFF00FFFFFF009F9F9FFFEEECECFFDDD9D5FFE4DE
|
||||||
|
D6FFE5DFD7FFE0DDD9FFE0DEDDFFE1DFDEFFE1DDD9FFE5DFD7FFE5DFD6FFDDD9
|
||||||
|
D5FFEEEDECFF9F9F9FFFFFFFFF00FFFFFF009E9F9FFFEEEDEDFFE0DEDDFF918E
|
||||||
|
8AFF716F6BFFE5E2E2FF918F8CFF706E6CFFE4E2E2FF918F8CFF706E6AFFE1DF
|
||||||
|
DEFFEEEDEEFF9E9F9FFFFFFFFF00FFFFFF009E9E9EFFF0EEEEFFE4E2E2FFE9E7
|
||||||
|
E7FFEAE8E9FFE8E6E6FFE9E7E8FFEAE8E9FFE6E5E7FFE5E6EBFFE4E6EBFFE2E2
|
||||||
|
E4FFF0EEEEFF9E9E9EFFFFFFFF00FFFFFF009E9E9EFFF3F2F0FFE9E8E7FF8E8C
|
||||||
|
8AFF6E6C6AFFEDECEBFF8F8D8AFF6E6C6BFFE9ECF0FFF0AC62FFF0AC62FFE5E8
|
||||||
|
ECFFF2F2F1FF9E9E9EFFFFFFFF00FFFFFF009D9E9EFFF4F3F2FFEDECEBFFF2F1
|
||||||
|
F0FFF3F3F2FFF0F0EFFFF3F2F1FFF3F3F3FFEDF1F6FFEEAD66FFE4A25BFFE9ED
|
||||||
|
F2FFF4F4F3FF9D9E9EFFFFFFFF00FFFFFF009E9E9EFFF7F6F6FFF2F1F0FF8D8A
|
||||||
|
88FF6D6B68FFF7F6F5FF8D8B89FF6C6B69FFF2F6F9FFE49F55FFE49F55FFEEF2
|
||||||
|
F5FFF7F6F7FF9E9E9EFFFFFFFF00FFFFFF009F9F9FFFFFFEFEFFFBFAFAFFFEFD
|
||||||
|
FDFFFEFDFDFFFDFCFCFFFEFDFDFFFEFDFEFFFBFCFDFFF9FCFFFFF9FCFFFFF9FA
|
||||||
|
FCFFFFFEFEFF9F9F9FFFFFFFFF00FFFFFF00969696C09F9F9FFF9E9E9EFF9E9E
|
||||||
|
9EFF9E9F9FFF9E9E9EFF9E9E9EFF9E9F9FFF9E9E9EFF9D9E9FFF9D9E9FFF9D9E
|
||||||
|
9EFF9F9F9FFF9E9E9EE1FFFFFF00FFFFFF000000002300000033000000330000
|
||||||
|
0033000000330000003300000033000000330000003300000033000000330000
|
||||||
|
0033000000330000002CFFFFFF004A7CA5004A7CA5004A7CA5004A7CA5004A7E
|
||||||
|
A7004A7EA8004A7EA8004A7EA8004A7EA800497DA7004579A400709BBE00B5D2
|
||||||
|
EA00C3DAEF58CDE3F5FB3F75A1FF4B7CA6004A7CA5004A7CA6004A7EA8B04A82
|
||||||
|
AEFF4A83B0FF4A83B0FF4A83B0FF4A83B0FF4A82AFFF447DA9FF709CBFFFB9D5
|
||||||
|
EBFFB3D1EAFFC1DBF2FF4279A5FF4F79AB004C7AA7004A7BA6004A7FACFF4438
|
||||||
|
31FF433B37FF433D38FF433D38FF433D38FF423B36FF3C332CFFB9DAF5FF7FB0
|
||||||
|
DAFF5495CCFFC0DAEFFF467CA8FF009242005276AF004E77AB004D7BB0FF4C3D
|
||||||
|
3BFF4A4343FF484544FF484644FF484644FF474542FF433C36FF5FA1D8FF5C9A
|
||||||
|
CCFF5896C9FFB8D3EBFF4980ACFF00904C00009147001A866E0017866DFF0096
|
||||||
|
47FF523F45FF4F4749FF4D494AFF4C4A4AFF4C4848FF4A423DFF60A0D5FF5D98
|
||||||
|
C9FF5894C6FFAFCCE6FF4B83B0FF008F4E00008F4C00008E4900008B44FFA0E8
|
||||||
|
DAFF009144FF55434AFF524B4DFF4F4D4EFF4F4D4CFF4D4641FF5E9CD2FF5C95
|
||||||
|
C5FF5990C1FFA6C4DFFF4E86B5FF008D4CEF008A47FF008844FF00853FFF00C1
|
||||||
|
A0FF97E3D1FF008F43FF5A484EFF565051FF53514FFF524B45FF5B9ACDFF5C91
|
||||||
|
C1FF20B7F5FF9EBCD7FF5189B8FF008A47FF61E1D0FF60DDCAFF63DCC8FF00C4
|
||||||
|
9BFF00C69CFF82E1C8FF009447FF5C5054FF585353FF574F4AFF5A96CAFF5B8F
|
||||||
|
BEFF22B9F7FF95B5D3FF548DBCFF008A47FF63EDD0FF00D4A0FF00D29EFF00CC
|
||||||
|
9CFF00CD9CFF6FDCBDFF009346FF615457FF5C5756FF5B534DFF5794C5FF588E
|
||||||
|
BCFF47749BFF88AFCFFF5790C0FF008B4BF2008A47FF008845FF008441FF00DA
|
||||||
|
A2FF60D9B3FF008D42FF68545AFF625B5CFF605C5AFF605852FF5490C2FF558C
|
||||||
|
BAFF4E81ADFF7EA6C8FF5A94C4FF000000300000003300000033008C46FF4FDD
|
||||||
|
B0FF008D43FF6B585EFF655E60FF636160FF62605FFF645D57FF518DBEFF528A
|
||||||
|
B7FF5187B4FF739FC2FF5D97C9FF66565D0069555C0010866D0013826BFF0093
|
||||||
|
46FF715C62FF6A6263FF676463FF666463FF676462FF68615BFF4F8ABBFF5086
|
||||||
|
B4FF4F84B1FF6895B9FF5F9BCDFF5E5B5C005F5A5C00635859003F69A5FF7566
|
||||||
|
67FF706869FF6D6969FF6C6A69FF6C6A69FF6C6A68FF6E6762FF4C89BAFF4E85
|
||||||
|
B2FF4D83AEFF5D8CB2FF629ED1FF5C5C5CFF5C5C5CFF5E5B5AFF5E5A59FF5D5A
|
||||||
|
5AFF5B5A5BFF5A5B5BFF5A5B5BFF5A5B5BFF5B5A5AFF5C5956FF576876FF4E7E
|
||||||
|
A4FF4C80ACFF5082ABFF65A2D5FF000000330000003300000033000000330000
|
||||||
|
0033000000330000003300000033000000330000003300000033000000330000
|
||||||
|
0033365D7B79497BA2FC68A4D9FF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000120000003200000033
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
143
src/mainformunit.pas
Normal file
143
src/mainformunit.pas
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
unit MainFormUnit;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, LazFileUtils, Forms, Controls, Graphics, Dialogs, EditBtn,
|
||||||
|
StdCtrls, ExtCtrls, Menus, Windows, fpExprPars, lazutf8;
|
||||||
|
|
||||||
|
type
|
||||||
|
TMainForm = class(TForm)
|
||||||
|
ExitMenuItem: TMenuItem;
|
||||||
|
ImageList16px: TImageList;
|
||||||
|
ShowHideMenuItem: TMenuItem;
|
||||||
|
TrayPopupMenu: TPopupMenu;
|
||||||
|
ResultEdit: TEdit;
|
||||||
|
QueryEdit: TEditButton;
|
||||||
|
TrayIcon: TTrayIcon;
|
||||||
|
procedure ExitMenuItemClick(Sender: TObject);
|
||||||
|
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
procedure FormCreate(Sender: TObject);
|
||||||
|
procedure FormShow(Sender: TObject);
|
||||||
|
procedure QueryEditButtonClick(Sender: TObject);
|
||||||
|
procedure QueryEditChange(Sender: TObject);
|
||||||
|
procedure QueryEditKeyPress(Sender: TObject; var Key: char);
|
||||||
|
procedure ShowHideMenuItemClick(Sender: TObject);
|
||||||
|
procedure TrayIconClick(Sender: TObject);
|
||||||
|
procedure ShowHideForm;
|
||||||
|
private
|
||||||
|
procedure WM_HotKeyHandler(var Message: TMessage);
|
||||||
|
message WM_HOTKEY;
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
MainForm: TMainForm;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses Support, HotkeysUnit;
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
procedure TMainForm.WM_HotKeyHandler(var Message: TMessage);
|
||||||
|
begin
|
||||||
|
if (LOWORD(Message.lParam) = MOD_CONTROL) and (HIWORD(Message.lParam) = VK_1) then
|
||||||
|
ShowHideMenuItemClick(MainForm);
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.QueryEditChange(Sender: TObject);
|
||||||
|
var
|
||||||
|
t: integer;
|
||||||
|
parser: TFPExpressionParser;
|
||||||
|
parserResult: TFPExpressionResult;
|
||||||
|
begin
|
||||||
|
if length(QueryEdit.Text) = 0 then begin
|
||||||
|
ResultEdit.Text := '0,00';
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
t := QueryEdit.SelStart;
|
||||||
|
QueryEdit.Text := ClearExpression(QueryEdit.Text);
|
||||||
|
QueryEdit.SelStart := t;
|
||||||
|
|
||||||
|
parser := TFPExpressionParser.Create(nil);
|
||||||
|
try
|
||||||
|
parser.BuiltIns := [bcMath];
|
||||||
|
parser.Expression := UTF8StringReplace(QueryEdit.Text,',','.',[rfReplaceAll]);
|
||||||
|
parserResult := parser.Evaluate;
|
||||||
|
ResultEdit.Text := formatfloat('0.00', ArgToFloat(parserResult));
|
||||||
|
except
|
||||||
|
on E: Exception do
|
||||||
|
ResultEdit.Text := E.Message;
|
||||||
|
end;
|
||||||
|
parser.Free;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.QueryEditKeyPress(Sender: TObject; var Key: char);
|
||||||
|
begin
|
||||||
|
if Key = #13 then
|
||||||
|
QueryEdit.Text := ResultEdit.Text;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.ShowHideMenuItemClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
ShowHideForm;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.TrayIconClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
ShowHideForm;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.ShowHideForm;
|
||||||
|
begin
|
||||||
|
if MainForm.Visible then
|
||||||
|
MainForm.Hide
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
if MainForm.WindowState = wsMinimized then
|
||||||
|
MainForm.WindowState := wsNormal;
|
||||||
|
MainForm.Show;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.FormCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
FormatSettings.DecimalSeparator := ',';
|
||||||
|
MainForm.Left := Screen.Width - MainForm.Width - 16;
|
||||||
|
MainForm.Top := Screen.Height - MainForm.Height - 64;
|
||||||
|
AssociateHotkeys(Handle);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.FormShow(Sender: TObject);
|
||||||
|
begin
|
||||||
|
QueryEdit.SetFocus;
|
||||||
|
QueryEdit.SelectAll;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.QueryEditButtonClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
QueryEdit.Text := '';
|
||||||
|
QueryEdit.SetFocus;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
begin
|
||||||
|
CloseAction := caHide;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.ExitMenuItemClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
TrayIcon.Hide;
|
||||||
|
try
|
||||||
|
UnregisterHotKey(Handle, 1);
|
||||||
|
GlobalDeleteAtom(1);
|
||||||
|
except;
|
||||||
|
end;
|
||||||
|
Application.Terminate;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
1
src/make.bat
Normal file
1
src/make.bat
Normal file
@ -0,0 +1 @@
|
|||||||
|
lazbuild calculator.lpi
|
31
src/support.pas
Normal file
31
src/support.pas
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
unit Support;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
SysUtils;
|
||||||
|
|
||||||
|
function ClearExpression(input: string): string; // Удаление лишних символов из выражения
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
function ClearExpression(input: string): string;
|
||||||
|
var
|
||||||
|
i: integer;
|
||||||
|
begin
|
||||||
|
// Замена десятичного разделителя с точки на запятую
|
||||||
|
Result := stringreplace(input, '.', ',', [rfReplaceAll, rfIgnoreCase]);
|
||||||
|
|
||||||
|
// Удаление всех лишних символов
|
||||||
|
i := 1;
|
||||||
|
while i <= length(Result) do
|
||||||
|
if not ((Result[i]) in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ',', '+', '-', '*', '/', '(', ')']) then
|
||||||
|
Delete(Result, i, 1)
|
||||||
|
else
|
||||||
|
i := i + 1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user