RxFPC - новая версия

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

Сообщение alexs » 15.04.2008 19:39:23

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

Сообщение ViTality » 16.04.2008 00:00:09

alexs, всеже DropDownCount у RxDBLookupCombo не работает вообще. Какое значение не задавай всеравно одна и таже высота у выпадающего списка.
Да и у RxDBLookupEdit как-то криво отрабатывает - такое ощущуние что в это число(предположем 8 строк) входит кроме высоты списка (5 видимых строк) еще и высота самого едита(1 строка), плюс высота горизонтального скролла(1 строка).

Lazarus 0.9.25 svn rev14621
FPC 2.2.0
RxFPC из svn
ViTality
постоялец
 
Сообщения: 308
Зарегистрирован: 05.10.2007 15:12:02

Сообщение alexs » 16.04.2008 01:00:54

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

Сообщение VAshot » 16.04.2008 15:32:55

AutoFill - уже в svn

В описании есть, в коде не обнаружил :(


Несколько вопросов:
- можно ли сделать расцветку границ (рамка) "Combo" как у стандартного Edit'а (верхняя и левая границы)?
- куда делся отступ от рамки до текста в "Combo", самому вернуть не сложно, но всё же?
- при установки на сегодняшний "снимок" Lazarus ругался на "LM_PASTE" и "procedure SetCaption(const AValue: TCaption); override;" в rxdbgrid.pas, кривая сборка лазаря (вернее fpc 2.3.1)?


предлагаю следующее небольшое изменение (можно с усложнением на опцию в свойствах):
Код: Выделить всё
***rxdbgrid.pas
//    WA^[i]:=20;                        // del
    begin                                                                       // add
      WA^[i]:=Canvas.TextWidth(TRxColumn(AColList[i]).Title.Caption) + 6;       // add
      if WA^[i] < 60 then WA^[i]:=60;                                           // add
    end;                                                                        // add



И вопрос касаемый не только rx: при обновлении компоненты, стала показываться активность комбо (вновь созданного) даже если он ссылается на NULL - это хорошо, но как заставить это делать все комбо, которых в проекте куча, без их удаления/создания?
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Сообщение alexs » 17.04.2008 20:22:29

VAshot писал(а):- можно ли сделать расцветку границ (рамка) "Combo" как у стандартного Edit'а (верхняя и левая границы)?

Честно говоря - с менеджером тем ещё близко не возился. Как будет время - сделаю. Заодно и кнопки в тул-панели будут рисоваться с помощью его.

VAshot писал(а):- куда делся отступ от рамки до текста в "Combo", самому вернуть не сложно, но всё же?

Вроде я его не трогал. А какой отступ нужен? Сколько пикселей делать? Мне кажется это тоже от темы зависеть должно.

VAshot писал(а):- при установки на сегодняшний "снимок" Lazarus ругался на "LM_PASTE" и "procedure SetCaption(const AValue: TCaption); override;

Симтомы старой версии лазаря.

И по поводу оптимизации ширины колонки. Честно говоря я специально не стал учитывать ширину заголовка. Из-за многострочных заголовков. В принципе твой код можно включить в том случае, если многострочные заголовки запрещены.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение VAshot » 17.04.2008 22:00:59

alexs писал(а):Вроде я его не трогал. А какой отступ нужен? Сколько пикселей делать? Мне кажется это тоже от темы зависеть должно.

Сейчас он прижимается к "лево" и "вверх" (в PopUp списке нормально)
вот тут для меня не совсем ясный код (TextMargin):
Код: Выделить всё
*** procedure TRxCustomDBLookupCombo.Paint;
  TextMargin := 0;
  if ClientWidth > 4 then
  begin
    SetRect(R, 2, 2, ClientWidth - 2, ClientHeight - 2);
    if TextMargin > 0 then Inc(TextMargin);
    X := 2 + TextMargin;


Про верхнюю границу сильно не разбирался, но при изменении величин, "Комбы", созданные до установки новой версии Rx и после, отображаются частично по разному, в частности верхней границы.
Поэтому повторю вопрос:
Как обновить существующие объекты (их свойства) в проекте согласно изменениям в компонентах?
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Сообщение alexs » 17.04.2008 23:23:29

А фиг его знает - код переписывался не раз - возможны и не такие ляпы.
Перепишу кончено и выложу на svn.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение alexs » 17.04.2008 23:37:06

Всё залито на svn
TextMargin превратил в констатну, объявленную в начале модуля. Код почистил.

Насчёт того, что текст прижат вверх - это из-за того, что при расчёте высоты шрифта учитывается нижний "хвостик" символов (например у символа "у").
Код: Выделить всё
      Canvas.TextRect(R, TextMargin, Max(0, (HeightOf(R) - Canvas.TextHeight('Wg')) div 2), AText);

Если врасчёт высоты делат только по "W" то смещение будет другим.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение VAshot » 18.04.2008 07:42:57

А где всё-таки AutoFill? не ту версию на SVN залили?
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Сообщение alexs » 18.04.2008 08:58:57

В свойстве PopUpFormOptions
фактически оно даёт доступ к свойству AutoFillColumns rxDBGrid-а
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение ViTality » 18.04.2008 09:59:29

alexs, можно парочку вопросов:

1. Как задать или хотябы получить выбранное значение в RxDBLookupCombo программно? Просто проблемма в том что при добавлении новой записи(заполнение полей происходит в модальной форме), если не выбрать в Combo никакого значения, то этому полю(за которое отвечает Combo) присваиваеться значение записи под курсором в DBGrid. Как этого можно избежать?

2. Что делает LookupDisplayIndex все у тогоже RxDBLookupCombo? Опытным путем узнать не получилось - при задании значения отличного от нуля (1), вылетает при открытии формы

3. И как там DropDownCount у RxDBLookupCombo?
ViTality
постоялец
 
Сообщения: 308
Зарегистрирован: 05.10.2007 15:12:02

Сообщение VAshot » 18.04.2008 11:13:53

alexs писал(а):фактически оно даёт доступ к свойству AutoFillColumns rxDBGrid-а

Это понятно.
Но вот "смотрю в книгу и вижу фигу", ну нету там такого свойства:
+ В свойстве PopUpFormOptions компоненты TRxDBLookupCombo добавлено поле AutoFillColumns - аналог одноимённого поля
из TDBGrid - используется в выпадающем списке


Источник:
https://lazarus-ccr.svn.sourceforge.net ... azarus-ccr
Качал прям сейчас.

Еще б туда возможность изменения типа отображения ScrollBar'ов:
Код: Выделить всё
Result.FGrid.ScrollBars:=ssAutoBoth;



Может просто расшарить свойства таблички для LookUp'ов?
Тогда это всё можно будет задавать напрямую.



И вопрос по RxBDBGrid.Colums[i].SizePriority, это для чего, оно работает?

Это всё для следующей задачи: есть несколько колонок в RxDBLookupCombo (тоже самое интересно и для DBGrid), надо оптимизировать ширину колонок, но, если они занимают меньше места чем ширина таблички - увеличить их ширину до полного заполнения пропорционально.
Последний раз редактировалось VAshot 18.04.2008 11:21:23, всего редактировалось 1 раз.
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Сообщение ViTality » 18.04.2008 11:20:02

VAshot
И вопрос по RxBDBGrid.Colums[i].SizePriority, это для чего, оно работает?

Вчера тоже разбирался с этим свойсвом у обычного DBGrid. В итоге:
- если поставить 0 то столбец размер менять не будет
- все столбцы со значением больше нуля занимуют все свободное пространство поровну независимо у кого больше SizePriority :)
Ну и действовать это начинает при AutoFillColumns=true
И MaxSize при этом на них не действует
ViTality
постоялец
 
Сообщения: 308
Зарегистрирован: 05.10.2007 15:12:02

Сообщение VAshot » 18.04.2008 11:29:47

Ну тогда точно стоит расшарить свойства Грида, чтоб ширину и приоритет задавать.
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Сообщение alexs » 18.04.2008 11:30:25

ViTality
1. Чтобы дапрграмно задлать значени - присваивай значение полю из DataField. Насчёт пустого - есть тма глюк - очищается поле по ESC, а вот чтобы не портилось пустое - никак руки не дойдут сделать (у меня просто нет таких форм с пустыми полями).

2.Если в выпадающем списке ты отображаеш несколько полей, а DisplayAll = false - то это определяет значение какого поле будет отображаться в самом контроле. Защиту на переполнение этого свойства конечно надо сделать.

3. Ещё рукине дошли :-(.

VAshot
Сори - действительно не залил.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Пред.След.

Вернуться в RxLib

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23

Рейтинг@Mail.ru