Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.05;
Скачать: CL | DM;

Вниз

String -> TControl   Найти похожие ветки 

 
Kolan ©   (2007-07-04 09:50) [40]

> а вы о чем собственно?

Думаю о сериализации:
http://rsdn.ru/article/delphi/serialization.xml


 
Юрий Зотов ©   (2007-07-04 10:52) [41]

> VirEx ©   (03.07.07 18:34) [37]

> цель была: загрузить из ini файла объект, с определенными свойствами,
> любой объект

А в чем, собственно, проблема-то? Есть готовый механизм, если он почему-то не устраивает (кстати, непонятно, почему?), то делайте свой по аналогии.

Например, пусть в INI-файле имеем секцию (которая, кстати, ничем по сути не отличается от соответствующей "секции" текстового DFM):

[Button1 = TButton]
Left = 50
Top = 40
Width = 100
Height = 25
Parent = Panel1
Caption = "OK"

Читаем заголовок этой секции и создаем объект (естественно, его класс должен быть зарегистрирован). Потом читаем тело секции и назначаем его свойства (через функции из TypInfo.pas).

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


 
Kolan ©   (2007-07-04 10:54) [42]

> если он почему-то не устраивает (кстати, непонятно, почему?
> ), то делайте свой по аналогии.

Может если надо именно ini, то проще пользоваться стандартным а на выходе/входе преобразовываеть его в ini и обратно?


 
VirEx ©   (2007-07-04 16:51) [43]


>  [41] Юрий Зотов ©   (04.07.07 10:52)

ну так покажите готовый велосипед то.


>  [39] Игорь Шевченко ©   (04.07.07 09:45)

...или с круглыми колёсами


>  [40] Kolan ©   (04.07.07 09:50)
> > а вы о чем собственно?
>
> Думаю о сериализации:
> http://rsdn.ru/article/delphi/serialization.xml
см.:

> [37] VirEx ©   (03.07.07 18:34)



>  [38] VirEx ©   (03.07.07 19:42)


 
Юрий Зотов ©   (2007-07-04 19:56) [44]

> VirEx ©   (04.07.07 16:51) [43]

> ну так покажите готовый велосипед то.

Read/WriteComponent.

То есть, вместо самопальной сериализации в INI-файлы (для создания которой придется еще помучиться) работаете со штатной сериализацией в текстовые (или двоичные - как угодно) файлы формата DFM.

И никаких проблем. И с круглыми колесами.

PS
Еще можно посмотреть ObjectBinaryToText/ObjectTextToBinary. Тоже с круглыми колесами.


 
VirEx ©   (2007-07-05 20:00) [45]

я так понимаю на мастаках все читаю посты автора выборочно :(


 
Loginov Dmitry ©   (2007-07-05 21:38) [46]

> ...или с круглыми колёсами


С квадратными один фиг. Попробуй без Write/ReadComponent считать из своего ini-файла текст для TMemo. Как в этом случае извратишься? Мне вот в LangReader"e пришлось с этим немало помучаться.


 
VirEx ©   (2007-07-06 17:01) [47]


>  [46] Loginov Dmitry ©   (05.07.07 21:38)
> > ...или с круглыми колёсами
>
>
> С квадратными один фиг. Попробуй без Write/ReadComponent
> считать из своего ini-файла текст для TMemo. Как в этом
> случае извратишься? Мне вот в LangReader"e пришлось с этим
> немало помучаться.

легко, в ини файле не было примера многострочного свойства, но в коде:

> [27] VirEx ©   (02.07.07 22:37)

показано как загрузить TStrings

  tkClass:  begin
            tmpObj:=TPersistent(GetOrdProp(Obj, propNames[i]));
            if tmpObj is TFont then StrToFont(TFont(tmpObj),Value)
            else
            if tmpObj is TStrings then begin
              TStrings(tmpObj).Clear;
              Value:=ReplaceSub(Value,"|",#13#10);
              TStrings(tmpObj).Text:=Value;
            end;

            end;

тоесть замена перевода каретки на символ | как при чтении ини файла так и при сохранении


 
Юрий Зотов ©   (2007-07-06 17:34) [48]

> VirEx ©   (06.07.07 17:01) [47]

1. Текст в Мемо содержит символ |.
2. Самописный TmpObj (класса, который программа читать/писать не умеет).

И приехали. На тех самых квадратных колесах.


 
VirEx ©   (2007-07-06 19:21) [49]

1. значит или ограничение, или что-то типа хтмл тега
2. я не собирался делать универсальный метод чтения компонентов


 
oldman ©   (2007-07-06 19:23) [50]


> VirEx ©   (02.07.07 17:35)  
> как реализовать такую штуку:
>
> var
>  str:String;
> begin
>  str:="TPanel";
>  AddControl(Form1,str);
> end;


НА ХРЕНА???


 
Юрий Зотов ©   (2007-07-07 12:29) [51]

> VirEx ©   (06.07.07 19:21) [49]

1. В то время, как стандартный механизм ограничений не имеет и тэгов не требует.

2. В то время, как стандартный механизм именно универсальный.

Таким образом, велосипед Вы построили, но колеса у него действительно квадратные. О чем сразу и говорилось.

И возникает естественный вопрос - а зачем? кому он такой нужен, если есть нормальный, с круглыми?


 
VirEx ©   (2007-07-07 12:33) [52]


>  [51] Юрий Зотов ©   (07.07.07 12:29)

блин. спор ниочем)
я ж говорю - нужно в ini а не в виде frm или ресурсов (ф-и: ReadComponentResFile/WriteComponentResFile )


 
Юрий Зотов ©   (2007-07-07 13:03) [53]

> VirEx ©   (07.07.07 12:33) [52]

Спора никакого и нет. Не о чем тут спорить, все и так очевидно.

Что нужно в ini - это понятно. Непонятно другое - почему именно в ini? Это же заведомо проигрышное решение.


 
atruhin ©   (2007-07-07 13:50) [54]

Да и даже если в ini, скачай и посмотри библиотеку EhLib, там это реализованно
сохранение свойств компонентов, именно в ini, только прямо и без всяких ограничений.


 
VirEx ©   (2007-07-07 15:45) [55]


> [54] atruhin ©   (07.07.07 13:50)
> Да и даже если в ini, скачай и посмотри библиотеку EhLib,
> там это реализованно
> сохранение свойств компонентов, именно в ini, только прямо
> и без всяких ограничений.

ну и?
этот компонент получает инфу через ObjectBinaryToText
и сохраняет её в виде:
[TForm1]
Line0="object Form1: TForm1"
Line1="end"
притом использует IniFiles

костыли поверх одной функции)


 
Юрий Зотов ©   (2007-07-07 15:54) [56]

Видимо, на вопрос "почему именно INI" ответа разумного нет?



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

Текущий архив: 2007.08.05;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.023 c
15-1183614347
Qzzma
2007-07-05 09:45
2007.08.05
Книги по Delphi Pascal для "девушек"


2-1183357698
Washington
2007-07-02 10:28
2007.08.05
Удаление таблицы Access


15-1184185698
Lola
2007-07-12 00:28
2007.08.05
Подключение к интернету "вне цивилизации"


15-1184015864
Германн
2007-07-10 01:17
2007.08.05
Редактирование mp3


15-1184072092
kopel
2007-07-10 16:54
2007.08.05
распознавание символов