1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Процедуры и функции

Тема в разделе "Delphi - программирование", создана пользователем slavon-x86, 15 янв 2006.

  1. slavon-x86

    slavon-x86 Well-Known Member

    Репутация:
    0
    Регистрация:
    18 дек 2005
    Сообщения:
    215
    Симпатии:
    0
    Delphi.
    Код:
    Procedure aaa;
    Begin
    End;
    
    Procedure bbb;
    Begin
    End;
    Из процедуры bbb процедура aaa запускается,
    a из aaa процедура bbb не запускается.
    Как зделать чтобы можно было из любой процедуры запускать другую ?
     
  2. zubr

    zubr Гость

    Репутация:
    0
    В интерфейсной секции модуля объяви прототипы этих процедур и будет тебе счастье.
    Код:
    unit Unit1;
    
    interface
    
    uses
    SysUtils;
    
    Procedure aaa;
    Procedure bbb;
    
    implementation
    
    Procedure aaa;
    Begin
    End;
    
    Procedure bbb;
    Begin
    End;
    
    end.
     
  3. slavon-x86

    slavon-x86 Well-Known Member

    Репутация:
    0
    Регистрация:
    18 дек 2005
    Сообщения:
    215
    Симпатии:
    0
    А вот ещё вопрос:

    У меня есть процедура.
    Код:
    Procedure aaa;
    Begin
    Form1.Memo1.Lines.add('dfgd');
    End;
    Как можно зделать, чтобы не дописывать перед каждым компонентом "Form1".
    Только НЕ через "With Form1 do".
     
  4. DZX

    DZX Гость

    Репутация:
    0
    Обьяви процедуру внутри класса формы в private или public как тебе нужнее и не пиши.
     
  5. slavon-x86

    slavon-x86 Well-Known Member

    Репутация:
    0
    Регистрация:
    18 дек 2005
    Сообщения:
    215
    Симпатии:
    0
    Код:
    unit Unit1;
    
    interface
    
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs;
    
    type
    TForm1 = class(TForm)
    private
     { Private declarations }
    public
     { Public declarations }
     procedure aaa;
    end;
    
    var
    Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure aaa;
    begin
    Memo1.Lines.add('xxxxxxxxxx');
    end;
    
    end.
    Не работает
     
  6. zubr

    zubr Гость

    Репутация:
    0
    Правильно вот так:
    Код:
    procedure TForm1.aaa;
    begin
    Memo1.Lines.add('xxxxxxxxxx');
    end;
    Так как процедура aaa - член класса.
    З.Ы. Советую почитать литературу по объектно ориентированному программированию.
     
  7. slavon-x86

    slavon-x86 Well-Known Member

    Репутация:
    0
    Регистрация:
    18 дек 2005
    Сообщения:
    215
    Симпатии:
    0
    А если процедура ааа находится в другом модуле ?
     
  8. Smit

    Smit Гость

    Репутация:
    0
    1.В модуле с процедурой aaa находишь раздел uses.
    2.Прописываешь туда имя модуля, где описан Memo1.
    3.Юзаешь Memo1. Если Memo1 объявлен внутри класса TForm1 то придётся обращаться к Memo1 через него: Form1.Memo1.Lines.Add('text');

    Вообще любые переменные и процедуры (функции), если они объявлены в некотором модуле Unit1, в разделах public или published некоторого класса, будут доступны любым другим модулям, в разделе uses которых указано имя модуля Unit1. Имя модуля прописывается в Delphi автоматически, в разделе Unit, и совпадает с именем соответствующего pas-файла.
     
  9. DZX

    DZX Гость

    Репутация:
    0
    procedure TForm1.aaa;

    Вот так надо объявлять членов класса и все заработает.
     
Загрузка...

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