Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.11.2011, 08:09   #1
cr1me
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 10
Печаль Вызов созданной процедуры из созданной

Добрый день, совсем уже голова кипит незнаю как правильно вопрос для гугла поставить. Вообщем проблема такая.
у меня есть несколько процедур/функции
Код:
procedure CopMenDisk(s:string);
var
  SubItem: TMenuItem;
begin
  SubItem := TMenuItem.Create(form1.mainMenu1);
  SubItem.Caption := s;
  subitem.OnClick:=form1.Mclick;
  form1.n25.Add(SubItem);
  end;
Код:
Function ListDrive:TStringList;   
var
c:char; 
i:integer;  
begin
result:=Tstringlist.create;  
for c:='A' to 'Z' do  
begin
i:=getdrivetype(Pansichar(C+':\'));  
if i=3  then result.Add(C+':\'); 
if i=2  then result.Add(C+':\'+' ñüåìíûé äèñê'); 
end;
end
;
Код:
procedure initmenu;
var
i:integer;
begin
for i:=0 to  listdrive.Count-1 do
  begin
 CopMenDisk(listdrive[i]);
   end;
и я незнаю где их нужно объявить чтобы можно было допустим из процедуры initmenu воспользоваться функцией listdrive и CopMenDisk
Криворукий Самоучка
cr1me вне форума
Старый 17.11.2011, 08:27   #2
cr1me
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 10
По умолчанию

Сам разобрался добавил в паблик
Function ListDrive():TStringList; и т.д
а в имя функции добавил
function tform1.listdrive():Tstringlist;



но назрел еще 1 вопрос если ответите буду благодарен иначе сам разберусь как время будет.
Можно ли обойтись без TForm1 просто объявив функцию в паблик(у меня не получилось)

2. Не оффтопить. Оффтопом считается создание темы, не соответствующей названию раздела, вопрос или пост не по теме, или попытка перевода темы в русло другого вопроса.
Также к оффтопу приравнивается размещение своих личных вопросов в чужой теме, пусть даже и подходящей по смыслу. Есть вопрос - создайте свою тему.
И запомните - на форуме действуют правила "Одна тема - один вопрос", "Одна тема - один автор".
Сюда же относится и кросспостинг - размещение нескольких экземпляров своей "драгоценной" темы.

За оффтоп нарушитель получит нарушение №1.
Криворукий Самоучка

Последний раз редактировалось mihali4; 18.11.2011 в 21:35.
cr1me вне форума
Старый 17.11.2011, 08:41   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Можно ли обойтись без TForm1 просто объявив функцию в паблик(у меня не получилось)
можно. только объявлять фукцию/процедуру нужно ВНЕ описания класса..
например:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function TrataTa(параметры) : Тип_возращаемого_значения;
begin
   // тут тело
end;

procedure Bugaga(параметры);
begin
   // тут тело
end;

и т.д.
что у Вас не получилось то?!
Serge_Bliznykov вне форума
Старый 17.11.2011, 09:40   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Сам разобрался добавил в паблик
Function ListDrive():TStringList; и т.д
Учитывая что добавление было в public то увидеть надо было из другого модуля. В этом случае функция должна быть объявлена в разделе interface (надо добавлять строки выделенные красным)

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

procedure Bugaga(параметры);
function TrataTa(параметры) : Тип_возращаемого_значения;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function TrataTa(параметры) : Тип_возращаемого_значения;
begin
   // тут тело
end;

procedure Bugaga(параметры);
begin
   // тут тело
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума
Старый 17.11.2011, 10:17   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от evg_m
Учитывая что добавление было в public то увидеть надо было из другого модуля.
хм.. не уверен, что автор это имел в виду, когда говорил про секцию паблик.
Ему бы сначала с одним модулем (формой) разобраться...

впрочем, если ему эти функции нужно использовать в другом модуле, то Вы безусловно правы!
Serge_Bliznykov вне форума
Старый 18.11.2011, 05:13   #6
cr1me
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 10
По умолчанию

у меня не получилось обойтись без Tform и обьявлении процедуры в паблике.
в таком виде
Код:
mplementation

{$R *.DFM}

function TrataTa(параметры) : Тип_возращаемого_значения;
begin
   // тут тело
end;

procedure Bugaga(параметры);
begin
  TrataTa(параметры)   -не запустится скажет что не слышала не о какой трата та
end;
Криворукий Самоучка
cr1me вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с динамически созданной формой Airou C++ Builder 1 12.07.2011 10:58
Открытие файла созданной программой Desha Помощь студентам 3 08.12.2010 19:11
номер созданной строки в StringGrid MAX722 Общие вопросы Delphi 2 24.04.2010 03:42
Прозрачность динамически созданной формы Lime Общие вопросы .NET 1 03.04.2010 16:25
Рисование на форме созданной на WinApi N!ckeL Win Api 3 30.04.2008 19:02