Главная страница
    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-77674
слон
2002-04-24 14:52
2002.06.24
Как определить зависла ли чужая программа?


3-77318
Андр
2002-05-30 18:56
2002.06.24
Проблема с dxDBGrid


1-77415
кондратий
2002-06-10 18:21
2002.06.24
мышь и скролинг ...


1-77328
Abu
2002-06-10 16:29
2002.06.24
Проблемы с логикой ...


14-77612
Канадин Владимир
2002-05-22 15:26
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский