-
MY PROJECTS
-
Recent Posts
- SpringBoot.Making our first starter and autoconfiguration
- Spring. Creating main annotation to start business logic
- Spring.Reading from properties file
- Spring.How to define spring version inside springBoot ?
- SpringBoot App inside Docker
- Kafka.FirstExperience
- Docker.MySql and Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0
- Gradle.Tips
- Spring.AppConfig
- Leetcode.Best-time-to-buy-and-sell-stock
- LeetCode.ClimbStairs.Fibbonacci
- Leetcode.Roman-to-integer
- LeetCode.Palindrome-number
- Java.DesignPatterns.Lightweight
- Java.DesignPatterns.Proxy
- Java.DesignPatterns.Facade
- Java.DesignPatterns.Composite
- Java.DesignPatterns.Bridge
- Java. Strange OOP thing
- Java.Classpath
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: Delphi
Delphi. Как загрузить сайт для парсинга?
Наверное, самый простой способ загрузить сайт для парсинга это компонент TIdHTTP и его метод Get. Если открыть официальную документацию компонентов Indy, то можно увидеть следующее описание метода Get, компонента TidHTTP
1 2 3 |
function Get( AURL: string ): string; overload; |
И ещё одна его перегруженная версия, которая грузит сайт в … Continue reading
Posted in Delphi, Delphi и сети, Без рубрики
Comments Off on Delphi. Как загрузить сайт для парсинга?
Регулярные выражения. Практика
В прошлом посте я разбирался с теорией, сейчас попробую попрактиковаться в Delphi с разными примерами из разных блогов. Элементарно
1 2 3 4 5 6 7 8 9 10 |
//uses RegularExpressions ... procedure TForm.Button1Click(Sender: TObject); var RegEx: TRegEx; begin RegEx := TRegEx.Create('Hello');// Определяем то, что ищем, собственно регулярное выражение //Далее определяем текст, в котором ищем if RegEx.IsMatch('Hello world') then Caption := 'match'; end; |
Теперь тоже самое, но с использованием метасимволов
1 2 3 4 5 6 7 8 |
procedure TForm.ButtonClick(Sender: TObject); var RegEx:TRegEx; begin RegEx := TRegEx.Create('^H[\w]+o\b'); if RegEx.IsMatch('Hello world') then form.Caption := 'match'; end; |
Что написано в последнем коде? Разберем регулярное выражение
Posted in Delphi, Без рубрики, Регулярные выражения
Comments Off on Регулярные выражения. Практика
Регулярные выражения.Теория
Заинтересовался темой регулярных выражений. Серию постов про регулярные выражения, пишу для себя, чтобы разобраться и систематизировать информацию. Но если для Вас пост окажется полезным – буду рад. Зачем? Насколько я понимаю – для того, чтобы минимальным количеством кода находить информацию в тексте. … Continue reading
Posted in Delphi, Без рубрики, Регулярные выражения
Comments Off on Регулярные выражения.Теория
Как подключиться к удаленной БД MySQL и открыть другую форму после успешного подключения?
Что делаем? Пишем программу, которая открывает 2 форму, после успешного подключения к БД. Пишем в Delphi FireMonkey HD Application Исходные компоненты 1 форма – главная, откроется после успешного подключения
Работа с дисками, папками, файлами. Обзор System.IOUtils
uses System.IOUtils Список и размер дисков
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
procedure TForm1.bGetDisksClick(Sender: TObject); var SDA:TStringDynArray; i:integer; begin Combobox1.Clear; SDA:=Tdirectory.GetLogicalDrives; for i := 0 to High(SDA) do Combobox1.Items.Add(SDA[i]); Combobox1.ItemIndex:=0; end; //Размер диска (на примере диска С это номер 3 функции DiskSize) //Выводим в ListBox ListBox1.Clear; ListBox1.Items.Add( inttostr( DiskSize(3))+' bytes' ) ; |
Сбор сведений о каталогах и файлах
1 2 3 4 5 6 7 8 9 |
procedure TForm1.GetDirsAndFilesClick(Sender: TObject); var SDA:TStringDynArray; i:integer; begin SDA:=TDirectory.GetFileSystemEntries('C:\','*.*'); ListBox1.Clear; for i := 0 to High(SDA) do ListBox1.Items.Add(SDA[i]); end; {Также полезные функции GetFiles и GetDirectories} |
Posted in Delphi, FireMonkey, Без рубрики
Comments Off on Работа с дисками, папками, файлами. Обзор System.IOUtils
TAction simple example (Copy Cut Paste)
На форме FireMonkey – Memo, ActionList, MainMenu В ActionList добавим 3 элемента acCopy acCut acPaste Напишем обработчики для элементов ActionList
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
procedure TForm1.acCopyExecute(Sender: TObject); begin Memo.CopyToClipboard; end; procedure TForm1.acCutExecute(Sender: TObject); begin Memo.CutToClipboard; end; procedure TForm1.acPasteExecute(Sender: TObject); begin Memo.PasteFromClipboard; end; |
Далее – актуализируем через Update
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
procedure TForm1.acCopyUpdate(Sender: TObject); begin acCopy.Enabled := (Memo.SelLength>0); end; procedure TForm1.acCutUpdate(Sender: TObject); begin acCut.Enabled:=(Memo.SelLength>0) end; procedure TForm1.acPasteUpdate(Sender: TObject); var Clip:IFMXClipboardService; s:string; begin if TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService,IInterface(Clip)) then begin s:=Clip.GetClipboard.ToString; acPaste.Enabled:=s.Length>0 end else acPaste.Enabled:=false; end; |
Posted in Delphi, FireMonkey
Comments Off on TAction simple example (Copy Cut Paste)
PopupMenu
Самый простой способ подключить TPopupMenu – воспользоваться свойством PopupMenu. На рис. ниже пример для компонента TImage Но, к сожалению не у всех компонентов есть это свойство, например, его нет у TForm. Если у компонента нет свойства Popup, то можно подключить … Continue reading
Posted in Delphi, FireMonkey, Без рубрики
Comments Off on PopupMenu
Ресурсы
Зачем нужны ресурсы? Чтобы защитить нужные файлы от изменений, скрыть от пользователя. И также, насколько я понимаю, если проводить аналогию с физическим миром это что-то вроде склада, где по отдельному идентификатору можно вызвать то или иное изображение, видео или другой … Continue reading
Posted in Delphi, FireMonkey
Comments Off on Ресурсы
Delphi. Программа-шутка
Вместо закрытия создает новые окна самой себя
1 2 3 4 5 6 |
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=TCloseAction.caNone; with TForm1.Create(Application) do show(); Form1.Caption:='joke'; end; |
Posted in Delphi, Без рубрики
Comments Off on Delphi. Программа-шутка
MessageDlg – запрос сохранения данных в Memo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
var textModified:boolean; procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if textModified then case MessageDlg('Сохранить изменения в тексте',TMsgDlgType.mtConfirmation, [tMsgDlgBtn.mbYes]+[tMsgDlgBtn.mbNo]+[tMsgDlgBtn.mbCancel],-1) of mrYes: memo1.Lines.SaveToFile('saved.txt'); mrNO: CanClose:=true; mrCancel: CanClose:=true; end end; |
Posted in Delphi, FireMonkey, Без рубрики
Comments Off on MessageDlg – запрос сохранения данных в Memo