striker
-
Постов
25 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные striker
-
-
17 часов назад, slav_z сказал:
вы успеваете его свернуть до первого срабатывания таймера?
да
успел проверить правда на XP и XE6
-
18 часов назад, slav_z сказал:
пример во вложении.
Даже в Вашем примере при первом срабатывании таймера если нажать на кнопку в маленьком окне, разворачивается второе главное окно.
При последующих срабатываниях уже всё хорошо, главная форма не разворачивается.
-
slav_z,
спасибо, но не получилось.
Всё так же, либо я как-то не так применяю.
Создал процедуру, объявил её.
Она вызывается в OnClose? Или как?
7 часов назад, #WAMACO сказал:Используйте механизм уведомлений, которые всплывают внизу, в трее.
Не подскажете какой именно? TnTRayIcon?
7 часов назад, dmokrushin123 сказал:Как понял вопрос не в закрытии всплывающего окна, а в том что показывается основное окно.
Каким образом у вас вообще показывается всплывающее окно если приложение свернуто (минимизировано) ?
Для того чтобы увидеть показать всплывающее окно нужно развернуть приложение (в этом случае увидите и главную форму)
У меня сразу раскрывается главное окно, принудительно я его не разворачиваю.
И да, кстати... как бы это странно не звучало, но приложение используется только под виндой.
-
Всем привет!
Delphi XE6 FMX
Есть приложение, главная форма на весь экран.
Пользователь сворачивает его.
Появляется всплывающее сообщение по таймеру - маленькая форма (Form1.Show).
Проблема:
При свернутом приложении когда появляется сообщение, закрываешь эту маленькую форму и разворачивается главное окно программы, а нужно просто закрыть уведомление и дальше работать с другими программами.
Как можно решить? Спасибо! -
MySQL, FireDac, XE6, FMX, Windows
Есть Query, Grid, по двойному щелчку на гриде открывается форма редактирования записи.
Update делается по ID из Query.
Так вот, на одном компе иногда что-то происходит и обновляется не та запись, а соседняя...
Форма модальная. Интересно, в какой момент "соскакивает" курсор на записи? Или что-то ещё.
Лучше конечно считывать ID в переменную при открытии формы и потом обращаться к ней, а я при Update обращаюсь к Query...
-
В 23.12.2017 в 15:05, krapotkin сказал:
чем плох просто список ключей? хочешь добавил, хочешь убавил. и отрисовка селектед все равно должна по какому-то списку идти
Не понял что такое просто список ключей...
Точнее в интерфейсе как это будет.
-
Всем привет!
Задача: в Grid записи из БД, FDQuery.Нужно пользователю чекбоксами выделить нужные записи в гриде, чтобы программа потом по ним пробежалась и выполнила определенные действия.
Никак не могу добиться.
Неужели лепить временную таблицу с доп.полем (выделено/нет) чтобы чекколумн привязать?
Подскажите, как можно реализовать это?
-
if (zqOneDay5.FieldByName('TwoHoursKind').Value=2) and (Column = TGrid(Sender).Columns[1]) then begin TextRect := Bounds; TextRect.Left := TextRect.Left+2; TextRect.Right:= TextRect.Right-1; TextRect.Top := TextRect.Top-(TextRect.Bottom-TextRect.Top)+1; TextRect.Bottom :=TextRect.Bottom-2; TextRect.Inflate(-HorzTextMargin, -VertTextMargin); Canvas.Stroke.Thickness:=2; Canvas.Stroke.Color:=TAlphaColorRec.Blue; Canvas.DrawRect(TextRect, 0, 0, AllCorners, 1); Canvas.Stroke.Thickness:=1; TGrid(Sender).DefaultDrawColumnCell(Canvas, Column, Bounds, Row, Value, State); end;
Вот, что получилось самое лучшее.
Как убрать белую линию-разделитель ячеек по горизонтали?
-
Пробовал через OnDrawColumnCell.
Пока не получается.
-
Товарищи, дайте наводку как хотя бы обвести рамкой сгруппированные подряд 2 ячейки (как на скрине).
Спасибо!
-
Всем привет!
Нужен совет.
Есть Grid, в нем расписание дня.
В БД каждая строка это отдельная запись.
Нужно как-то визуально сделать подобие объединения ячеек в Excel.
Т.е. нужно занять расписание на 2 часа.При этом функционал по событиям для строки "второго часа" должен быть недоступен.
Может хотя бы границу стирать, т.е. оставлять значение в верхней ячейки, а нижнюю просто не отображать.
Как это лучше сделать?FMX, Windows, Delphi XE6, MySQL
-
Нашел...
У Query в событии AfterScroll у меня обновлялись связанные таблицы...
Это и вешало всё.
Перенес на Grid.OnSelectCell
Как проходил мимо этого - непонятно.
Время кстати такое было:
ЦитатаНачало: 0 ms
Конец: 252 ms
Последняя запись: 364 ms
Всего записей: 261
Старт заполнения StringGrid: 365 ms
Финиш заполнения StringGrid: 28741 msВ Delphi 7 алгоритм заполнения через DataSource другой? Делал там аналогично - такого не наблюдается.
enatechno, krapotkin, спасибо большое за участие!
-
Да, на хостинге лежит
-
enatechno, спасибо!
Действительно в Вашем примере и у меня моментально загружается...
Проблема не в Grid и не в запросе, а получается в их соединении.
Попробую ещё раз с нуля создать другой запрос и другой Grid. Непонятно...
-
kraporkin, спасибо!
Проблема не решилась. Изначально я убрал LiveBindings , т.к. думал тормозит заливка грида из-за него.
А заливка даже ручная, какую я написал всё-равно тормозит и заливает в грид секунд 15-20...
MainForm.StringGrid1.BeginUpdate; try MainForm.qClients.First; for i:=0 to MainForm.qClients.RecordCount-1 do begin MainForm.StringGrid1.RowCount:=MainForm.StringGrid1.RowCount+1; MainForm.StringGrid1.Cells[0, i] :=MainForm.qClients.FieldByName('FAM').AsString; MainForm.StringGrid1.Cells[1, i] :=MainForm.qClients.FieldByName('IM').AsString; MainForm.StringGrid1.Cells[2, i] :=MainForm.qClients.FieldByName('ID').AsString; MainForm.zqClients.Next; end; finally MainForm.StringGrid1.EndUpdate; end;
-
Это не так удобно. Конечно можно написать свой обработчик/компонент чтобы к любому гриду так цепляться, но я пока ещё не достиг такого уровня ))
Тем более если были стандартные решения (тот же DataSource)
Мне нужно: ходить по гриду, вызывать на редактирование запись по двойному щелчку, показывать связанные с основной таблицы в окне с главным гридом.
LiveBindings действительно загрузку в Grid вешает. Заливается Grid руками намного быстрее.
Приму ещё советы по упрощению этих проблем ))
-
krapotkin, спасибо!
А при ручном заполнении AfterScroll по Query при перемещении по записям Grid как сделать?
Т.е. раньше я ходил по Grid и выполнялся Query.AfterScroll
-
Grid2.BeginUpdate; try for i:=0 to qClients.RecordCount-1 do begin XXX:=qClients.Fields[0].AsString; qClients.Next; end; finally Grid2.EndUpdate; end;
Что должно быть вместо XXX?
-
Посмотрел, на Берлин пока переходить не вариант... куча несостыковок.
Весь мозг сломал как в этой версии XE6 обойтись без LiveBindings...
Как руками заполнить Grid?
Есть Query и Grid.
Пробовал по-разному - то одного не знает, то другого
-
enatechno, спасибо!
Через LiveBindings.
Если переходить на Berlin - Grid'ы надо как-то будет переделывать нынешние?
-
Нагуглил тут про FMX.Types.GlobalUseDirect2D := False;
Не помогло. Что ещё отключить можно?
Собственно приложение задумывалось быть кросслпатформенным. Но сейчас используется только под Windows.
Так что все "навороты" можно поотключать, если в этом дело.
-
да...
Delphi XE6
-
Добрый день!
Работаю с MySQL
Подключаюсь через FireDac.
FDQuery+FDConnecton+Bind+GridЗапрос выполняется моментально, но как только подключаю Grid - начинает висеть. Grid заполняется очень долго - секунд 12-15.
Причем результат запроса - всего 230 строк, хоть и join присутствует.
Куда копать? Может дело быть именно в FMX? -
Всем привет!
Я новичок в FMX.
Сталкиваюсь с проблемами различий с VCL.
Некоторые проблемы:
1) Текст в edit мышью невозможно выделить, выделение скачет.
Думаю связано с заточкой под тач, как починить и возможно ли - нигде не нашёл.
2) Покрасить грид (строчку) в зависимости от значения можно?
В VCL это делается OnDrawColumnCell
Спасибо!
ID записи из таблицы
в Хранение данных в TComboBox
Опубликовано
Всем привет!
Глупый вопрос.
Есть в БД таблица, допустим clients, в ней поля: ID, FIO.
Я заполняю Comboboх строчками из поле FIO.
Как мне быстро узнавать ID в БД у выбранной FIO?
Сейчас фильтрую Query по значению, которое находится в выбранной строчке Combobox, но это не дело же...