-
Постов
100 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные walexw
-
-
Всем спасибо! То что надо.
-
Вопрос к знатокам SQL: как делается такой трюк?
Есть процедура в БД с двумя входящими параметрами.
Параметры D1 и D2 - это диапазон дат, за который надо выбрать записи из таблицы.
Если оба введены, то вопросов нет, в WHERE пишу FieldDate >= D1 AND FieldDate <= D2
Но D1 и D2 могут быть пустыми (оба или по одному), т.н. открытый диапазон.
Как должен быть написан запрос в процедуре, что-бы учитывать это в WHERE для всех случаев?
Спасибо.
(вариант от текущей даты вычитать (добавлять) 100 лет вместо Null - не подходит) -
Да, MS SQL 2008
-
Всем большое спасибо за помощь!
Сам разобрался. Помогло применение двух ДатаСетов
Обратиться ко второму селекту смог через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'?
Если ДА, то как?Спасибо!
-
В 18.10.2016 в 19:44, Евгений Корепов сказал:
Выполните этот запрос в консоли сервера, будет работать UPPER?
В консоли та же песня. Английские буквы слушаются, русские без изменений.
-
БД SQLite
Для поиска записей по текстовым полям, для игнорирования регистра использую примерно такую конструкцию:
SELECT UPPER(city) FROM table1 WHERE id=1 OR id=100 (это запрос для примера, в реальном запросе UPPER стоит в WHERE)
в 1-й записи Paris, отрабатывает PARIS
в 100-й записи Париж, отрабатывает Париж (ни в верхний, ни в нижний регистр не переводится)
Как сделать, чтобы и англоязычное и русскоязычное заполнение стринговых полей обрабатывалось одинаково правильно?Спасибо!
-
Поначалу я сам догадался, что где-то надо для Андроида стиль задать. Ошибочно решил, что если включена компиляция под андроид, то и стиль его.
Запутался короче.
sunike, Vitaldj, спасибо за подсказку, теперь разобрался! -
В 13.10.2016 в 12:31, Andrey Efimov сказал:
Если необходимо разместить текст слева от точки/кружочка, то придётся отредактировать стиль компонента. Кидаете компонент на форму, правый клик по нему и далее Edit Custom Style или Edit Default Style, далее уже редактируете стиль.
Все сделал как научили. Зашел в Edit Custom Style, там все просто, перенес текст влево. В проекте появился новый стиль, мне все понравилось, а главное просто на удивление.
Но это оказалась половина истории. В мастер форме и винде действительно текст слева, а закачиваю приложение в смартфон - все по старому, кнопка слева, текст справа.
Я сегодня уже как только не пробовал, на андроиде не слушается. В чем грабли? -
Можно ли у компонента TRadioButton текст разместить слева?
Если ДА, то как?
Спасибо! -
14 часов назад, ZuBy сказал:
AItem.Objects.DetailObject.IsDetailText := false;
Эта строчка просто "убила" раскраску по умолчанию (зеленую) сделав Детейл черным, хотя в коде написано 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']
Как заставить Дельфи окрасить Детейл?
Спаибо! -
В 07.10.2016 в 16:23, Brovin Yaroslav сказал:
- Либо вложить TMemo в TRectangle
- Либо использовать выравнивание Content, а не Client
Ярослав, спасибо! Вставил Мемо в Ректангель, получилось то что надо!.
-
Можно ли изменить цвет холста TMemo не прибегая к стилям?
Как вариант попробовал цветной прямоугольник под TMemo подложить и выставил прозрачность.
Для примера вроде получилось, но как только выставил TMemo - Align отличный от None, TMemo тут же опять
становится белым игнорируя прозрачность.
В чем смысл таких заморочек и что посоветуете по моему вопросу?
Спасибо! -
Разместил приложение в GooglePlay (делал первый раз, поэтому столько вопросов)
В разделе устройства, подтвердил все предложенные модели, их оказалось больше тысячи.
Естественно, после установки, сам же попробовал установить программу на свои устройства.
На смартфон программа встала сходу. Но...
Есть у меня 10-ти дюймовый планшет Perfeo (китай), на него программа отказывается устанавливаться.
Говорит: это не мобильное устройство.
Симки в планшете нет, но два гнезда предусмотрены.
Установка хочет работать только с мобильным устройством, что я сделал не так?
Как подправить ситуацию?
Если планшет соединить проводом к компу, программа через RAD studio ставится без проблем.
Подскажите. -
Вопрос к знатокам GooglePlay
Я первый раз разместил приложение в GooglePlay. Оно состоит из пустой базы данных и собственно самого приложения.
Не сразу, но все получилось. Сейчас я доработал программу, добавил еще один отчет. Надо выпускать вторую версию.
Вопрос, как мне правильно сделать?
Те кто скачал первую версию, должны только код обновить до второй и не тронуть БД которую набрали на первой версии.
А те кто новые, и увидят программу сразу со второй версии должны получить ее и пустую БД.
Как такой трюк делается? Подскажите кто делал.
Спасибо. -
В 29.09.2016 в 13:29, ZuBy сказал:
void __fastcall domThread::UpdateAnimation() { frm->aIndic->Visible = false; frm->aIndic->Enabled = false; }
незнаю как на си будет, но примерно так
void __fastcall domThread::Execute() { Synchronize( UpdateAnimation ); Terminate(); }
ZuBy, спасибо, все так и сделал, получилось то что надо!
Application for Windows CE
в Windows
Опубликовано
Добрый день!
Кто-нибудь делал на RAD-studio (хоть какой нибудь), реально работающее приложение под Windows CE.
Мне нужно сделать прогу для сканера, на сканере Windows CE, интересует можно ли это замастрячить
на рейде и потом задеплоидь на устройство, ну и то-бы все это работало.
Если у кого есть такой опыт - поделитесь.
Спасибо.