Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Початківцям";
Поточний архів: 2018.10.21;
Завантажити: [xml.tar.bz2];

Вниз

Property не читає значення поля Знайти схожі гілки


hei   (2016-09-02 17:26) [0]

Усім добрий день!

Не сваріть надто сильно за питання! Тяпница і се таке ...

Є класи:

TContact = class private fOrgFullName: WideString; fPerFIO: WideString; .... public .... property OrgFullName: WideString read fOrgFullName; property PerFIO: WideString read fPerFIO; end; TLnkDoc_Info = class private fLnkDocNumber: WideString; fLnkDocDate: TDateTime; fLnkDocLinkType: WideString; public ... property LnkDocNumber: WideString read fLnkDocNumber; property LnkDocDate: TDateTime read fLnkDocDate; property LnkDocLinkType: WideString read fLnkDocLinkType; end; TDoc_Info = class private fDocAddr: TContact; // Адресат fDocAnn: WideString; // Анотація fDocVisa: TContact; // Підписант fDocSender: TContact; ... fDocLnkList: array of TLnkDoc_Info; ... public .... property DocAddr: TContact read fDocAddr; property DocAnn: WideString read fDocAnn; property DocVisa: TContact read fDocVisa; property DocSender: TContact read fDocSender; property DocLnkList: array of TLnkDoc_Info read fDocLnkList; ...... ???? end; TXML_Doc = class private fDocument: TDoc_Info; public constructor Create; procedure AnalysisXMLDoc; property pDocument: TDoc_Info read fDocument; end; implementation procedure TXML_Doc.AnalysisXMLDoc; var Doc: DomDocument; XML_Doc: TXML_Doc; begin // створення екземпляра об'єкта DOMDocument; Doc: = CoDOMDocument.Create; // виклик методу Load примірника об'єкта DOMDocument; Doc.load ( "DocInfo.xml"); XML_Doc: = TXML_Doc.Create; Doc.Set_async (false); XML_Doc.fXMLText: = Doc.xml; XML_Doc.fDocument.XMLGet_Doc_Info (Doc.documentElement.selectSingleNode ( "Document List")); end;

Далі в FormShow пишу:
X_Doc: = TXML_Doc.Create; X_Doc.AnalysisXMLDoc; Memo1.Text: = "Номер документа:" + X_Doc.pDocument.DocNumber + # 13 # 10 + "Дата документа:" + DateToStr (X_Doc.pDocument.DocDate);

Але Memo виводить об'єкт як після виконання методу Create (заповнює поля порожнім значенням, а дату поточної), і не працює властивість. Що не так? Хіба не можна по властивості отримувати (не шляхом) поле з типом інший клас, у кіт. брати проперти і отримувати інше поле з типом клас ...

І ще питання. Як бути з властивістю для отримання значень поля fDocLnkList ???

Заздалегідь вдячний.



jcl   (2016-09-02 17:32) [1]

Ось я тупень ....

в FormShow перекривав об'єкт TXML_Doc ... Зробив в TXML_Doc.AnalysisXMLDoc; всюди Self, запрацювало ...

Підкажіть тільки з
property DocLnkList: array of TLnkDoc_Info read fDocLnkList; ...... ????



Игорь Шевченко ©   (2016-09-02 19:19) [2]


> Підкажіть тільки


У всіх прикладах для такого роду полів роблять два властивості, одне для отримання кількості елементів, інше для отримання / заміни елемента за індексом.

Динамічний масив не може бути типом властивості



ВладОшин ©   (2016-09-03 17:45) [3]

тип
TD = array of string;
TC = class
private
FA: TD;
public
constructor Create;
property A: TD read FA write FA;
end;

constructor TC.Create;
починати
inherited;
SetLength (FA, 3);
FA [0]: = "0 0";
FA [1]: = "1 1";
FA [2]: = "2 2";
end;

було
b: Byte;
починати
C: = TC.Create;
for b: = 0 to Length (CA) - 1 do
ShowMessage (CA [b]);



jcl   (2016-09-05 10:31) [4]

Спасибі всім!
У понеділок голова значно свіжіше :)



kilkennycat ©   (2016-09-05 10:46) [5]

ще б. щопонеділка ми огірком ...



jcl   (2016-09-05 11:39) [6]

І це, як виявилося не все ....

Пишу в TDoc_Info:
private .... fDocLnkList: array of TLnkDoc_Info; // Зв'язані документи function GetDocLnk (idx: integer): TLnkDoc_Info; .... public ... property DocLnkList [idx: integer]: TLnkDoc_Info read GetDocLnk;

Компілятор пише помилку на рядку function GetDocLnk:
E2065 Unsatisfied forward or external declaration: "TDoc_Info.GetDocLnk"

Тикніть носом, будь ласка, де можна виправити?



ВладОшин ©   (2016-09-05 11:48) [7]

соотв.метод написати? (GetDocLnk)



jcl   (2016-09-05 12:06) [8]


> ВладОшін © (05.09.16 11: 48) [7]
> Соотв.метод написати? (GetDocLnk)


Ахаха дякую!

PS не всякий щопонеділка .... я огірком ...



сторінки: 1 вся гілка

Форум: "Початківцям";
Поточний архів: 2018.10.21;
Завантажити: [xml.tar.bz2];

наверх









Пам'ять: 0.59 MB
Час: 0.016 c
2-1472826405
Ай
2016-09-02 17:26
2018.10.21
Property не читає значення поля


2-1472882501
RusSun
2016-09-03 09:01
2018.10.21
Як швидко дізнатися що в рядку одні нулі?


2-1473119810
Деніс11998833
2016-09-06 02:56
2018.10.21
TPanel на нащадку від TCustomControl


2-1473077853
валя
2016-09-05 15:17
2018.10.21
покажчики


2-1472651923
Ганна
2016-08-31 16:58
2018.10.21
віддалилася БД





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська