![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Юниты [XP]
Steep © (2007-04-20 11:28:00)Не подскажете как использовать события (клики на клавиши например) функции и процедуры находящиеся в другом юните?
uses Unit2; я прописал
Пытаюсь использовать как
Form2. здесь имя процедуры... не помогает...
Amoeba (2007-04-23 13:19:00) [1]
> Steep © (23.04.07 08:47) [18]
>
> Может потому что делфя у меня 2006-я... или руки кривые
> ;)
>
Скорее второе...
Steep (2007-04-23 08:47:00) [2]Может потому что делфя у меня 2006-я... или руки кривые ;)
Ega23 (2007-04-20 15:04:00) [3]
> После запуска выводится сообщение (с клавишами break, contine)
> с этой мессагой
А у меня почему-то не выводится. Что я делаю не так?
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(Form2.GetCount(3,2));
end;
end.
type
TForm2 = class(TForm)
private
{ Private declarations }
public
function GetCount(const X, Y : Integer) : string;
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
{ TForm2 }
function TForm2.GetCount(const X, Y: Integer): string;
begin
Result := IntToStr(X+Y);
end;
Steep (2007-04-20 15:00:00) [4]После запуска выводится сообщение (с клавишами break, contine) с этой мессагой
Ega23 (2007-04-20 14:40:00) [5]
> Пишет Invalid property value
Где именно пишет?
Steep (2007-04-20 14:35:00) [6]Видет нормально хотя выдает ошибку..
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Showmessage( Form2.Count(2,3) );
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm2 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
Function Count(us1, us2:integer): string;
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
Function TForm2.Count(us1, us2:integer): string;
begin
Result := IntToStr(us1+us2);
end;
end.
Пишет Invalid property value
Steep (2007-04-20 14:31:00) [7]блин...
Сделал простой примерчик - работает....
Ega23 (2007-04-20 13:34:00) [8]
> так где же ошибка???
В 17-й строке.
Полные секции interface обоих юнитов - в студию!
Плохиш (2007-04-20 12:29:00) [9]
> так где же ошибка???
Ошибка в нежелании заняться изучением теории.
Steep (2007-04-20 12:28:00) [10]так где же ошибка???
Steep (2007-04-20 11:51:00) [11]т.е. оставить
Frm_Add.FastButtonбезSender: TObject?
Steep (2007-04-20 11:49:00) [12]
> Быстро марш за книгу, читать что такое private, protected,
> public и published
> Перенос в паблик так же не помогает...
stakan (2007-04-20 11:49:00) [13]
> Frm_Add.FastButton
> А токого синтаксиса нет...
Frm_Add.FastButton(SomeObj);?
После
> Перенос в паблик
естественно.
Ega23 (2007-04-20 11:45:00) [14]
private
{ Private declarations }
procedure FastButtonClick(Sender: TObject);
А фигли ты хотел? Это же private-метод.
Быстро марш за книгу, читать что такое private, protected, public и published
Steep (2007-04-20 11:43:00) [15]Перенос в паблик так же не помогает...
Steep (2007-04-20 11:42:00) [16]Второй юнит
unit AddUnit;
............
private
{ Private declarations }
procedure FastButtonClick(Sender: TObject);
.................
var
Frm_Add: TFrm_Add;
.................
//Щелчек по клавише
procedure TFrm_Add.FastButtonClick(Sender: TObject);
var
i: byte;
path: string;
begin
for I := 1 to 5 do
begin
Path := (Sender as TPathButton).PathArray[i];
if path<>'' then
Showmessage(Path);
//ShellExecute(handle, 'open', Path, NULL, NULL, SW_SHOWNORMAL);
end;
end;
В основном юните пишу
......
implementation
uses AddUnit;
......
Frm_Add.FastButton
А токого синтаксиса нет...
Desdechado (2007-04-20 11:40:00) [17]События не в юнитах, события в винде. А обработчики их - в классах. Чтоб обработчик задейстовать, нужно сначала экземпляр класса создать (обычно), а уж потом обработчик запускать.
ЮЮ (2007-04-20 11:35:00) [18]Form2. здесь имя процедуры... не помогает...
Кто не помогает? Чем не помогает? Почему решил, что не помогает?
Лучше покажи, что реально написал, чем диагноз бессмысленный.
Ega23 (2007-04-20 11:31:00) [19]Ещё раз с начала, только внятно и подробно.