Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Вниз

Общий тип для манипуляции несовместимыми типами с общими свойств.   Найти похожие ветки 

 
Inovet ©   (2014-03-25 17:06) [40]

> [39] Дмитрий   (25.03.14 17:01)

Тебе Датасет надо или остальные поля и свойства? Какие тогда остальные?


 
clickmaker ©   (2014-03-26 10:45) [41]

function TGridHelper.GetProp(AGrid: TComponent; const APropName: string): TObject;
begin
 if (APropName = "DataSource") then begin
   if (AGrid is TDBGridEh) then  
     result:=(AGrid as TDBGridEh).DataSource;
   else if (AGrid is TDBGrid) then  
    result:=(AGrid as TDBGrid).DataSource;
   if (AGrid is TRxDBGrid) then    
    result:=(AGrid as TRxDBGrid).DataSource;
 end else
 if (APropName = "SelectedField") then begin
   if (AGrid is TDBGridEh) then  
     result:=(AGrid as TDBGridEh).SelectedField;
   ...
 end else
 if...
end;


 
Дмитрий   (2014-03-26 17:20) [42]

В большей степени мне нужны поля и свойства грида.
Align, color, columns, datasource, Drawmemotext, EditActions, Enabled, EvenRowColor, FixedColor, Flat, FrozenCols, Height, Hint, Left, Name, OddRowColor, Options, ReadOnly, Tag, Visible, Width
Еще некоторые другие типа Owner-Parent и некоторые обработчики OnKeyPressed-OnDrawColumnCell

У датасетов облегчает ситуацию наличие общего совместимого типа, у гридов такого нет.

> clickmaker ©   (26.03.14 10:45) [41]
> function TGridHelper.GetProp(AGrid: TComponent; const APropName:
>  string): TObject;
> begin...

Мысль понятна-объединить в один метод.
Возможно, с точки зрения структуры и правок это будет удобно.


 
Inovet ©   (2014-03-26 17:27) [43]

> [42] Дмитрий   (26.03.14 17:20)

Какой в этом смысл, если они разные и наборы их разные? При том, что часть из перечисленного вообще-то не этими гридамиопределена и общая для всех, и доступна нормальными способами.


 
sniknik ©   (2014-03-26 18:07) [44]

> Возможно, с точки зрения структуры и правок это будет удобно.
гарантирую, это будет жутко неудобно и глючно.

сам представь, все что ты делаешь в 1 строку будешь делать в 50 ради абстрактной универсализации. да эти 50 строк, вместо одной у тебя будут "спрятаны" в объекте но зависимости в работе с ним, "внешние", останутся. и необходимость правки именно самого кода обеспечивающего "универсальность" тоже (по умолчанию, сделает кто-то новый грид и как же универсальность если его не поддержать?).


 
Дмитрий   (2014-03-26 18:29) [45]

Inovet ©   (26.03.14 17:27) [43]
Переписал из инспектора используемые свойства ЕхГрида.
Некоторые свойства, вроде SelectedField так не помню, всплывают в процессе переделки прежнего модуля.

sniknik ©   (26.03.14 18:07) [44]
Принципиального улучшения [41] не несет по сравнению с [13], кроме группировки в одном блоке.
Во многих случаях потребуется еще одно приведение типов.
Дополнительная операция может быть заметна в обаботчиках типа OnCalc или OnDrawCell


 
sniknik ©   (2014-03-27 11:50) [46]

> Принципиального улучшения
я не про разницу кода 13 vs 41, а в принципе "за идею"... любая "универсализация" чего-то настолько различного приведет к проблемам.

как пример могу привести уже набивший оскомину ADOTable, ADOQuery "универсализировавший" логику работы с ними "под BDE".
где уже этот BDE, а проблемы из-за подобного решения до сих пор есть.


 
Дмитрий   (2014-04-14 18:53) [47]

К слову, мне не обязательно требуется реализация здесь и сейчас всех свойств ДжедайГрида и прочих.
Скорее, мне нужна болванка, которая сейчас позволяет крутить ГридЕх, в которую при потребности легко добавить прочие типы.


 
Юрий Зотов ©   (2014-04-14 22:51) [48]

> Дмитрий   (14.04.14 18:53) [47]

Прошло больше месяца, а решения так и нет. Не значит ли это, что его действительно просто нет?


 
Германн ©   (2014-04-15 02:27) [49]


> Дмитрий   (14.04.14 18:53) [47]
>
> К слову, мне не обязательно требуется реализация здесь и
> сейчас всех свойств ДжедайГрида и прочих.
> Скорее, мне нужна болванка, которая сейчас позволяет крутить
> ГридЕх, в которую при потребности легко добавить прочие
> типы.

А к своему тёзке, автору EhLib не обращался?


 
Дмитрий   (2014-04-15 17:22) [50]


> Германн ©   (15.04.14 02:27) [49]
> А к своему тёзке, автору EhLib не обращался?

Нет.
То, что нужно было от ЕхГрида обходился поиском по форумам.
А спросить про универсальный коннектор не достает наглости.
Кроме меня никому не нужно.


> Юрий Зотов ©   (14.04.14 22:51) [48]
> решения так и нет. Не значит ли это, что его действительно
> просто нет?

Так-то решение есть - прописать каждое свойство ручками.
Чем потихоньку и занимаюсь, в фоновом режиме.
Отсутствует желаемое решение.
С мороженками и печеньками.
)


 
Юрий Зотов ©   (2014-04-16 12:13) [51]

> Отсутствует желаемое решение.

Его я и имел в виду. И в полноценном виде его действительно не существует (о чем здесь уже говорилось) - слишком разные компоненты.



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.049 c
2-1395260728
alexdn
2014-03-20 00:25
2015.09.10
ComboBox от TMS


15-1416432603
Юрий
2014-11-20 00:30
2015.09.10
С днем рождения ! 20 ноября 2014 четверг


15-1422346556
кгшзх
2015-01-27 11:15
2015.09.10
чокак там в mssql


15-1414060548
Юрий Зотов
2014-10-23 14:35
2015.09.10
ИБП


2-1392444785
Novicer
2014-02-15 10:13
2015.09.10
Как минимизировать число Query в DataModule?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский