RxFPC - новая версия
Модераторы: alexs, Модераторы
alexs, всеже DropDownCount у RxDBLookupCombo не работает вообще. Какое значение не задавай всеравно одна и таже высота у выпадающего списка.
Да и у RxDBLookupEdit как-то криво отрабатывает - такое ощущуние что в это число(предположем 8 строк) входит кроме высоты списка (5 видимых строк) еще и высота самого едита(1 строка), плюс высота горизонтального скролла(1 строка).
Lazarus 0.9.25 svn rev14621
FPC 2.2.0
RxFPC из svn
Да и у RxDBLookupEdit как-то криво отрабатывает - такое ощущуние что в это число(предположем 8 строк) входит кроме высоты списка (5 видимых строк) еще и высота самого едита(1 строка), плюс высота горизонтального скролла(1 строка).
Lazarus 0.9.25 svn rev14621
FPC 2.2.0
RxFPC из svn
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 - это хорошо, но как заставить это делать все комбо, которых в проекте куча, без их удаления/создания?
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
VAshot писал(а):- можно ли сделать расцветку границ (рамка) "Combo" как у стандартного Edit'а (верхняя и левая границы)?
Честно говоря - с менеджером тем ещё близко не возился. Как будет время - сделаю. Заодно и кнопки в тул-панели будут рисоваться с помощью его.
VAshot писал(а):- куда делся отступ от рамки до текста в "Combo", самому вернуть не сложно, но всё же?
Вроде я его не трогал. А какой отступ нужен? Сколько пикселей делать? Мне кажется это тоже от темы зависеть должно.
VAshot писал(а):- при установки на сегодняшний "снимок" Lazarus ругался на "LM_PASTE" и "procedure SetCaption(const AValue: TCaption); override;
Симтомы старой версии лазаря.
И по поводу оптимизации ширины колонки. Честно говоря я специально не стал учитывать ширину заголовка. Из-за многострочных заголовков. В принципе твой код можно включить в том случае, если многострочные заголовки запрещены.
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 и после, отображаются частично по разному, в частности верхней границы.
Поэтому повторю вопрос:
Как обновить существующие объекты (их свойства) в проекте согласно изменениям в компонентах?
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Всё залито на svn
TextMargin превратил в констатну, объявленную в начале модуля. Код почистил.
Насчёт того, что текст прижат вверх - это из-за того, что при расчёте высоты шрифта учитывается нижний "хвостик" символов (например у символа "у").
Если врасчёт высоты делат только по "W" то смещение будет другим.
TextMargin превратил в констатну, объявленную в начале модуля. Код почистил.
Насчёт того, что текст прижат вверх - это из-за того, что при расчёте высоты шрифта учитывается нижний "хвостик" символов (например у символа "у").
Код: Выделить всё
Canvas.TextRect(R, TextMargin, Max(0, (HeightOf(R) - Canvas.TextHeight('Wg')) div 2), AText);
Если врасчёт высоты делат только по "W" то смещение будет другим.
alexs, можно парочку вопросов:
1. Как задать или хотябы получить выбранное значение в RxDBLookupCombo программно? Просто проблемма в том что при добавлении новой записи(заполнение полей происходит в модальной форме), если не выбрать в Combo никакого значения, то этому полю(за которое отвечает Combo) присваиваеться значение записи под курсором в DBGrid. Как этого можно избежать?
2. Что делает LookupDisplayIndex все у тогоже RxDBLookupCombo? Опытным путем узнать не получилось - при задании значения отличного от нуля (1), вылетает при открытии формы
3. И как там DropDownCount у RxDBLookupCombo?
1. Как задать или хотябы получить выбранное значение в RxDBLookupCombo программно? Просто проблемма в том что при добавлении новой записи(заполнение полей происходит в модальной форме), если не выбрать в Combo никакого значения, то этому полю(за которое отвечает Combo) присваиваеться значение записи под курсором в DBGrid. Как этого можно избежать?
2. Что делает LookupDisplayIndex все у тогоже RxDBLookupCombo? Опытным путем узнать не получилось - при задании значения отличного от нуля (1), вылетает при открытии формы
3. И как там DropDownCount у RxDBLookupCombo?
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
Вчера тоже разбирался с этим свойсвом у обычного DBGrid. В итоге:
- если поставить 0 то столбец размер менять не будет
- все столбцы со значением больше нуля занимуют все свободное пространство поровну независимо у кого больше SizePriority
Ну и действовать это начинает при AutoFillColumns=true
И MaxSize при этом на них не действует
И вопрос по RxBDBGrid.Colums[i].SizePriority, это для чего, оно работает?
Вчера тоже разбирался с этим свойсвом у обычного DBGrid. В итоге:
- если поставить 0 то столбец размер менять не будет
- все столбцы со значением больше нуля занимуют все свободное пространство поровну независимо у кого больше SizePriority
Ну и действовать это начинает при AutoFillColumns=true
И MaxSize при этом на них не действует
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
ViTality
1. Чтобы дапрграмно задлать значени - присваивай значение полю из DataField. Насчёт пустого - есть тма глюк - очищается поле по ESC, а вот чтобы не портилось пустое - никак руки не дойдут сделать (у меня просто нет таких форм с пустыми полями).
2.Если в выпадающем списке ты отображаеш несколько полей, а DisplayAll = false - то это определяет значение какого поле будет отображаться в самом контроле. Защиту на переполнение этого свойства конечно надо сделать.
3. Ещё рукине дошли
.
VAshot
Сори - действительно не залил.
1. Чтобы дапрграмно задлать значени - присваивай значение полю из DataField. Насчёт пустого - есть тма глюк - очищается поле по ESC, а вот чтобы не портилось пустое - никак руки не дойдут сделать (у меня просто нет таких форм с пустыми полями).
2.Если в выпадающем списке ты отображаеш несколько полей, а DisplayAll = false - то это определяет значение какого поле будет отображаться в самом контроле. Защиту на переполнение этого свойства конечно надо сделать.
3. Ещё рукине дошли
VAshot
Сори - действительно не залил.
