Форум: "Основная";
Текущий архив: 2002.06.24;
Скачать: [xml.tar.bz2];
ВнизИспользование тэгов компонентов Найти похожие ветки
← →
Сатир (2002-06-10 15:29) [0]У меня такая ситуация: на форме есть несколько компонентов разного типа, такие как: комбобокс, едит, солорбох, спин-едит(едит с со стандартным Ап-Даун счётчиком) и все эти компоненты я вляются настройками для обного вызуального компонента - таблицы.
То есть у тяблицы есть куча свойств разных типов. И при изменении каждой настройки нужно с каждим компонентом-свойством связывать обработчик, там онселект или ончендж. Этих свойств очень много и при ходится тупо связывать все эти свойства с компонентами. И в связи с этим у меня родилась идея написать общий обработчик для всех компонент и сделать это через теги, то есть чтоб тег указывал на соответсвующий тип в массиве и название свойства... Но как конкретно это сделать, у меня пока нет никаких идей, поэтому хочу спросить совета, что, где и в каких местах можно применить?
Предлагайте любые идеи.
с уважением.
← →
Сатир (2002-06-13 17:38) [1]Короче, покопался я тут в исходниках одного платного пакетика и подсмотрел у них одну интересную идейку...
Выношу на общее расмотрение
procedure TRVTableItemInfo.AssignCellAttributes(ItemNo,Row, Col: Integer;
SourceCell: TRVTableCellData;IncludeSize: Boolean;
DivColSpan, DivRowSpan: Integer);
var ui: TRVUndoModifyCellIntProperties;
Cell: TRVTableCellData;
PropList: TStringList;
begin
Cell := Cells[Row,Col];
if FInserted and FEditMode then
try
if ItemNo=-1 then
ItemNo := GetMyItemNo;
Cell.VisibleBorders.Assign(SourceCell.VisibleBorders); // should be undone in future
PropList := TStringList.Create;
try
PropList.AddObject("Color", TObject(SourceCell.Color));
PropList.AddObject("BorderColor", TObject(SourceCell.BorderColor));
PropList.AddObject("BorderLightColor", TObject(SourceCell.BorderLightColor));
PropList.AddObject("VAlign", TObject(SourceCell.VAlign));
if IncludeSize then begin
PropList.AddObject("BestWidth", TObject(SourceCell.BestWidth div DivColSpan));
PropList.AddObject("BestHeight", TObject(SourceCell.BestHeight div DivRowSpan));
end;
TRVEditRVData(FRows.FMainRVData).BeginUndoSequence(rvutModifyItem);
ui := TRVEditRVData(FRows.FMainRVData).Do_ModifyItemIntProperties(
ItemNo, Cell, PropList,
IncludeSize, IncludeSize, TRVUndoModifyCellIntProperties) as TRVUndoModifyCellIntProperties;
if ui<>nil then begin
ui.Row := Row;
ui.Col := Col;
end;
finally
PropList.Free;
end;
finally
FInserted := True;
end
else begin
Cells[Row,Col].AssignAttributesFrom(SourceCell, IncludeSize, DivColSpan, DivRowSpan);
end;
FModified := True;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.06.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c