Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-77679
Up
2002-04-20 00:06
2002.06.24
Регистрация ActiveX компоненты и dll


7-77622
Ff
2002-03-27 09:10
2002.06.24
Как программно отформатировать логический диск?


1-77422
anod
2002-06-10 00:28
2002.06.24
Заголовочный файл


6-77535
nikulin
2002-04-17 16:02
2002.06.24
TServerSocket в unit


4-77667
gate A20
2002-04-24 19:52
2002.06.24
беда с хуками и головой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский