[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. sidapas23

    sidapas23 New Member

    Joined:
    13 Nov 2010
    Messages:
    88
    Likes Received:
    2
    Reputations:
    -3
    При компиле на Delphi 7 выдает такое: [Error] File not found: 'Unit3.dfm' Мне надо весь слух об этом юните удалить как это сделать?
     
  2. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    sidapas23, это не юнит, это форма TForm.
    1. Открываешь проект.
    2. View - Project Manager.
    3. Выделяешь лишнее и удаляешь.
     
    #8022 Sams, 26 Mar 2011
    Last edited: 26 Mar 2011
  3. sidapas23

    sidapas23 New Member

    Joined:
    13 Nov 2010
    Messages:
    88
    Likes Received:
    2
    Reputations:
    -3
    Sams, там нет ни слуха о юнит3 и ничего ни будь связного с ним
     
  4. Freedom

    Freedom Elder - Старейшина

    Joined:
    2 Jul 2007
    Messages:
    38
    Likes Received:
    92
    Reputations:
    8
    Всем привет. Ребят у мну вопрос.

    Есть несколько функция. допустим

    raschet1(что нибудь1);

    и есть строка ttt:string;

    если мы сделаем так ttt:='raschet1(что нибудь1)';

    то каким образом обратиться к ttt чтобы функция содержащаяся в строке выполнилась ?
     
  5. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    Freedom,
    Такой записью ttt:='raschet1(что нибудь1)'; вы просто запишите в переменную string строку, и ничего более.
    Суть функции в Делфи (ибо в Делфи есть еще такое понятие как процедура) заключается в возвращении какого либо результата после её выполнения. Что бы записать в переменную ttt результат выполнения raschet1(что нибудь1), корректнее будет выполнить это таким образом:
    ttt := raschet1(что нибудь1);
    при этом прототип функции должен быть таким:
    function raschet1(что нибудь1): string;
     
  6. Freedom

    Freedom Elder - Старейшина

    Joined:
    2 Jul 2007
    Messages:
    38
    Likes Received:
    92
    Reputations:
    8

    )))))))))))) я это все прекрасно понимаю ))).

    вопрос в другом. В вызове функции(процедуры) по имени хранящимся в строковой переменной ))

    как вызвать функцию(процедуру) если её имя(а также все нужные параметры) хранятся допустим в ttt (что то типа ttt:='raschet1(5)'; )
     
    #8026 Freedom, 27 Mar 2011
    Last edited: 27 Mar 2011
  7. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    Как в консольном приложении дельфи добавить Idhttp.Хочу что-бы моя программа работала с сетью и общалась с юзером через консоль.
     
  8. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    Freedom,
    Такое вряд-ли возможно реализовать, но можно нечто подобное.
    Например функция

    Code:
    function raschet1(a: integer): string;
    begin
        result := IntToStr(a);
    end;
    тогда вы можете объявить переменную ttt как прототип функции, и присвоить ей адрес raschet1:

    Code:
    var
    ttt: function (a: integer): string;
    присваиваем адрес:

    Code:
    ttt := @raschet1;
    Теперь ttt является ничем иным, как функцией raschet1:

    Code:
    ShowMessage(ttt(5));
     
  9. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    waik,
    Code:
    var
        http: TIdHttp;
    
    begin
        http := TIdHttp.Create(self);
    end.
    после работы не стоит забывать освобождать память:

    Code:
    http.Free;
     
    2 people like this.
  10. AGIMgal

    AGIMgal New Member

    Joined:
    9 Jun 2010
    Messages:
    66
    Likes Received:
    0
    Reputations:
    0
    вобщем есть обьект(или лучше запись?)
    Code:
     TKoor = object
        x,y:integer;
     end;
    как сделать так чтобы обратится к
    Code:
    Sqrt(x^2+y^2)
    (тобишь растояние от начала координат)?
    нехочется делать какихто функций вне обьекта.
     
    #8030 AGIMgal, 27 Mar 2011
    Last edited: 27 Mar 2011
  11. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    AGIMgal,
    Code:
    TKoor = object
        x,y:integer;
     end;
    Code:
    var
    struct: TKoor;
    Code:
    struct.x := 1;
    struct.y := 2;
    Sqrt(struct.x^2+struct.y^2)
     
  12. AGIMgal

    AGIMgal New Member

    Joined:
    9 Jun 2010
    Messages:
    66
    Likes Received:
    0
    Reputations:
    0
    ты меня извини, но это коню понятно. Я хочу чтобы у обьекта было поле в котором хнанилась эта характеристика,чтобы массив кооринат отсортировывать по ней. это конечно можно сделать как ты показал, но мне это не интересно.
     
  13. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    Пытаюсь написать валидатор мыл.Пробую проверять на существования мыла mail.ru
    Отправляю данные так :
    a:=наше мыло
    Code:
      data:=tstringlist.Create;
         data.Add('Action=login');
         data.Add('Username='+copy(a,1,pos('@',a)-1) );
         data.Add('Domain='+copy(a,pos('@',a)+1,Length(a)) );
    
      S:=Http.post('http://win.mail.ru/cgi-bin/passremind',data);
    
    Но в S храниться главная страница win.mail.ru/cgi-bin/passremind . Редиректов вроде нету.
    Подскажите как сделать валидотор более универсальным в плане доменов мыл или как мне мой вариант сделать рабочим.
     
    #8033 waik, 27 Mar 2011
    Last edited: 27 Mar 2011
  14. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    гугли RTTI. таке можливо але не пам’ятаю як реалізується...
    тільки не ttt:='raschet1(что нибудь1)'; а ttt:='raschet1' ttt1:='что нибудь1'

    і потім щось типу RTTI.GetValueOfVariableName(ttt1)...

    і тільки на delphi 2010-x

    тут пише
     
    #8034 ADR-007, 28 Mar 2011
    Last edited: 28 Mar 2011
  15. FSCool

    FSCool New Member

    Joined:
    29 Jun 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Как еще, помимо телнета, можно управлять удаленной машиной? Какие компоненты delphi для этого необходимы?

    Спасибо.
     
  16. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    Нет таких компонентов, разбивай на части задачу и решай
     
  17. FSCool

    FSCool New Member

    Joined:
    29 Jun 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Можете пример привести?
     
  18. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    Пример чего?
    у вас несколько задач, одна из которых установить соединение между 1 и 2 компьютером, вторая это управление компьютером 1 которая тоже подразумевает разделение на несколько частей.
     
  19. FSCool

    FSCool New Member

    Joined:
    29 Jun 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Это я и спрашивал. Сейчас пишу программу с использованием Indy Telnet Client/Serer. Как еще можно управлять удаленной машиной?
     
  20. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    что именно вы подразумеваете под управлением компьютером?
     
Thread Status:
Not open for further replies.