Перейти к содержанию
Fire Monkey от А до Я

Andrey Efimov

Модераторы
  • Постов

    851
  • Зарегистрирован

  • Победитель дней

    129

Весь контент Andrey Efimov

  1. Честно говоря, очень давно копался в этом "движке", но предполагаю, что поиск реализован с использованием "Полнотекстовых индексов (тип FULLTEXT)" (погуглить можно по запросу "Полнотекстовый поиск в MySQL"). Так вот, при такой реализации MySQL просто игнорирует короткие слова (3 или меньше символов).
  2. И вас, друзья, С Новым Годом и Рождеством! (Раньше поздравить не мог, был почти недоступен...)
  3. Gingercat, Спасибо. Главное, чтобы запускалось и работало как надо, а остальное не важно
  4. Народ, подсобите, пожалуйста. Брату задали на С/С++ написать прогу. Я написал на Delphi, а как на C++ такое написать не знаю (повод изучить ещё один язык , но времени пока нет...) Задание: Задан одномерный массив X размер N.Каждый из элементов X заменить средним значением первых i элементов этого массива(задача текущего сглаживания). Код (консольное приложение): program Project1; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; var i, n: integer; s: real; x: array[1..100] of real; begin try Write('n = '); ReadLn(n); s := 0; for i := 1 to n do Begin Write('x(', i, ') = '); Readln(x[i]); s := s + x[i]; x[i] := s / i; end; Writeln; for i := 1 to n do begin WriteLn('|', x[i]:5:2, '|'); end; ReadLn; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end.
  5. TMemo использую для Логирования. Я сделал проще, просто добавил кнопку сохранения всего текста из Мемо в файл. Так отпадает необходимость выделять что-то, да и в моей ситуации будет больше подробностей в логах для анализа действий пользователя.
  6. Знаю, про этот компонент, но платить ещё ~8500 руб., только для того, чтобы помочь другу, для меня совсем не вариант. К тому же, это всё-таки оффтоп (сообщение вообще на рекламное похоже...). FireDac вполне себе справляется с поставленной задачей, просто у друга с компом проблемы, у остальных прога отлично отрабатывает...
  7. Да, вы правы. Пока, это похоже, единственное решение... Но мне оно тоже не подходит, по причине того, что платформенный Memo не подхватывает дизайн (цветовую схему) и соответственно не вписывается в общий дизайн приложения. И ещё один косяк, АвтоСелект в Мемо тоже не отрабатывает как надо...
  8. Ситуация такая: Есть компонент TMemo, вводим в него строчку текста, шириной больше ширины самого компонента. Пытаемся зажав левую кнопку мышки на любой областью строчки выделять текст, продвигаясь на право, но только мы дойдём до края компонента, как выделение прекращается... Пример: Открываем стандартную демку "C:\Users\Public\Documents\Embarcadero\Studio\17.0\Samples\Object Pascal\Multi-Device Samples\User Interface\ControlsDesktop". В демке выбираем вторую вкладку и заменяем первую строчку в компоненте TMemo на "Cross-platform solution available on Windows and Mac OS X Test1Test2Test3Test4Test5Test6Test7Test8Test9". Запускаем и пытаемся выделяя мышкой текст, дойти до "...Test9". Я могу выделить только "Cross-platform solution available on Windows and Mac OS X Te". Но было замечено, что через раз выделение тупит и всё-таки начинает выделять дальше, но понять почему это происходит не всегда, я не смог Вопросы: У всех такая фигня? Кто знает решение? p.s. Писать в баг-трекер не предлагать, надоело уже... ещё прошлые баги висят, всё никак не починят их... Платформа: Windows 7 Среда: Delphi X Seattle (без апдейта)
  9. Разобрались. В 64 битной системе есть два ODBC(64 и 32). Так вот, запустили восстановление системы и 32 битное приложение заработало как часы, 64 приложение так и не работает. Вот два важных файла: To setup an ODBC link for 32bit application you must use C:\Windows\SysWOW64\odbcad32.exe To setup an ODBC link for 64bit application you must use C:\Windows\System32\odbcad32.exe При попытке запуска этих файлов выяснилось, что файл "C:\Windows\SysWOW64\odbcad32.exe" заработал нормально, благодаря чему и заработало моё 32 битное приложение, а файл "C:\Windows\System32\odbcad32.exe" не работает, выдавая ошибку жмём "Ок" и видим ещё одну ошибку Т.е. слетел драйвер для 64 битной системы. По причине того, что 32 битное приложение заработало, было решено не заморачиваться и не искать этот драйвер, чтобы переустановить, а оставить всё как есть Но, если кто знает ещё что-то или где достать рабочий драйвер, то пишите. p.s. Всем ещё раз спасибо
  10. Пообщался ещё с Дмитрием, вот его ответы: По поводу работы на 2003 и 2016 офисе. Если речь про ошибку "Источник данных не найден ...", то указанный ODBC драйвер не найден. Если речь про ошибку "Обновление невозможно ...", то ХЗ - Google в помощь и желательно на eng. Он считает, что проблема именно в драйвере. Дал, ещё полезную ссылку в справку: http://docwiki.embarcadero.com/RADStudio/Seattle/en/DBMS_Environment_Reports_%28FireDAC%29 хотя справка, это первое место куда иду я, чтобы найти ответы на вопросы и по этой ссылке по моему уже был (сейчас не грузит страничку что-то...)
  11. Ну, значит проблема 100% в компе пользователя... Спасибо ещё раз.
  12. О_о, вот спасибо. Но тут я примерно представляю в чём беда... устаревшая версия офиса, для подключения следует указывать XLS файл, но не XLSX файл. Вот полезная ссылка, мне пригодилась , может ещё кому-то пригодится: Microsoft Excel 2007 ODBC Driver connection strings Если у кого-то установлен 2007 офис, попробуйте пожалуйста приложение!
  13. Из моих наблюдений за 2014-2015 год, вакансии "Программист Delphi" на рынке есть, но их мало и требования в них просто жесть, т.е. работодатель хочет сразу получить очень опытного программера и платить ему копейки. Они не допускают даже возможности стажировки с целью дальнейшего принятия на постоянную основу... Я в далёком 2004, мечтал, что на Делфи можно будет писать под смартфоны. Сбылось, долго... но сбылось А все кто пытается похоронить Делфи пускай лесом идут... Не нравится, не лезь в чужую песочницу...
  14. Огромное всем спасибо. Будем теперь точно разбираться, в чём дело, у пользователя на компе... p.s. Тему позже закрою.
  15. Открывает, без проблем. Мне на sql.ru ответил Дмитрий Арефьев, он тоже проверил у себя, сказал всё работает... видимо проблема именно у пользователя на компе... Вот файлы: Исходники: https://drive.google.com/file/d/0BwEZB8sRo0DSOG00WkJKcWp1cEk/view?usp=sharing EXE(32 bits)+Excel файл: https://drive.google.com/file/d/0BwEZB8sRo0DSZ2FUMndsandiNTQ/view?usp=sharing Выбираете Excel файл, жмёте "Обработка Xls". (это на всякий случай, не подумайте ничего плохого ПО временно написано конкретно под этот Excel файл. Буду признателен за тесты на 64 битных системах. p.s. Прошу, строго по коду не судить, это вообще "рабочий" вариант приложения... Потом всё чистится (от всяких дубликатов и т.п.) и приводится в порядок.
  16. Приветствую. Необходимо получить данные из экселевского файла и обработать их (возможно с обратной перезаписью). Всё хорошо работает у меня на 32 битной машине с W7 на борту и Delphi X Seattle. Программку необходимо передать другому человеку, у него W7 64 бита. Перекомпилировал под 64, кидаю ему, запускает и ошибка "[FireDAC][Phys][ODBC][Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию.". Причём передаю xlsx файл, который работает у меня. Вот ещё попробовали, человек пересохраняет этот файл в xls и запускает мою 32 битную версию, через раз программа кушает этот файл... или выдаёт такую ошибку ""[FireDAC][Phys][ODBC][Microsoft][Драйвер ODBC Excel] Обновление невозможно. База данных или объект доступны только для чтения."" на подключении установлено: ODBCDriver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)} DriverID=ODBC Сам драйвер на 64 битной машине установлен и прописан. В чём может быть проблема? АП (19.11.15). Приложение удалось проверить ещё на 3-х 32 битных системах, везде всё работает как часы, проблема конкретно в 64 битной системе...
  17. Когда была такая задача, то реализовывал разными способами, например, Создаём RC файл (файл ресурсов) и деплоим в приложение или использовал хранение картинок в базе, но только при условии, что они совсем маленькие. Важно заметить, что оба этих способа, единожды, при запуске приложения, скушают оперативу. В вашем случае: 300 x 70 = 21 000 КБ = 20,51 МБ Значит к разовому (при каждом запуске приложения) потреблению оперативы прибавляем ещё 20 МБ. В целом это нормально и в обоих случаях, доступ к картинкам будет достаточно быстрый, т.к. сами по себе, картинки маленькие. В моём случае было 25МБ, картинки были больше и для ускорения загрузки, я кэшировал их на диске, т.е. если картинку хотя бы раз запросили, то она выгружается из базы на диск и в дальнейшем, при запросах, проверяется сначала на диске, а потом уже лезет в базу, если картинка не найдена в кэше. а вообще, как я уже писал в одной из статей: Везде свои плюсы и свои минусы... Как то так... p.s. Примерно вот так делается через файл ресурсов (ссылки на мой блог(не реклама): Игра "Одинаковые картинки" и Пишем простейшую игру (головоломку) для детей p.s.2. По поводу приложения работающего с картинками в базе, ссылок не дам, т.к. это был коммерческий заказ со стороны...
  18. Мне кажется, было бы полезнее дать ссылку на небольшую заметку Ярослава, в конце концов, пользуйтесь поиском, заметка лежит рядом с этой темой.... Получаем разрешение экрана устройства, логические и физические размеры экрана в FireMonkey
  19. Обычно, не достаточно просто получить рут, права нужно ещё запросить, на Java это делается примерно так: Process c = Runtime.getRuntime().exec("su"); и только после подтверждения запроса можно выполнять операции. Есть, ещё один нюанс, некоторые файлы имеют права доступа "RW-R--R--", скорее всего, чтобы их изменить, придётся менять сначала права доступа.
  20. Скорее всего, файлы выложат после окончания тура. В общем, как обычно они делали. Другое дело, что особо нового там ничего не выловить... На XE7 было интереснее... p.s. Презентацию Ярослава надо достать, он про сервисы рассказывал
  21. Версия 1.5 (Т.к. исходники предыдущей версии утеряны, было принято решение написать всё заново.) Приложение ориентированно на людей, которые понимают для чего оно предназначено. В противном случае, ошибки, типо неправильного шаблона для имени не избежать. Позже, может быть придумаю, как это всё учесть. Для использования, как минимум, необходимо подготовить файлы, которые планируется занести в файл ресурсов. Изменения в версии 1.5: Всё написано заново Добавлена возможность выбирать как определенную папку (с возможностью сканирования подпапок), так и отдельно несколько файлов. Добавлена возможность выбора места сохранения (с возможностью дозаписать новые файлы в старый RC файл) Возможные длительные операции вынесены в отдельные потоки Во время длительных операций осуществляется оповещение в виде AniIndicator'a Скачать с Google Drive p.s. Если вы обнаружили баг, то отпишитесь мне, пожалуйста.
  22. AnsiLowerCase(Question);
  23. Альтернативный вариант: Скрываем форму. Перед тем как создать форму, проверяйте её на существование. Если существует, то удаляем и заново создаём. Например, вот так, с фреймами: procedure TForm1.Button1Click(Sender: TObject); begin if FFrame <> nil then begin FFrame.DisposeOf; FFrame := nil; end; FFrame := TFrame2.Create(Self); FFrame.Parent := Self; FFrame.Name := 'TFrame10'; FFrame.bCloseFrame.OnClick := FrameFreeAndNil; end; procedure TForm1.FrameFreeAndNil(Sender: TObject); begin FFrame.Visible := False; end;
  24. И как, после проделанных операций, запускается? p.s. А версия среды какая?
×
×
  • Создать...