Код

Тема в разделе "Delphi - FAQ", создана пользователем -, 19 июн 2006.

Статус темы:
Закрыта.
  1. Гость

    Репутация:
    0
    Всем привет!
    Обращаюсь за помощью, в принципе, как и многие люди на этом формуе :)
    В общем, я в Delphi объявила запись, вот так:
    type
    auto = Record
    aspect:array[1..26] of string[20];
    run:array[1..26] of integer;
    size_motor:array[1..26] of integer;
    edition:array[1..26] of integer;
    power_motor:array[1..26] of integer;
    price:array[1..26] of integer;
    end;

    А потом в проге присвоила значения этим записям, вот так:
    begin
    auto.aspect[1]:='Renault';
    auto.run[1]:=67000;
    auto.size_motor[1]:=1700;
    auto.edition[1]:=1991;
    auto.power_motor[1]:=150;
    auto.price[1]:=2591;

    auto.aspect[2]:='Daewoo Matiz';
    auto.run[2]:=45000;
    auto.size_motor[2]:=800;
    auto.edition[2]:=2003;
    auto.power_motor[2]:=49;
    auto.price[2]:=6600;
    и т.д.
    А при компиляции такая ошибка:
    Object or class type required


    Просто не могу понять чего он ругается...
     
  2. Barmutik

    Barmutik Гость

    Репутация:
    0
    Судя по всему надо просто объявить сначала переменную Вашего типа .. что-то а-ля:

    Код (Text):
    var
    MyAuto: Auto;
    begin
    Myauto.aspect[1]:='Renault';
    Myauto.run[1]:=67000;
    ....
     
  3. Гость

    Репутация:
    0
    Спасибо! Работает пока :)
     
  4. Гость

    Репутация:
    0
    Что означает ComboBox1.Enabled:=True; ?

    Я прописала в коде Form1.ComboBox1.Item.Add('Avtomobile');
    А он ругается Undeclared identifier: 'ComboBox1' и ещё так Missing operator or semicolon

    И вообще, если знаете где можно почитать чего хорошего про работу с этим компонентом, напишите, плиззз...

    Вопрос, что означает Variable 'ComboBox1' might not have been initialized?
     
  5. Barmutik

    Barmutik Гость

    Репутация:
    0
    Судя по Вашим вопроса вы даже не потрудились полистать хотя бы одну самую захудалую книжку про программированию...

    Я думаю после прочтения оной 90% таких вот вопросов у Вас отпадёт само собой ...
     
  6. Гость

    Репутация:
    0
    Так, если б была хорошая литература под рукой :) а так тяжелова-то...
     
  7. Barmutik

    Barmutik Гость

    Репутация:
    0
    Всегда есть примеры поставляемые в комплекте ... они могут помочь в изучении таинств программирования :unsure:
     
  8. Admiral

    Admiral Гость

    Репутация:
    0
    ComboBox??? Да что там читать?, простой компонент!...Если уж очень не понятно...то могу помочь, хотя для начала загляни в папку DEmos в дериктории с установленной Delphi! :angry:
     
  9. Maxkht

    Maxkht Гость

    Репутация:
    0
    да почитай хотябы Архангельского, тама все есть!
    ComboBox1.Enabled:=True; - делает объект активным для работы, вообще стоит всегда по умолчанию.

    Form1.ComboBox1.Item.Add('Avtomobile'); - конечно будет ругаться. попробуй метод
    append('Avtomobile');-добавляет в конец списка строку
     
  10. Maxkht

    Maxkht Гость

    Репутация:
    0
  11. Alex Death

    Alex Death Гость

    Репутация:
    0
    Усе. опустили дэвушку. Теперь она будет боятся по форумам лазить =)
    Джентельменты ..
     
  12. Гость

    Репутация:
    0
    Всем привет! Это я уезжала отдыхать! А литературу хорошую нашла! И задание на практику уже сделала! Вот так! Спасибо вам за ваши письма!
     
  13. malor

    malor Active Member

    Репутация:
    0
    Регистрация:
    30 апр 2007
    Сообщения:
    27
    Симпатии:
    0
    Код (Text):
    procedure TForm1.bbReadXMLClick(Sender: TObject);
    var
    XMLDoc: IXMLDocument;
    Node,NodeSvc: IXMLNode;
    begin
    CoInitialize(nil);       
    XMLDoc:= IXMLDocument.Create(nil);
    XMLDoc.Active := true;
    На строку
    XMLDoc:= IXMLDocument.Create(nil);
    ругается :
    [Error] uMyXML.pas(47): Object or class type required
    В чем проблема?

    Delphi 7, WinXP_sp2
     
  14. malor

    malor Active Member

    Репутация:
    0
    Регистрация:
    30 апр 2007
    Сообщения:
    27
    Симпатии:
    0
    Перевод ПРОМТ-a: 'Объект или требуемый тип класса'. Не сильно проясняет!

    Может сменить объяву вместо XMLDoc: IXMLDocument; сделав XMLDoc: TXMLDocument;?
    При таком раскладе будет такая проблема:
    Код (Text):
    procedure TForm1.bbReadXMLClick(Sender: TObject);
    var
    XMLDoc: IXMLDocument;
    Node,NodeSvc: IXMLNode;
    i,j,l:Integer;
    begin
    CoInitialize(nil);
    XMLDoc:= TXMLDocument.Create(nil);
    XMLDoc.LoadFromFile(ExtractFilePath(Application.ExeName)+'otvet3.xml');
    XMLDoc.Active := true;
    l:=Node.ChildNodes.Count-1;
    Node := XMLDoc.DocumentElement.ChildNodes[0];
    На строку l:=Node.ChildNodes.Count-1; выдает :
    Access violation at address 00466CBD in module 'MyXML.exe'. Read of address 00000000.

    XML-файл:
    Код (Text):
    <?xml version="1.0" encoding="windows-1251"?>
    <Provs_Lst>
    <Prov id="1">
    <name>Поставщик_1</name>
    <Prov_Svcs>
    <Svc id="1">
    <Svc_Name>Вид_оплаты_1</Svc_Name>
    <min_amount>1000</min_amount>
    </Svc>
    <Svc id="2">
    <Svc_Name>Вид_оплаты_2</Svc_Name>
    <min_amount>5000</min_amount>
    </Svc>
    </Prov_Svcs>
    </Prov>
    <Prov id="5">

    </Prov>
    </Provs_Lst>
    Как быть?
     
  15. DIR3ct0r

    DIR3ct0r Гость

    Репутация:
    0
    Код (Text):
     XMLDoc.Active := true;
    l:=Node.ChildNodes.Count-1;
    Node := XMLDoc.DocumentElement.ChildNodes[0];
    тут наверняка перепутаны местами строки....поэтому и exception, обращение к методу несуществующего объекта...
    наверное должно быть
    Код (Text):
     XMLDoc.Active := true;
    Node := XMLDoc.DocumentElement.ChildNodes[0];
    if Assigned(Node) then
    for i:= 0 to Node.ChildNodes.Count-1 do
     
  16. Volkogriz

    Volkogriz Гость

    Репутация:
    0
    ЛЮДИ ПРИВЕТ !!! :)
    Хачу написать устоновку в Delphi !!!
    Сколько пробовал не работает!!!
    помогите!!! :)
     
  17. zubr

    zubr Гость

    Репутация:
    0
    1. Юноша, создай отдельную тему. Вроде не трудно.
    2. Как же мы можем помочь, если не понятно, что ты делаешь в своей программе установки. Тут телепатов с экстрасенсами нет, всего лишь программисты. :)
     
  18. tEtRiS

    tEtRiS Гость

    Репутация:
    0
    Есть два варианта решения:
    1. XMLDoc:= TXMLDocument.Create(nil) as IXMLDocument;
    2. XMLDoc := NewXMLDocument;

    Во втором случае док создается не пустой, а содержит информацию о версии XML, типа <?xml version="1.0"?>.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей