-
MY PROJECTS
-
Recent Posts
- Reading.CleanArchitecture.Thoughts
- Algo.Java.PascalTriangle.ExampleOfDynamicProgramming
- Algo.Java.Find2Mins.InO(n)
- Algo.Java.RecursiveSlidingWindow
- Java.Algo.SlidingWindow
- Algo.Java.SlidingWindow.DoublingArrayForCircle
- Algo.Java.BinarySearch.For.Peaks
- Algo.Java.BinarySearch.Tip
- Algo.Java.BitManipulation.AnotherExample
- Algo.Java.SetBitMask
- Algo.Java.DFS.In.Matrix.AnotherExample2
- Algo.Java.DFS.In.Matrix.Another.Example
- Algo.Java.DFS.In.Matrix
- Algo.Java.BFS.In.Matrix
- Java.Algo.Kadane.MaxSumOfSubArray
- Algo.Java.GetBitFromInteger
- Algo.Java.BinarySearch.BrilliantProblem
- Algo.Java.StringTips
- Algo.Java.LoopSpeed
- Algo.Java.Arrays.AnotherExampleOfFrequencyApproach
Categories
- Aptana
- Azure
- C#
- DataSnap
- DBExpress
- Delphi
- Delphi и сети
- Delphi. Язык программирования
- ExtJS
- FastReport
- FireDAC
- FireMonkey
- GIT
- ICS
- IDE
- IIS
- Indy
- InnoSetup
- javascript
- jQuery
- JSON
- LiveBindings
- MSHTML
- MySQL
- PHP
- REST
- Ribbons
- SMS
- SQL инструкции
- SVN
- TRichView
- UniGui
- WebBroker
- WinAPI
- Windows
- Алгоритмы
- Без рубрики
- Деревья
- Ищу ответ
- Компонентостроение
- Мои компоненты
- Начальный уровень
- Обработка исключений
- Парсинг
- Потоки(Threads)
- Регулярные выражения
- Тестирование приложений
Category Archives: UniGui
Delphi. UniGUi. Синхронный и асинхронный режимы модальных окон
Все мы привыкли писать что-то такое для модальных окон
1 2 |
if LoginForm.ShowModal = mrOk then ShowMessage('authorized'); |
Но в UniGUI, для того, чтобы это срабатывало так как мы привыкли, надо подключать синхронный режим.
1 |
MainModule - > EnableSynchronousOperations |
По умолчанию эта галчонка отключена. Я сначала думал, что это баг, оказалось фича … Continue reading
Delphi. UniGUI. Как узнать высоту текста в uniHTMLFrame?
Выстраивал высоту элементов, возник вопрос с определением высоты текста в UniHTMLFrame. Способ №1 от Delphi Developer
1 2 |
js:='alert('+HTMLFrame.JSName+'.body.el.dom.scrollHeight);'; UniSession.JSCode(js); |
Способ №2 Мой способ, менее эффективный, с оборачиванием в div, но тоже рабочий. Решил так. Сначала обернем наш HTML в div c известным … Continue reading
Delphi. MVC pattern in UniGUI vs traditional coding to form
My discussion on forum Conclusion – mvc is possible to implement, but not obligatory. Standart delphi structure of dfm and pas is natural to delphi enviroment. Maybe mvc pattern would be better for big projects…
Delphi. UniGUI. Calc, just calc
Wanted to show 2 patterns on calc example, but calc itself has become not simple task… Below version that works correctly but there is things to do…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 |
unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uniGUITypes, uniGUIAbstractClasses, uniGUIClasses, uniGUIRegClasses, uniGUIForm, uniEdit, uniGUIBaseClasses, uniButton, uniBitBtn, uniLabel; type TMainForm = class(TUniForm) b8: TUniBitBtn; b9: TUniBitBtn; b4: TUniBitBtn; b5: TUniBitBtn; b6: TUniBitBtn; bOne: TUniBitBtn; b2: TUniBitBtn; b3: TUniBitBtn; eResult: TUniEdit; UniBitBtn10: TUniBitBtn; bEqual: TUniBitBtn; bDivide: TUniBitBtn; bMultiply: TUniBitBtn; bMinus: TUniBitBtn; bPlus: TUniBitBtn; bCE: TUniBitBtn; b7: TUniBitBtn; unilabel: TUniLabel; procedure UniFormCreate(Sender: TObject); procedure digitClick(Sender: TObject); procedure signClick(Sender: TObject); procedure bEqualClick(Sender: TObject); procedure bCEClick(Sender: TObject); private { Private declarations } faIsEmpty: Boolean; fbIsEmpty: Boolean; fcIsEmpty: Boolean; fdIsEmpty: Boolean; fIsSignClickedBefore: Boolean; fIsDigitClicked: Boolean; fa, fb, fc: real; fd: char; foperators: set of Char; procedure nullAll; public { Public declarations } end; function MainForm: TMainForm; implementation {$R *.dfm} uses uniGUIVars, MainModule, uniGUIApplication, System.Generics.Collections; function MainForm: TMainForm; begin Result := TMainForm(UniMainModule.GetFormInstance(TMainForm)); end; procedure TMainForm.bCEClick(Sender: TObject); begin nullAll(); end; procedure TMainForm.bEqualClick(Sender: TObject); begin case fd of '-': fc := fa - fb; '+': fc := fa + fb; '*': fc := fa * fb; '/': fc := fa / fb; end; fa := fc; fbIsEmpty := True; eResult.Text := FloatToStr(fc); end; procedure TMainForm.nullAll; begin fa := 0.00; fb := 0.00; fc := 0.00; unilabel.Caption := ''; faIsEmpty := true; fbIsEmpty := true; fcIsEmpty := true; fdIsEmpty := true; foperators := ['+', '-', '*', '/']; unilabel.Caption := ''; eResult.Text := ''; end; procedure TMainForm.digitClick(Sender: TObject); begin fIsSignClickedBefore := false; fIsDigitClicked := True; if faIsEmpty then begin fa := strToFloat((Sender as TUniBitbtn).Caption); faIsEmpty := false; end else begin fb := strToFloat((Sender as TUniBitbtn).Caption); fbIsEmpty := False; end; unilabel.Caption := unilabel.Caption + (Sender as TUniBitbtn).Caption; end; procedure TMainForm.signClick(Sender: TObject); var s: string; lastSymbol:char; begin fdIsEmpty := false; if fIsSignClickedBefore then begin s := unilabel.Caption; lastSymbol:=s[Length(s)]; if ((s[Length(s)] in foperators) and ((lastSymbol <> (Sender as TUniBitbtn).Caption))) then begin delete(s, length(s), 1); fdIsEmpty := true; unilabel.Caption := s; //fIsSignClickedBefore := false; end else if (s[Length(s)] = (Sender as TUniBitbtn).Caption) then exit; end; unilabel.Caption := unilabel.Caption + (Sender as TUniBitbtn).Caption; s := (Sender as TUniBitBtn).Caption; fd := s[Low(s)]; if fdIsEmpty then exit; if not fIsDigitClicked and fIsSignClickedBefore then exit; fIsSignClickedBefore := true; if (not faIsEmpty) and (not fbIsEmpty) then begin case fd of '-': fc := fa - fb; '+': fc := fa + fb; '*': fc := fa * fb; '/': fc := fa / fb; end; fa := fc; eResult.Text := FloatToStr(fc); fIsDigitClicked := false; end; end; procedure TMainForm.UniFormCreate(Sender: TObject); begin nullAll(); end; initialization RegisterAppFormClass(TMainForm); end. |
Delphi. UniShop. Интеграция с банком Тинькофф
Делал интернет-магазин на Delphi, появилась задача провести интеграцию с банком Тинькофф. Эквайринг. Внимательно изучил API Тинькофф. С заказчиком решили остановиться на платежном виджете с типом нотификации Email. Расскажу основные моменты. Оттолкнувшись от API написал такой код обработки параметров отправляемых через … Continue reading
Delphi. UniGUI. Делаем витрину (showcase) 2 часть
В прошлом посте мы сделали подготовочку. Структуру базы данных, определили основные сущности программы, создали под них таблицы в базе и модули в прекрасной IDE Delphi. В данном посте добавим функцию добавления товара, выделения товара, удаления товара, а также наладим листание … Continue reading
Posted in Delphi, Indy, UniGui, Без рубрики
Comments Off on Delphi. UniGUI. Делаем витрину (showcase) 2 часть
Delphi. Indy. Как отправить Get запрос, принять и обработать его на idHTTPServer?
Уже была подобная статья про отправку запросов с параметрами методом POST, а также был подобный пост, который касался отправки файлов методом POST и был на порядок сложнее того, что я напишу сейчас. Данные во второй статье отправляются в кодированном виде и мы делали … Continue reading
Delphi. UniGUI. Application Data Module and Free DataModule
Небольшая заметка! При создании дата модулей в UniGUI у нас есть 2 варианта – Application Data Module and Free Data Module В чем разница? Ответ на этот вопрос я получил на форуме UniGUI. Процитирую его здесь. Application Data Module’s life time … Continue reading
Delphi. UniGUI. Делаем витрину (showcase)
Друг попросил сделать небольшую витрину на UniGUI, получилось так… Сделал на фрэймах. В 2 режимах – multipage – когда товары добавляются по N, например по 10 товаров на странице и бесконечно слева направо сверху вниз.
Delphi. UniGUI. Deploy от А до Я (Версия 2)
Я уже писал о размещении (deploy) проекта на внешних серверах в одноименной статье ранее. Но тогда я только начинал разбираться с фрэймфорком UniGUI, а сейчас более менее все устаканилось в голове, поэтому этот пост наверное будет почти тем же самым, … Continue reading