-
Постов
222 -
Зарегистрирован
-
Посещение
-
Победитель дней
5
Весь контент Вадим Смоленский
-
Писал на Delphi 10.2 Tokyo под Windows. У тестеров приложение валится при первой же попытке обращения к БД с сообщением "unable to open database file". У меня на компе всё нормально. Файл sqlite3.dll версии 3.21.0.0 в дистрибутив включен, кладется рядом с исполнимым файлом. Что может быть не так?
-
В своем VCL-проекте я использовал оригинальный способ застраховаться от повторного запуска приложения. Обычно это делают через Mutex. Но умные люди на experts-exchange.com много лет назад посоветовали мне следующее: // в главном окне: protected procedure CreateParams(var Params: TCreateParams); override; procedure TMyApp.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); Params.WinClassName:='MyAPP String ID'; end; // В файле .dpr: var AWnd, A1Wnd: HWND; AWnd:=FindWindow('MyApp String ID',nil); if IsWindow(AWnd) then begin A1Wnd := GetWindow(AWnd, GW_OWNER); if IsWindow(A1Wnd) then AWnd := A1Wnd; ShowWindow(AWnd, SW_RESTORE); SetForegroundWindow(AWnd); end else begin Application.Initialize; ....... end Способ хорош тем, что он не просто блокирует повторный запуск, а выводит уже запущенное приложение на передний план, тычет юзера в него носом. Но при переходе на FireMonkey возникла закавыка: компилятору не нравится TCreateParams. Говорит: undeclared identifier. Чем бы его заменить?
-
windows AutoSize работает иначе под Tokyo!
Вадим Смоленский ответил Вадим Смоленский вопрос в TLabel
FREEFAR, спасибо, ApplyStyleLookup прекрасно помог! (пробовал здесь поаккуратнее переписать ваш код, но скрипту почему-то не понравилось) -
windows AutoSize работает иначе под Tokyo!
Вадим Смоленский ответил Вадим Смоленский вопрос в TLabel
> а этап выравнивания это когда? У меня так: есть некий фрейм, до поры невидимый. По определенному событию (щелчок по кнопке) все TLabel на фрейме заполняются текстом и свойство Visible фрейма переводится в True. В Tokyo получается так, что пока фрейм невидим, размеры TLabel не меняются, невзирая на AutoSize. Какой здесь может быть другой момент для расчетов? -
Перейдя с Берлина на Токио, столкнулся с неприятным феноменом. Раньше, выводя на экран форму с обилием TLabel, которые нужно было заполнить текстом и выровнять, я спокойно ставил везде AutoSize=True, присваивал нужные значения полям Text, после чего ширина каждого TLabel принимала новое значение, и мой код их красиво выравнивал. Теперь же ширина не меняется до полной отрисовки на экране всего и вся. Соответственно, на этапе выравнивания код оперирует со значениями ширины, которые были еще на этапе дизайна. Как следствие - всё наперекосяк! Что делать?
-
Спасибо. Но нельзя ли поподробнее про хук на клавиатуру? Что это за зверь?
-
Windows, Berlin. Когда TWebBrowser на форме получает фокус, он начинает перехватывать все нажатия клавиш. До FormKeyDown управление уже не доходит. Отключение свойства браузера CanFocus не помогает, своего события OnKeyDown у него нет. Как быть? В идеале хотелось бы оставить браузеру навигационные клавиши (стрелки, PgDn, PgUp, Home, End), но все остальные отправлять на форму. Возможно ли это?
-
Работаю в Windows с FireDAC (SQLite). При каждом обращении к базе данных экранный курсор превращается в песочные часы с надписью SQL. Пользователи моего продукта далеки от программирования и ни про какой SQL не слыхивали, им это совершенно ни к чему. Как мне подавить этот феномен? В свойствах TFDConnection я ничего на эту тему не нахожу...
-
Пока эксперты размышляли, нашел решение сам. Эффекты нужно было просто разнести по времени - мне ведь не нужна тень, пока идет анимация, тень можно налепить по ее окончании. Два обработчика событий для TFloatAnimation решили вопрос: по OnProcess свойство Enabled компонента TShadowEffect устанавливается в False; по OnFinish - в True.
-
Этот вопрос сложился из двух, которые я здесь уже задавал, но ответов не получил. Первый касался странного поведения TWebBrowser. Второй - ненужного мелькания в виде белого квадрата при вызове TPopup и TPopupMenu. Теперь оказалось, что эти проблемы связаны. Мне удалось их воспроизвести в маленьком демонстрационном проекте (Windows), который прилагаю в виде зипа и скриншота. Кнопка Hide/Show прячет и снова показывает TWebBrowser. Но если хоть один раз (когда TWebBrowser виден) вызвать TPopupMenu или TPopup, это перестает работать - TWebBrowser отказывается прятаться. Характерно еще то, что в момент вызова TPopupMenu или TPopup в левом верхнем углу формы на долю секунды появляется непрошенный белый квадрат, и на эту же долю секунды TWebBrowser пропадает. Если минимизировать форму в трей и снова открыть (при условии, что TWebBrowser при этом как бы не виден, т.е. после нечетного числа щелчков по кнопке), то функциональность восстанавливается. Иными словами, проблема в отрисовке. Своими силами справиться не смог. Буду признателен за дельный совет. Побороть белый квадрат тоже очень хотелось бы, с ним некрасиво. TWebBrowserProblem.zip
-
Работаю в Berlin, делаю приложение под Windows. При каждом вызове метода Popup для TPopupMenu, а также при создании и выводе на экран компонента TPopup, в левом верхнем углу формы на долю секунды появляется белый прямоугольник 50х50 пикселей. Нельзя ли как-нибудь это явление подавить?
-
windows Выравнивание иконки в TTabItem
Вадим Смоленский опубликовал вопрос в Настройки внешнего вида
В Object Inspector подгружаю ImageList к TTabControl, иду в отдельные TTabItem, выбираю номера для ImageIndex. Иконки выводятся прижатыми к левому краю. Как выровнять их по центру? Текста не предусматриваю, будут только иконки. -
windows TMainMenu, ограниченное по ширине
Вадим Смоленский ответил Вадим Смоленский вопрос в TMainMenu
Вон оно что... Насчет TMenuBar и сам уже думал, но здесь в другой теме написали, что это имитация, которая подглючивает. Хотелось бы, конечно, знать, чего в этом смысле нужно опасаться. А впрочем, попробую. -
windows TMainMenu, ограниченное по ширине
Вадим Смоленский ответил Вадим Смоленский вопрос в TMainMenu
> Меню RAD Studio сделано на TActionMainMenuBar. У себя в Tool Palette я такого компонента не наблюдаю. Где его добывают? -
Если главное окно приложения для Windows выполнено как MDI и занимает почти весь экран, то пункты главного меню концентрируются слева, оставляя справа длинную пустую полосу. Этого пространства жалко, его можно было бы использовать с пользой - как, собственно, и сделано в интерфейсе RAD Studio: после пункта меню Help идет вертикальная полоска из точек, а дальше иконки, боксы поиска и прочее хозяйство. Как это можно сделать?
-
К сожалению, истинную причину так и не смог установить. Но обратил внимание, что упомянутый белый прямоугольник исчезает, лишь только фокус перейдет на другое окно. Поэтому поступил просто: при переходе на другой режим сначала закрываю проблемное окно, а после отрисовки снова его открываю. Проблема решена ценой некоторого лишнего мелькания.