-
Постов
100 -
Зарегистрирован
-
Посещение
Весь контент walexw
-
Добрый день! Кто-нибудь делал на RAD-studio (хоть какой нибудь), реально работающее приложение под Windows CE. Мне нужно сделать прогу для сканера, на сканере Windows CE, интересует можно ли это замастрячить на рейде и потом задеплоидь на устройство, ну и то-бы все это работало. Если у кого есть такой опыт - поделитесь. Спасибо.
-
Вопрос к знатокам SQL: как делается такой трюк? Есть процедура в БД с двумя входящими параметрами. Параметры D1 и D2 - это диапазон дат, за который надо выбрать записи из таблицы. Если оба введены, то вопросов нет, в WHERE пишу FieldDate >= D1 AND FieldDate <= D2 Но D1 и D2 могут быть пустыми (оба или по одному), т.н. открытый диапазон. Как должен быть написан запрос в процедуре, что-бы учитывать это в WHERE для всех случаев? Спасибо. (вариант от текущей даты вычитать (добавлять) 100 лет вместо Null - не подходит)
-
Всем большое спасибо за помощь! Сам разобрался. Помогло применение двух ДатаСетов Обратиться ко второму селекту смог через ADODataSet2.Recordset := ADODataSet1.Recordset.NextRecordset(RecCount);
-
Вопрос наполовину по 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. (Да еще, БД не моя, править запрос, разбивать на два или писать новый у меня нет прав.) Спасибо.
-
У меня второй год пошел этому косяку и нет никаких вариантов решения, кроме как принудительно убирать клаву при потере фокуса у эдит, а вход в следующий эдит сам ее открывает. За два года не встретилось ни одного устройства, где бы не проявился этот косяк. Удивительно, что на форуме почти никто про это не пишет.
-
Пытаюсь разобрать чужой код (проект здоровый, процедур много) По ходу заполняется 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;
-
Вопрос к знатокам Delphi Можно ли, находясь в процедуре, узнать какая другая процедура ее вызвала. Если ДА, то как? Спасибо.
-
Проект на Delphi, Seattle Добавляю в таблицу новую запись, в моем варианте она становится первой в запросе. Обновляю listView который ее отображает. Мне надо, чтобы после этого программно отработала процедура клика по этой новой записи. Пишу: listView.Selected.Index := 0; Далее саму процедуру, но не понимаю, что подставить в скобки: listViewItemClickEx(const Sender: TObject; ItemIndex: Integer; const [Ref] LocalClickPos: TPointF; const ItemObject: TListItemDrawable); Подскажите plz.
-
Способ решить эту проблему я ищу почти год, и хоть на форуме несколько раз упоминались похожие темы, решил создать еще одну, т.к. нет никакого решения (все просмотрел). На форме 2 или больше TEdit, переход с первого на второй по Enter (Next). Все что набрано в первом TEdit, при нажатии любой буквы второго TEdit переносится во второй плюс эта буква (см. скриншот) Все это происходит при включенном на телефоне "подсказчике" слов, но он удобен и огромное количество людей им пользуются. Приложений у меня было несколько. И на C++ и на Delphi. Использовал RAD XE 10 Четыре планшета и три смартфона с Андроидами 4, 5, 6 для тестов. Клавиатуры и родные и Гугл. Все они как близнецы повторяют этот трюк и как избавится от него, никак не могу найти решение. Единственное, что помогает - отключить подсказки в самом телефоне, но это на своем. А те кто скачивают программу из интернета, им как быть? Благодарен за любые советы (подсказки). Сам я ищу возможность обнулить буфер клавиатуры при выходе с одного Эдита и входе в следующий.
-
rad studio 10 seattle, приложение под андроид. Можно ли из своего приложения узнать, есть ли на устройстве другое приложение по имени, например 'MX Player'? Если ДА, то как? Спасибо!
-
В консоли та же песня. Английские буквы слушаются, русские без изменений.
-
БД SQLite Для поиска записей по текстовым полям, для игнорирования регистра использую примерно такую конструкцию: SELECT UPPER(city) FROM table1 WHERE id=1 OR id=100 (это запрос для примера, в реальном запросе UPPER стоит в WHERE) в 1-й записи Paris, отрабатывает PARIS в 100-й записи Париж, отрабатывает Париж (ни в верхний, ни в нижний регистр не переводится) Как сделать, чтобы и англоязычное и русскоязычное заполнение стринговых полей обрабатывалось одинаково правильно? Спасибо!
-
Все сделал как научили. Зашел в Edit Custom Style, там все просто, перенес текст влево. В проекте появился новый стиль, мне все понравилось, а главное просто на удивление. Но это оказалась половина истории. В мастер форме и винде действительно текст слева, а закачиваю приложение в смартфон - все по старому, кнопка слева, текст справа. Я сегодня уже как только не пробовал, на андроиде не слушается. В чем грабли?
-
TRadioButton [TRadioButton] Как разместить текст TRadioButton слева от круга?
walexw опубликовал вопрос в Компоненты
Можно ли у компонента TRadioButton текст разместить слева? Если ДА, то как? Спасибо! -
Эта строчка просто "убила" раскраску по умолчанию (зеленую) сделав Детейл черным, хотя в коде написано TAlphaColorRec.Red;
-
Раньше писал на С++, сейчас пробую на Дельфи. Не получается простая вещь. Надо выделить Detail по признаку lViewTour.BeginUpdate; lViewTour.Items.Clear; while not FDQuery.Eof do begin lvItem := lViewTour.Items.Add; lvItem.Text := FDQuery.FieldByName('name').AsString; lvItem.Detail := FDQuery.FieldByName('city').AsString; lvItem.Data['status'] := 'normal'; if (FDQuery.FieldByName('status').AsInteger = 3) then begin lvItem.Data['status'] := 'red'; end FDQuery.Next; end; FDQuery.Close; lViewTour.EndUpdate; lViewTour.Resize; Дальше написал procedure Tfrm.lViewTourUpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); var TextObject: TListItemText; begin TextObject := AItem.Objects.FindDrawable('status') As TListItemText; if (TextObject = nil) then begin TextObject := TListItemText.Create(AItem); TextObject.Name := 'status'; end; TextObject.Visible := false; if (TextObject.Text = 'red') then begin AItem.Objects.DetailObject.TextColor := TAlphaColorRec.Red; AItem.Objects.TextObject.TextColor := TAlphaColorRec.Red; end end; По факту, у нужных записей текст перекрашивается в красный, а Детейл остается черным. Мне же нужно именно Детейл перекрасить. В чем ошибка? На С++ я применял TListViewItem::TListViewItemObjects * _objects = (const_cast<TListViewItem*>(AItem))->Objects; И обходился без lvItem.Data['status'] Как заставить Дельфи окрасить Детейл? Спаибо!
-
Можно ли изменить цвет холста TMemo не прибегая к стилям? Как вариант попробовал цветной прямоугольник под TMemo подложить и выставил прозрачность. Для примера вроде получилось, но как только выставил TMemo - Align отличный от None, TMemo тут же опять становится белым игнорируя прозрачность. В чем смысл таких заморочек и что посоветуете по моему вопросу? Спасибо!
-
Разместил приложение в GooglePlay (делал первый раз, поэтому столько вопросов) В разделе устройства, подтвердил все предложенные модели, их оказалось больше тысячи. Естественно, после установки, сам же попробовал установить программу на свои устройства. На смартфон программа встала сходу. Но... Есть у меня 10-ти дюймовый планшет Perfeo (китай), на него программа отказывается устанавливаться. Говорит: это не мобильное устройство. Симки в планшете нет, но два гнезда предусмотрены. Установка хочет работать только с мобильным устройством, что я сделал не так? Как подправить ситуацию? Если планшет соединить проводом к компу, программа через RAD studio ставится без проблем. Подскажите.
-
Вопрос к знатокам GooglePlay Я первый раз разместил приложение в GooglePlay. Оно состоит из пустой базы данных и собственно самого приложения. Не сразу, но все получилось. Сейчас я доработал программу, добавил еще один отчет. Надо выпускать вторую версию. Вопрос, как мне правильно сделать? Те кто скачал первую версию, должны только код обновить до второй и не тронуть БД которую набрали на первой версии. А те кто новые, и увидят программу сразу со второй версии должны получить ее и пустую БД. Как такой трюк делается? Подскажите кто делал. Спасибо.
-
ZuBy, спасибо, все так и сделал, получилось то что надо!