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

Вниз

Юниты   Найти похожие ветки 

 
Steep ©   (2007-04-20 11:28) [0]

Не подскажете как использовать события (клики на клавиши например) функции и процедуры находящиеся в другом юните?

uses Unit2; я прописал

Пытаюсь использовать как

Form2. здесь имя процедуры... не помогает...


 
Ega23 ©   (2007-04-20 11:31) [1]

Ещё раз с начала, только внятно и подробно.


 
ЮЮ ©   (2007-04-20 11:35) [2]

Form2. здесь имя процедуры... не помогает...

Кто не помогает? Чем не помогает? Почему решил, что не помогает?
Лучше покажи, что реально написал, чем диагноз бессмысленный.


 
Desdechado ©   (2007-04-20 11:40) [3]

События не в юнитах, события в винде. А обработчики их - в классах. Чтоб обработчик задейстовать, нужно сначала экземпляр класса создать (обычно), а уж потом обработчик запускать.


 
Steep ©   (2007-04-20 11:42) [4]

Второй юнит

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

А токого синтаксиса нет...


 
Steep ©   (2007-04-20 11:43) [5]

Перенос в паблик так же не помогает...


 
Ega23 ©   (2007-04-20 11:45) [6]

private
  { Private declarations }
  procedure FastButtonClick(Sender: TObject);


А фигли ты хотел? Это же private-метод.
Быстро марш за книгу, читать что такое private, protected, public и published


 
stakan ©   (2007-04-20 11:49) [7]


> Frm_Add.FastButton
> А токого синтаксиса нет...

Frm_Add.FastButton(SomeObj);?
После
> Перенос в паблик
естественно.


 
Steep ©   (2007-04-20 11:49) [8]


> Быстро марш за книгу, читать что такое private, protected,
>  public и published


> Перенос в паблик так же не помогает...


 
Steep ©   (2007-04-20 11:51) [9]

т.е. оставить Frm_Add.FastButton без Sender: TObject?


 
Steep ©   (2007-04-20 12:28) [10]

так где же ошибка???


 
Плохиш ©   (2007-04-20 12:29) [11]


> так где же ошибка???

Ошибка в нежелании заняться изучением теории.


 
Ega23 ©   (2007-04-20 13:34) [12]


> так где же ошибка???


В 17-й строке.

Полные секции interface обоих юнитов - в студию!


 
Steep ©   (2007-04-20 14:31) [13]

блин...
Сделал простой примерчик - работает....


 
Steep ©   (2007-04-20 14:35) [14]

Видет нормально хотя выдает ошибку..

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


 
Ega23 ©   (2007-04-20 14:40) [15]


> Пишет Invalid property value


Где именно пишет?


 
Steep ©   (2007-04-20 15:00) [16]

После запуска выводится сообщение (с клавишами break, contine) с этой мессагой


 
Ega23 ©   (2007-04-20 15:04) [17]


> После запуска выводится сообщение (с клавишами 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-23 08:47) [18]

Может потому что делфя у меня 2006-я... или руки кривые ;)


 
Amoeba ©   (2007-04-23 13:19) [19]


> Steep ©   (23.04.07 08:47) [18]
>
> Может потому что делфя у меня 2006-я... или руки кривые
> ;)
>

Скорее второе...



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

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

Наверх




Память: 0.51 MB
Время: 0.059 c
2-1177306193
_Anton_
2007-04-23 09:29
2007.05.13
поднять окно в MDI


2-1176734131
Romm
2007-04-16 18:35
2007.05.13
Програмное выключение компьютера


15-1176296632
StriderMan
2007-04-11 17:03
2007.05.13
сложение путей файла


2-1177416513
Ксандр
2007-04-24 16:08
2007.05.13
SendMessage...


3-1172124141
userDelf
2007-02-22 09:02
2007.05.13
Проблема работы приложения на компах кроме моего