walexw

Пользователи
  • Публикации

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

  • Посещение

О walexw

  • Звание
    Продвинутый пользователь

Информация

  • Пол
    Не определился

Посетители профиля

426 просмотров профиля
  1. Всем спасибо! То что надо.
  2. Вопрос к знатокам SQL: как делается такой трюк? Есть процедура в БД с двумя входящими параметрами. Параметры D1 и D2 - это диапазон дат, за который надо выбрать записи из таблицы. Если оба введены, то вопросов нет, в WHERE пишу FieldDate >= D1 AND FieldDate <= D2 Но D1 и D2 могут быть пустыми (оба или по одному), т.н. открытый диапазон. Как должен быть написан запрос в процедуре, что-бы учитывать это в WHERE для всех случаев? Спасибо. (вариант от текущей даты вычитать (добавлять) 100 лет вместо Null - не подходит)
  3. Да, MS SQL 2008
  4. Всем большое спасибо за помощь! Сам разобрался. Помогло применение двух ДатаСетов Обратиться ко второму селекту смог через ADODataSet2.Recordset := ADODataSet1.Recordset.NextRecordset(RecCount);
  5. Вопрос наполовину по SQL наполовину по Delphi: Есть БД в ней процедура такого вида: SELECT DISTINCT FAM FROM TURNIR WHERE FAM=@par; SELECT DATE, PLAY, SCORE FROM TURNIR WHERE FAM=@par; В отчете (FastReport) первый запрос используется как "шапка" второй - это собственно сам набор данных, игры и счет выбранного человека. Мне необходимо на форме (проект виндовый) увидеть в гриде второй SELECT Если грид через DataSource подключаю к процедуре, то приходит первый. Не могу понять как обратиться к второму. При входе в FastReport там предлагается на выбор ADOQuery1 и соответственно ADOQuery2. И нет проблем. Кто знает как это повторить на форме, подскажите plz. (Да еще, БД не моя, править запрос, разбивать на два или писать новый у меня нет прав.) Спасибо.
  6. У меня второй год пошел этому косяку и нет никаких вариантов решения, кроме как принудительно убирать клаву при потере фокуса у эдит, а вход в следующий эдит сам ее открывает. За два года не встретилось ни одного устройства, где бы не проявился этот косяк. Удивительно, что на форуме почти никто про это не пишет.
  7. Всем спасибо! Буду пробовать.
  8. Пытаюсь разобрать чужой код (проект здоровый, процедур много) По ходу заполняется TreeView, откуда не понятно, надо найти. В процедуре регистрации панели (RegisterSetupPanel) последняя строчка AddTreeTag там заполняется одна строка TreeView (значением TagPath: String), а всего строк 10, значит 10 раз отрабатывает. Внутри RegisterSetupPanel я "стою" в дебаггере, отследить получается только первую строчку, но кто "толкнул" неизвестно. Ссылки на запуск RegisterSetupPanel внутри проекта нет, вот мне и надо найти кто его "толкает". procedure TfrmSetup.RegisterSetupPanel(TagPath: String; aObject: TControl); var Frm: TCustomForm; i: integer; begin Frm := GetParentForm(TControl(aObject)); if (Frm.Width+panLeft.Width)<Screen.Width then if(Frm.Width+panLeft.Width) > Width then Width:= Frm.Width+panLeft.Width; SetActionEnabled(TPanel(aObject), false); for i := 0 to Frm.ComponentCount - 1 do if Frm.Components is TActionList then begin frmSetup.InsertComponent(Frm.Components); Frm.RemoveComponent(Frm.Components); Break; end; aObject.Parent := panMain; aObject.Visible := false; AddTreeTag(nil, TagPath).Data := aObject; end;
  9. Вопрос к знатокам Delphi Можно ли, находясь в процедуре, узнать какая другая процедура ее вызвала. Если ДА, то как? Спасибо.
  10. Проект на Delphi, Seattle Добавляю в таблицу новую запись, в моем варианте она становится первой в запросе. Обновляю listView который ее отображает. Мне надо, чтобы после этого программно отработала процедура клика по этой новой записи. Пишу: listView.Selected.Index := 0; Далее саму процедуру, но не понимаю, что подставить в скобки: listViewItemClickEx(const Sender: TObject; ItemIndex: Integer; const [Ref] LocalClickPos: TPointF; const ItemObject: TListItemDrawable); Подскажите plz.
  11. Способ решить эту проблему я ищу почти год, и хоть на форуме несколько раз упоминались похожие темы, решил создать еще одну, т.к. нет никакого решения (все просмотрел). На форме 2 или больше TEdit, переход с первого на второй по Enter (Next). Все что набрано в первом TEdit, при нажатии любой буквы второго TEdit переносится во второй плюс эта буква (см. скриншот) Все это происходит при включенном на телефоне "подсказчике" слов, но он удобен и огромное количество людей им пользуются. Приложений у меня было несколько. И на C++ и на Delphi. Использовал RAD XE 10 Четыре планшета и три смартфона с Андроидами 4, 5, 6 для тестов. Клавиатуры и родные и Гугл. Все они как близнецы повторяют этот трюк и как избавится от него, никак не могу найти решение. Единственное, что помогает - отключить подсказки в самом телефоне, но это на своем. А те кто скачивают программу из интернета, им как быть? Благодарен за любые советы (подсказки). Сам я ищу возможность обнулить буфер клавиатуры при выходе с одного Эдита и входе в следующий.
  12. rad studio 10 seattle, приложение под андроид. Можно ли из своего приложения узнать, есть ли на устройстве другое приложение по имени, например 'MX Player'? Если ДА, то как? Спасибо!
  13. В консоли та же песня. Английские буквы слушаются, русские без изменений.
  14. БД SQLite Для поиска записей по текстовым полям, для игнорирования регистра использую примерно такую конструкцию: SELECT UPPER(city) FROM table1 WHERE id=1 OR id=100 (это запрос для примера, в реальном запросе UPPER стоит в WHERE) в 1-й записи Paris, отрабатывает PARIS в 100-й записи Париж, отрабатывает Париж (ни в верхний, ни в нижний регистр не переводится) Как сделать, чтобы и англоязычное и русскоязычное заполнение стринговых полей обрабатывалось одинаково правильно? Спасибо!
  15. Поначалу я сам догадался, что где-то надо для Андроида стиль задать. Ошибочно решил, что если включена компиляция под андроид, то и стиль его. Запутался короче. sunike, Vitaldj, спасибо за подсказку, теперь разобрался!