-
Постов
13 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные Bio HaZaRD
-
-
Добрый день!
Скажите пожалуйста как вывести форму на второй монитор в C++ Builder 10.1 (FM). Стоит Win10x64.
Раньше использовал
Form2->MakeFullyVisible(Screen->Monitors[1]); Form2->Show();
Но это больше не работает.
И как получить список всех мониторов, чтобы можно было выбирать, куда на каком мониторе показать форму?
Заранее спасибо!
-
52 минуты назад, Rusland сказал:
Прикладывайте тестовый проект - так проще разбираться в чем у вас проблема
Спасибо вам за ваше сообщение, оно подало мне отличную идею, которая наконец решила мою проблему.
Ещё раз моя проблема:
FDConnection не мог подключится к БД на чужом ПК с любово места на HDD. Эта проблема заключалась в том, что в компоненте, кинутой на форму, я указывал статический путь к базе данных.Решение:
Удалить путь к файлу в компонете FDConnection и программно указать его, например в методе формы FormShow или FormCreate.Ещё раз всем спасибо за понимание и поддержку!
С уважением Владимир -
4 часа назад, Andrey Efimov сказал:
Читайте правила форума. Один вопрос - одна тема.
Вас понял.
В общем прога запускается, но к сожалению проблема с БД не решина.
Компоненту FDConnect в свойствах был присвоен путь к базе данных. Соответственно тот путь, который указан в свойствах Компонента статичен и не будет совпадать с путём, где будет лежать прога на другом ПК. Я же хочу чтобы путь определялся динамически.
Методом тыка понял, что FireDac не может программно присвоить путь к БД объекту TFDConnect *Conn.
void __fastcall TMainForm::FormShow(TObject *Sender) { // TFDConnection *Conn Conn->DriverName = "SQLite"; Conn->Params->Values['Database'] = ExtractFilePath(Application->ExeName) + "psalms.db"; Conn->Open(); }
То-есть после запуска проги не по пути, по которому я указал в компонете, прога выдаёт ошибку: База данных не найдена.
Прошу помочь понять мне, как динамически присвоить путь к БД.
Заранее благодарю.
-
Только что, Vitaldj сказал:
Поверьте, FireDac не имеет встроенного механизма доступа с sqlite. То есть, нужна dll. Все таки она где-то у вас лежит))
Ясно, буду искать и тестировать. Может на виртуалке что-нибудь выясню
-
Дамы и Господа,
в общем не знаю из-за чего, но после переустановки винды на билд 15002 и установки Rad Studio, скачанной с сайта embarcadero, всё скомпелировалось и заработало.
Итак ход разработки проги:
создав интерфейс, кинул FDConnection, FDQuery и настроил их. После закинул на ПК без IDE. Убидившись в том, что в System32 и SysWOW64 не лежит sqlite3.dll, запустил прогу и.... всё заработало.Мой вывод по поводу sqlite: C++ Builder впаивает sqlite в exe, тем самым никакие DLL с прогой ложить не нужно, а вот БД надо.
Ещё один вопрос про FireDac: как программно указать относительный путь к БД (sqlite) для компонента FDConnection?
Всех благодарю за помощь и содействие.
Основная проблема решена! ))
-
2 часа назад, Vitaldj сказал:
надо рядом с exe приложения
Я ложил с exe.
35 минут назад, enatechno сказал:Где создается/размещается файл базы данных? Проблема может быть в правах доступа. Попробуйте запустить свою программу на другом ПК с правами администратора.
База находится в папке рядом с exe, а exe – на D:/.... Я запускал на другом пк с правами и без прав админа.
2 часа назад, rareMax сказал:Один раз показываю.
private FDPhysSQLiteDriverLink1: TFDPhysSQLiteDriverLink; //компонент, кинь на форму ........... Begin FDPhysSQLiteDriverLink1 := TFDPhysSQLiteDriverLink.Create(self); // либо создай в ранТайме FDPhysSQLiteDriverLink1.VendorLib := 'full path to you sqlite.dll'; // укажи путь к библиотеке
Также пробовал бросать этот компонент – без результатно.
Завтра ещё раз сделаю по вашим советам на чистой винде
-
6 минут назад, Vitaldj сказал:
Исправят что? Вы сами должны рядом с экзешником положить dll от sqlite!
Я клал 32 и 64 бит. Переименовывал в sqlite.dll, sqlite3.dll. Клал sqlite3.dll в папку System32 (здесь sqlite3 32 бит) и SysWOW64 (sqlite3 64 бит). Прога даже не показывалась. А когда я удалял компоненты FireDac с формы в билдере, то приложение запускалось без проблем
-
7 минут назад, Vitaldj сказал:
Ну вот, QT вам само ложит эту dll, вот и ответ.
Подожду обновы, может исправят.
Спасибо всем за содействие!
-
Запиленное на Qt работает на других ПК. В конце концов, с приложением лежат все DLL. Приложение весит ~50 Мб. Это не особо удобно, учитывая тот факт, что в приложении все-лишь пару кнопок и текстовых полей.
В идеале хотелось бы вообще нативное приложение построить, без всяких прибомбасов))
-
4 минуты назад, Vitaldj сказал:
А какая разница на чем писать, база данных все равно требует библиотеку доступа!
Не знаю в чём проблема в c++ builder, но в Qt всё работает
-
Большое спасибо за столь скорую реакцию.
Я перешёл на Qt и (на данный момент) не имею боли по поводу SQLite.
-
Всем привет!
Пишу проект на основе FireDac (TFDConnection, TFDQuery) + SQLite. На ПК с IDE программа запускается, а на других - нет. На ПК, без IDE, стоят все обновы.
Помогите разобраться, где проблема или посоветуйте другой компонент, который поддерживает SQLite. Заранее спасибо!
Примечания к файлу:
Windows-Problemberichtserfassung = Windows Problem Reporting
Application Form
в Положение, размеры, выравнивание
Опубликовано · Изменено пользователем Bio HaZaRD
Скажите пожалуйста, как вывести вторую форму на второй монитор, на c++ builder 10.1?
я пытался передать в массив Displays целое число (например 1), но тот ожидает TDisplay.
Заранее спасибо за помощь.