Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.05.31;
Скачать: CL | DM;

Вниз

Вопрос про объявление   Найти похожие ветки 

 
товарищ вася   (2009-04-17 08:33) [0]

Как объявить свою процедуру, чтобы можно было использовать другие объекты на форме?
Procedure Combine;
begin
 Cmbbtn.Click;
end;


 
Palladin ©   (2009-04-17 08:40) [1]

надо ее превратить в метод


 
товарищ вася   (2009-04-17 08:54) [2]

Уменя есть форма
  Form1: TForm1;
тогда

> надо ее превратить в метод

это Form1.Combine?

implementation

Procedure Form1.Combine;
begin
Cmbbtn.Click;
end;


 
Palladin ©   (2009-04-17 08:59) [3]

положи на форму кнопку и щелкни по ней два раза. то что ты увидишь в редакторе и будет метод.


 
товарищ вася   (2009-04-17 09:11) [4]


> положи на форму кнопку и щелкни по ней два раза. то что
> ты увидишь в редакторе и будет метод.

Спасибо это я знал, ещё есть вариант
Procedure Combine(var fm:TForm1);
begin
fm.cmbbtn.Click;
end;
Просто неохота каждый раз писать перед баттон имя формы,
можно подумать у меня две формы.
Может где объявить процедуру чтоб она себя хорошо вела?


 
Palladin ©   (2009-04-17 09:19) [5]

иди читай учебники.


 
AIK ©   (2009-04-17 09:20) [6]

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
  Procedure Combine;  ///  CTR + Shift + C
   { Public declarations }
 end;


В зависимости от области видимости процедуры под private либо под public


 
Palladin ©   (2009-04-17 09:20) [7]


> можно подумать у меня две формы.

можно подумать, что ты глуп.

Var
f1,f2:TForm1;

вот и сиди думай, сколько у тебя форм


 
товарищ вася   (2009-04-17 09:40) [8]


> AIK ©   (17.04.09 09:20) [6]

За шорткат отдельное спасибо!
Немного другой вопрос:
Вот у меня  есть метод
Procedure MessagesBoxClick(Sender:Tobject);
объект MessagesBox:TListBox;
они оба объявлены в мэйн юнит
я хочу записать реализацию MessagesBoxClick в другой юнит
"другой юнит" присоединен  к мэйн при помощи uses.
как вызвать (MessagesBoxClick)  из мэйн юнит, точнее где что обявить чтобы всё вызвалось.


 
{RASkov} ©   (2009-04-17 09:51) [9]

> [8] товарищ вася   (17.04.09 09:40)
> где что обявить чтобы всё вызвалось.

Uses для этого...
В майнюнит добавь "другой юнит" в котором соответственно в разделе интерфейса объяви вызываемую(MessagesBoxClick) функцию
Только я так понял, что тебе ее не нужно назначать обработчикам событий(events) объектов..


 
MsGuns ©   (2009-04-17 10:07) [10]

Если процедура - метод класса, то получить "автора" клика можно по Sender
Например
procedure TForm1.Button1Click(Sender : TObject);
begin
 ShowMessage("Нажата кнопка "+(Sender as TButton).Caption);
end;

Если процедура внешняя (т.е. не является методом класса), то передать объект нужно с помощью параметра. Например

procedure SomeBattonClick(Button: TButton);
begin
 Button.Click;
end;



Страницы: 1 вся ветка

Текущий архив: 2009.05.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
15-1238450406
Kerk
2009-03-31 02:00
2009.05.31
Свободное ПО в России


2-1239895427
Igor2010
2009-04-16 19:23
2009.05.31
WordApplication1-компонент


15-1238071458
@!!ex
2009-03-26 15:44
2009.05.31
KDE 4 под Windows


2-1240165745
daxter
2009-04-19 22:29
2009.05.31
Помогите с indy 9


2-1239705942
andrew727
2009-04-14 14:45
2009.05.31
Экспорт данных из таблицы БД Access в массив