Доработки Rx

Модераторы: alexs, Модераторы

Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Посмотрим.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Смотри версию 6291.
Так устроит?

PS
Вот не нравится мне, как реализовано это окно фильтрации. Надо бы переписать.
kit
постоялец
Сообщения: 156
Зарегистрирован: 29.09.2016 08:39:07

Сообщение kit »

alexs писал(а):Так устроит?

Пока да. ) Спасибо!
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

Хочу выразить благодарность за RxDateEdit. Стандартный DateEdit не работает под Mac OS X. А Ваш работает норм. Единственное пожелание, добавить в него свойство DateFormat (не нашел в компоненте), чтобы можно было указывать для каждого отдельно формат вывода.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

А в чём необходимость задания формата индивидуально?

Сейчас там все берётся настройки из системы. На мой взгляд - это правильно. Не хорошо - когда ваша программа на рабочем месте ведёт себя не так, как все остальные программы и сама система. Или в Mac OS X совсем экзотические форматы? :-)
Там ещё есть настройка на кол-во знаков при отображении года - YearDigits.
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

Кстати про YearDigits. Пока не укажешь явно количество знаков, то в свойстве Text абракадабра при выбранном параметре "показывать текущую дату по умолчанию".
Если не корректировать формат, то по умолчанию (по крайней мере в Mac OS X) дата в компоненте выглядит ММ/ДД/ГГ. При этом в настройках системы стоит ДД.ММ.ГГГГ. Поэтому задаю при старте основного потока:

Код: Выделить всё

  FormatSettings.DateSeparator:= '.';
  FormatSettings.LongDateFormat:= 'dd.mm.yyyy';
  FormatSettings.ShortDateFormat:= 'dd.mm.yy';

Но в некоторых фреймах программы нужен индивидуальный формат отображения. Поэтому приходится извращаться с переключением настроек FormatSettings перед выводом.
В принципе, я думаю это частный случай, так что можно и не добавлять такой параметр. Хотя в стандартном DateEdit он есть ;)
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

VirtUX писал(а):Поэтому задаю при старте основного потока:

У меня вообще это штатное начало всех программ :-)
Ещё не забудь про:

Код: Выделить всё

  DefaultFormatSettings.ThousandSeparator:=' ';
  DefaultFormatSettings.CurrencyString:='р.';


VirtUX писал(а):Но в некоторых фреймах программы нужен индивидуальный формат отображения.

Там надо подумать. Там же ещё формат маски редактора завязан.
kit
постоялец
Сообщения: 156
Зарегистрирован: 29.09.2016 08:39:07

Сообщение kit »

Можна сделать правильную сортировку дат в списке значений фильтра в таблице?

Код: Выделить всё

function CompareDates(List: TStringList; Index1, Index: Integer): Integer;
var
  d1, d2: TDateTime;
begin
  TryStrToDateTime(List[Index1], d1);
  TryStrToDateTime(List[Index], d2);
  Result := -CompareDate(d1, d2);
end;

procedure TRxDBGrid.FillFilterData;
...
  for i := 0 to Columns.Count - 1 do
  begin
    C := TRxColumn(Columns[i]);
    if C.Field.DataType = ftDate then begin
      c.Filter.ValueList.SortStyle := sslUser;
      C.Filter.ValueList.CustomSort(@CompareDates);
    end;
  end;
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Можно.
Сделаю. Разберусь сначала с последними изменениями с LCL - там Grid и DBGrid немного поменяли интерфейсы. Надо дописать в соответствии с этим RxDBGrid.
kit
постоялец
Сообщения: 156
Зарегистрирован: 29.09.2016 08:39:07

Сообщение kit »

Можна добавить возможность вернуть дефолтние значения длинни и сортировки колонок, напримор добавить кнопку Default на rxDBGridColumsForm?
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Она нигде не сохранятся. Это только ещё один комплект переменных вводить для хранения?
kit
постоялец
Сообщения: 156
Зарегистрирован: 29.09.2016 08:39:07

Сообщение kit »

Проблема в том что если добавляю поле в таблицу то колонка в гриде добавляется в конец, может из-за Ini-файла, а нужно по середине. Приходиться вручную передвигать или что-то типа такого: IniPropStorage.EraseSections i DBGrid.Columns.Clear;
или в procedure TRxDBGrid.OnIniLoad(Sender: TObject);
...
if (ACount = FVersion) and (ACount = Columns.Count) then

или
if (ACount = Columns.Count) then // kit
C.Index := Min(FPropertyStorageLink.Storage.ReadInteger(S1 + sIndex, C.Index), Columns.Count - 1);
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Если ты подключил сохранение настроек - то просто увеличь у грида номер версии - поле Version
Оно для этого предназначено.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

kit писал(а):Можна сделать правильную сортировку дат в списке значений фильтра в таблице?

Смотри ревизию 6396.

Хотел аналог сделать и для числовых полей - с наскока не получилось.
kit
постоялец
Сообщения: 156
Зарегистрирован: 29.09.2016 08:39:07

Сообщение kit »

Чем rxpopupnotifier лучше tpopupnotifier?
Ответить