-
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)
- Регулярные выражения
- Тестирование приложений
Monthly Archives: June 2016
Как избавиться от зависимости от глобальных переменных при разработке компонента?
Столкнулся с тем, что при разработке компонентов есть published свойства, в которые заносится некоторая информация. И вот вопрос – как передать эту информацию во внутренний модуль компонента? Подробно проблему описал на 2 форумах –How to avoid using GlobalVars in components … Continue reading
Posted in Delphi
Comments Off on Как избавиться от зависимости от глобальных переменных при разработке компонента?
Delphi.Ribbons. Пример программного добавления вкладки
Сохраняю здесь, так как может понадобиться в будущем
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
//----------------------Пример программного создания вкладки-------------------- procedure TMainForm.sbMainBottomStatusBarClick(Sender: TObject); var RibbonPage:TRibbonPage; begin RibbonPage:=TRibbonPage.Create(Self); RibbonPage.Parent:=MainRibbon; RibbonPage.Caption:='Новая вкладка Риббона'; MainRibbon.AddTab(RibbonPage); RibbonPage.Show; end; //------------------------------------------------------------------------------ |
Результат
В чем разница между identifying and non-identifying relationships?
Теперь, собственно попробуем наладить взаимосвязи! Но прежде, разберемся с пунктирными и непунктирными линиями во взаимосвязях Классные объяснения на английском находятся здесь. Больше всего мне понравилось вот это объяснение A book belongs to an owner, and an owner can own … Continue reading
Posted in MySQL
Comments Off on В чем разница между identifying and non-identifying relationships?
MySQL. InnoSetup. “Тихая установка”. Добавляем Uninstall MySQL сервера при деинсталляции основной программы
Чтобы добавить возможность деинсталляции MySQL сервера при деинсталляции основной программы, нужно в код InnoSetup добавить следующую инструкцию
1 2 |
[UninstallRun] Filename: msiexec; Parameters: "/i ""{app}\mysql-5.5.23-winx64.msi "" " |
Код целиком, будет выглядеть следующим образом, он включает в себя инсталляцию основной программы, инсталляцию сервера базы данных и его конфигурирование, и его … Continue reading
MySQL. InnoSetup. “Тихая установка”. Загрузка своей базы данных при инсталляции
Продолжаю прошлую тему – устанавливать “тихо” MySQL сервер мы научились. Что дальше? В данном посте посмотрим как при инсталляции сервера MySQL добавить в него свою базу данных. Для этого нам нужен собственно дамп базы, далее нужно дать команду серверу, после … Continue reading
MySQL. “Тихая” установка при помощи InnoSetup
Когда нужна тихая установка? Например, при установке своей программы, которая опирается на базу данных, например, на mysql. Разберем пример тихой установки 64 битного сервера MySQL в директорию C:\mysql. Импорт базы данных разберем в следующем посте. Работать в основном будем с … Continue reading
Delphi. TRichView. Как вставить картинку и программно изменить её размеры в документе?
На примере SrichViewEdit (ScaleRichViewEdit)
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 |
uses ... RVGrHandler ... ... gr:=TGraphic.Create; gr := RVGraphicHandler.LoadFromFile(fMediaLoader_Inherited.LastUploaded.FilePath); ... SRichViewEdit1.ConvertToPixels;// Измерять будем в пикселях with SRichViewEdit1.ActiveEditor do begin BeginUpdate; TopLevelEditor.BeginUndoGroup(rvutInsert); TopLevelEditor.SetUndoGroupMode(True); if InsertPicture('', gr, rvvaBaseline) then begin SetCurrentItemExtraIntProperty(rvepImageWidth, 200, True); SetCurrentItemExtraIntProperty(rvepImageHeight, 300, True); end; TopLevelEditor.SetUndoGroupMode(False); EndUpdate; end; ... |
Delphi. TRichView. Как записать контрол в базу и прочитать его оттуда?
Код для примера, без обработки ошибок. Предполагается, что подключение у нас уже создано в отдельном модуле и на форме добавлен компонент FDQuery. Также в базе создано BLOB поле. Запись в базу через поток MemoryStream
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 |
procedure TMainForm.bTestClick(Sender: TObject); var ms:tmemortStream; wmp: TWindowsMediaPlayer; begin ms:=tmemorystream.Create; ms.position:=0; FDQuery.Connection:=DBConnection.FDConnection; //Создаем и вставляем контрол wmp:=TWindowsMediaPlayer.Create(Self); RichViewEdit1.InsertControl('',wmp,rvvaBaseline); //Готовим поток ms.Clear; ms.Position:=0; //Записываем в него RichViewEdit1.SaveRVFToStream(ms,false); ms.Position:=0; //Чистим базу FDQuery.SQL.Text:='delete from test_db.htmltable where id>1;'; FDQuery.ExecSQL; FDQuery.SQL.Text:='SELECT * FROM test_db.htmltable;'; FDQuery.Open(); // Вставка в базу FDQuery.Insert; TBlobfield(FDQuery.FieldByName('Blobfield')).LoadFromStream(MS); FDQuery.Post; Freeandnil(ms); end; |
Чтение из базы через поток … Continue reading
Posted in Без рубрики
Comments Off on Delphi. TRichView. Как записать контрол в базу и прочитать его оттуда?
Delphi.TRichView. Как сохранить контрол в поток данных и прочитать его оттуда?
Рассмотрим на примере TWindowsMediaPlayer. Тут всё достаточно просто. Сохранять будем в поток, в дальнейшем этот поток можно передать в Blobstream и далее в базу, Для корректного чтения из потока нужно выполнить процедуру RegisterClass, чтобы TRichView понимал что это такое. В … Continue reading
Delphi. Как сделать своё самое простое событие?
Хороший пример создания событий есть на форуме. Попробую повторить, по аналогии, на примере загрузки файла в некоторую директорию. Класс, создающий событие Пусть у нас есть некоторый класс, внутри которого нужно создать событие. Например, класс формы загрузки файлов. Тогда внутри него мы … Continue reading
Posted in Delphi
Comments Off on Delphi. Как сделать своё самое простое событие?