You've already forked lazarus-ccr
fix error in rxdbgrid
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@893 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -10,6 +10,15 @@
|
|||||||
+ In TRxDateEdit add new property - ValidDate. Check valid input.
|
+ In TRxDateEdit add new property - ValidDate. Check valid input.
|
||||||
+ add 2 component from original RX: TRxSpinButton � TRxSpinEdit (Edward Ivanov)
|
+ add 2 component from original RX: TRxSpinButton � TRxSpinEdit (Edward Ivanov)
|
||||||
- fix images for TRxClock, TRxDateEdit, TAutoPanel (Edward Ivanov)
|
- fix images for TRxClock, TRxDateEdit, TAutoPanel (Edward Ivanov)
|
||||||
|
- fix error in TRxDatePicker (Edward Ivanov)
|
||||||
|
+ Add new components: TRxDBSpinEdit, TRxTimeEdit, TRxDBTimeEdit
|
||||||
|
+ TRxLoginDialo now work.
|
||||||
|
+ Rewrite code for draw vertical text in titles RXDBGrid. Code from TAChart
|
||||||
|
+ published BorderSpacing in TRxLabel
|
||||||
|
+ add demo application for AutoSort in RxDBGrid
|
||||||
|
- fix sort order in TRxMemDataSet
|
||||||
|
- fix draw buttons in ToolPanel with use system themes
|
||||||
|
- fix error in TRxDBComboBox
|
||||||
22.05.2008 - version 2.0.0.136 (svn revision 100)
|
22.05.2008 - version 2.0.0.136 (svn revision 100)
|
||||||
+ In TRxCustomDBLookupCombo add check for CircularDataLink
|
+ In TRxCustomDBLookupCombo add check for CircularDataLink
|
||||||
+ in TRxCustomDBLookupCombo accelerated drawing data
|
+ in TRxCustomDBLookupCombo accelerated drawing data
|
||||||
|
@ -15,13 +15,14 @@
|
|||||||
+ Добавлены компоненты TRxDBSpinEdit, TRxTimeEdit, TRxDBTimeEdit
|
+ Добавлены компоненты TRxDBSpinEdit, TRxTimeEdit, TRxDBTimeEdit
|
||||||
+ TRxLoginDialo теперь работает. По сравнению с оригинальным функционал сильно расширен.
|
+ TRxLoginDialo теперь работает. По сравнению с оригинальным функционал сильно расширен.
|
||||||
Изменён дизайн формы
|
Изменён дизайн формы
|
||||||
+ Улучшена отриосвка вертикальных заголовков в гриде. Код из TAChart
|
+ Улучшена отрисовка вертикальных заголовков в гриде. Код из TAChart
|
||||||
+ Опубликова BorderSpacing в TRxLabel
|
+ Опубликова BorderSpacing в TRxLabel
|
||||||
+ Добавлен пример для использования автоматической сортировки в RxDBGrid
|
+ Добавлен пример для использования автоматической сортировки в RxDBGrid
|
||||||
- Исправлена сортировка при использовании TRxMemDataSet
|
- Исправлена сортировка при использовании TRxMemDataSet
|
||||||
- Исправлена отрисова кнопки в ToolPanel при отрисовке с использованием текущей темы
|
- Исправлена отрисова кнопки в ToolPanel при отрисовке с использованием текущей темы
|
||||||
+ Реализована возможность объединения ячеек в заголовке таблицы
|
+ Реализована возможность объединения ячеек в заголовке таблицы
|
||||||
(смотрите в демке на RxDBGrid)
|
(смотрите в демке на RxDBGrid)
|
||||||
|
- Исправлена ошибка установки значения для TRxDBComboBox
|
||||||
22.05.2008 - версия 2.0.0.136 (svn revision 100)
|
22.05.2008 - версия 2.0.0.136 (svn revision 100)
|
||||||
+ У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink
|
+ У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink
|
||||||
+ У объекта TRxCustomDBLookupCombo ускорена отрисовка данных
|
+ У объекта TRxCustomDBLookupCombo ускорена отрисовка данных
|
||||||
|
32
components/rx/docs/laz_doc/rxfpc.xml
Normal file
32
components/rx/docs/laz_doc/rxfpc.xml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<fpdoc-descriptions>
|
||||||
|
<package name="dcl_rx_fpc"/>
|
||||||
|
<package name="rxfpc">
|
||||||
|
<module name="rxdbgrid"/>
|
||||||
|
<module name="rxctrls">
|
||||||
|
<topic name="TRxLabel">
|
||||||
|
<descr>Unit
|
||||||
|
RxCtrls
|
||||||
|
Description
|
||||||
|
Компонента TRxLabel аналогична стандартной компоненте VCL TLabel, однако дополнительно позволяет придать тексту статического элемента управления (Label) 3-мерный вид, либо отобразить "тень" текста.
|
||||||
|
С помощью свойст ShadowPos, ShadowColor и ShadowSize вы можете задать расположение, цвет и толщину "тени" букв текста. Значения, заданные для этих свойств по умолчанию, создают "трехмерный" эффект изображения текс</descr>
|
||||||
|
</topic>
|
||||||
|
<element name="Align"/>
|
||||||
|
<element name="Alignment"/>
|
||||||
|
<element name="Alignment"/>
|
||||||
|
<element name="Alignment"/>
|
||||||
|
<element name="Color"/>
|
||||||
|
<element name="DragCursor"/>
|
||||||
|
<element name="DragMode"/>
|
||||||
|
<element name="Enabled"/>
|
||||||
|
<element name="TRxLabelENodeName"/>
|
||||||
|
<element name="Constraints"/>
|
||||||
|
<topic name="Constraints">
|
||||||
|
<element name="TRxLabelENodeNameENodeName"/>
|
||||||
|
</topic>
|
||||||
|
<element name="TRxLabelENodeNameENodeName">
|
||||||
|
<element name="TRxLabelENodeNameENodeNameENodeName"/>
|
||||||
|
</element>
|
||||||
|
</module>
|
||||||
|
</package>
|
||||||
|
</fpdoc-descriptions>
|
@ -191,7 +191,6 @@ end;
|
|||||||
|
|
||||||
procedure TCustomDBComboBox.UpdateData(Sender: TObject);
|
procedure TCustomDBComboBox.UpdateData(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
FDataLink.Field.Text := ComboText;
|
|
||||||
FDataLink.Field.AsString := ComboText;
|
FDataLink.Field.AsString := ComboText;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -238,6 +237,7 @@ procedure TCustomDBComboBox.Change;
|
|||||||
begin
|
begin
|
||||||
FDataLink.Edit;
|
FDataLink.Edit;
|
||||||
inherited Change;
|
inherited Change;
|
||||||
|
FDataLink.UpdateRecord;
|
||||||
FDataLink.Modified;
|
FDataLink.Modified;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -867,95 +867,103 @@ var
|
|||||||
rxTit, rxTitleNext:TRxColumnTitle;
|
rxTit, rxTitleNext:TRxColumnTitle;
|
||||||
MLRec1:TMLCaptionItem;
|
MLRec1:TMLCaptionItem;
|
||||||
MLRec2:TMLCaptionItem;
|
MLRec2:TMLCaptionItem;
|
||||||
|
tmpCanvas: TCanvas;
|
||||||
begin
|
begin
|
||||||
H:=1;
|
if RowCount = 0 then exit;
|
||||||
ClearMLCaptionPointers;
|
tmpCanvas := GetWorkingCanvas(Canvas);
|
||||||
for i:=0 to Columns.Count-1 do
|
try
|
||||||
begin
|
H:=1;
|
||||||
rxCol:=TRxColumn(Columns[i]);
|
ClearMLCaptionPointers;
|
||||||
if Assigned(rxCol) and rxCol.Visible then
|
for i:=0 to Columns.Count-1 do
|
||||||
begin
|
begin
|
||||||
rxTit:=TRxColumnTitle(rxCol.Title);
|
rxCol:=TRxColumn(Columns[i]);
|
||||||
if Assigned(rxTit) then
|
if Assigned(rxCol) and rxCol.Visible then
|
||||||
begin
|
begin
|
||||||
if rxTit.Orientation in [toVertical270, toVertical90] then
|
rxTit:=TRxColumnTitle(rxCol.Title);
|
||||||
H:=Max((Canvas.TextWidth(Columns[i].Title.Caption)+ Canvas.TextWidth('W')) div DefaultRowHeight, H)
|
if Assigned(rxTit) then
|
||||||
else
|
|
||||||
begin
|
begin
|
||||||
rxColNext:=nil;
|
if rxTit.Orientation in [toVertical270, toVertical90] then
|
||||||
rxTitleNext:=nil;
|
H:=Max((tmpCanvas.TextWidth(Columns[i].Title.Caption)+ tmpCanvas.TextWidth('W')) div DefaultRowHeight, H)
|
||||||
if i < Columns.Count-1 then
|
|
||||||
begin
|
|
||||||
rxColNext:=TRxColumn(Columns[i+1]);
|
|
||||||
rxTitleNext:=TRxColumnTitle(rxColNext.Title);
|
|
||||||
end;
|
|
||||||
{ TODO -oalexs : Тут необходимо также обработать скрытые столбцы }
|
|
||||||
{
|
|
||||||
j:=i;
|
|
||||||
while j < Columns.Count-1 then
|
|
||||||
begin
|
|
||||||
if
|
|
||||||
inc(j);
|
|
||||||
end;
|
|
||||||
}
|
|
||||||
|
|
||||||
W:=Max(rxCol.Width-2, 1);
|
|
||||||
if rxTit.CaptionLinesCount > 0 then
|
|
||||||
begin
|
|
||||||
H2:=0;
|
|
||||||
H1:=0;
|
|
||||||
for j:=0 to rxTit.CaptionLinesCount-1 do
|
|
||||||
begin
|
|
||||||
MLRec1:=rxTit.CaptionLine(j);
|
|
||||||
if Assigned(rxTitleNext) and (rxTitleNext.CaptionLinesCount>j) then
|
|
||||||
begin
|
|
||||||
MLRec2:=rxTitleNext.CaptionLine(j);
|
|
||||||
if MLRec1.Caption = MLRec2.Caption then
|
|
||||||
begin
|
|
||||||
MLRec1.Next:=MLRec2;
|
|
||||||
MLRec2.Prior:=MLRec1;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
MLRec1.Width:=Canvas.TextWidth(MLRec1.Caption)+2;
|
|
||||||
|
|
||||||
if W > MLRec1.Width then
|
|
||||||
H2:=1
|
|
||||||
else
|
|
||||||
H2:=MLRec1.Width div W + 1;
|
|
||||||
|
|
||||||
if H2>WordCount(MLRec1.Caption, [' ']) then
|
|
||||||
H2:=WordCount(MLRec1.Caption, [' ']);
|
|
||||||
|
|
||||||
H1:=H1+H2;
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
H1:=Max((Canvas.TextWidth(rxTit.Caption)+2) div W + 1, H);
|
rxColNext:=nil;
|
||||||
if H1>WordCount(rxTit.Caption, [' ']) then
|
rxTitleNext:=nil;
|
||||||
H1:=WordCount(rxTit.Caption, [' ']);
|
if i < Columns.Count-1 then
|
||||||
|
begin
|
||||||
|
rxColNext:=TRxColumn(Columns[i+1]);
|
||||||
|
rxTitleNext:=TRxColumnTitle(rxColNext.Title);
|
||||||
|
end;
|
||||||
|
{ TODO -oalexs : Тут необходимо также обработать скрытые столбцы }
|
||||||
|
{
|
||||||
|
j:=i;
|
||||||
|
while j < Columns.Count-1 then
|
||||||
|
begin
|
||||||
|
if
|
||||||
|
inc(j);
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
|
||||||
|
W:=Max(rxCol.Width-2, 1);
|
||||||
|
if rxTit.CaptionLinesCount > 0 then
|
||||||
|
begin
|
||||||
|
H2:=0;
|
||||||
|
H1:=0;
|
||||||
|
for j:=0 to rxTit.CaptionLinesCount-1 do
|
||||||
|
begin
|
||||||
|
MLRec1:=rxTit.CaptionLine(j);
|
||||||
|
if Assigned(rxTitleNext) and (rxTitleNext.CaptionLinesCount>j) then
|
||||||
|
begin
|
||||||
|
MLRec2:=rxTitleNext.CaptionLine(j);
|
||||||
|
if MLRec1.Caption = MLRec2.Caption then
|
||||||
|
begin
|
||||||
|
MLRec1.Next:=MLRec2;
|
||||||
|
MLRec2.Prior:=MLRec1;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
MLRec1.Width:=tmpCanvas.TextWidth(MLRec1.Caption)+2;
|
||||||
|
|
||||||
|
if W > MLRec1.Width then
|
||||||
|
H2:=1
|
||||||
|
else
|
||||||
|
H2:=MLRec1.Width div W + 1;
|
||||||
|
|
||||||
|
if H2>WordCount(MLRec1.Caption, [' ']) then
|
||||||
|
H2:=WordCount(MLRec1.Caption, [' ']);
|
||||||
|
|
||||||
|
H1:=H1+H2;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
H1:=Max((tmpCanvas.TextWidth(rxTit.Caption)+2) div W + 1, H);
|
||||||
|
if H1>WordCount(rxTit.Caption, [' ']) then
|
||||||
|
H1:=WordCount(rxTit.Caption, [' ']);
|
||||||
|
end;
|
||||||
|
H:=Max(H1, H);
|
||||||
end;
|
end;
|
||||||
H:=Max(H1, H);
|
|
||||||
end;
|
|
||||||
|
|
||||||
for j:=0 to rxTit.CaptionLinesCount-1 do
|
for j:=0 to rxTit.CaptionLinesCount-1 do
|
||||||
begin
|
begin
|
||||||
MLRec1:=rxTit.CaptionLine(j);
|
MLRec1:=rxTit.CaptionLine(j);
|
||||||
if MLRec1.Width < rxTit.Column.Width then
|
if MLRec1.Width < rxTit.Column.Width then
|
||||||
MLRec1.Width:=rxTit.Column.Width;
|
MLRec1.Width:=rxTit.Column.Width;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
|
||||||
|
|
||||||
|
RowHeights[0] := DefaultRowHeight * ({FTitleLines+}H);
|
||||||
|
|
||||||
RowHeights[0] := DefaultRowHeight * ({FTitleLines+}H);
|
if rdgFilter in OptionsRx then
|
||||||
|
begin
|
||||||
if rdgFilter in OptionsRx then
|
RowHeights[0] := RowHeights[0] + DefaultRowHeight;
|
||||||
begin
|
end;
|
||||||
RowHeights[0] := RowHeights[0] + DefaultRowHeight;
|
|
||||||
|
finally
|
||||||
|
if TmpCanvas<>Canvas then
|
||||||
|
FreeWorkingCanvas(tmpCanvas);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1121,11 +1129,11 @@ begin
|
|||||||
BeginUpdate;
|
BeginUpdate;
|
||||||
try
|
try
|
||||||
inherited CreateWnd;
|
inherited CreateWnd;
|
||||||
// CalcTitle;
|
CalcTitle;
|
||||||
finally
|
finally
|
||||||
EndUpdate;
|
EndUpdate;
|
||||||
end;
|
end;
|
||||||
end;}
|
end; }
|
||||||
|
|
||||||
procedure TRxDBGrid.DefaultDrawCellA(aCol, aRow: Integer; aRect: TRect;
|
procedure TRxDBGrid.DefaultDrawCellA(aCol, aRow: Integer; aRect: TRect;
|
||||||
aState: TGridDrawState);
|
aState: TGridDrawState);
|
||||||
@ -1906,8 +1914,8 @@ end;
|
|||||||
procedure TRxDBGrid.VisualChange;
|
procedure TRxDBGrid.VisualChange;
|
||||||
begin
|
begin
|
||||||
inherited VisualChange;
|
inherited VisualChange;
|
||||||
if Canvas.HandleAllocated then
|
// if Canvas.HandleAllocated then
|
||||||
CalcTitle;
|
CalcTitle;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TRxDBGrid.EditorByStyle(Style: TColumnButtonStyle): TWinControl;
|
function TRxDBGrid.EditorByStyle(Style: TColumnButtonStyle): TWinControl;
|
||||||
|
Reference in New Issue
Block a user