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

Вниз

Компоненты формы не доступны в другой форме   Найти похожие ветки 

 
leklerk ©   (2012-04-19 08:28) [0]

Добрый день! Подскажите пожалуйста, кто знает, можно ли сделать так, чтобы компоненты одной формы были доступны в другой?


 
Ega23 ©   (2012-04-19 08:38) [1]

Во-первых, так не делается. "туалет в одной квартире был доступен в другой".
Во-вторых, если всё-таки очень хочется и прямо вот не терпится - сделай публичное свойство.


 
oldman ©   (2012-04-19 08:39) [2]

прописать unit2 в uses unit1


 
stas ©   (2012-04-19 09:10) [3]

Ega23 ©   (19.04.12 08:38) [1]
>Они по умолчанию public, не думаю что он намеренно переместил в другую секцию.


 
Ega23 ©   (2012-04-19 09:15) [4]


> Они по умолчанию public, не думаю что он намеренно переместил
> в другую секцию.


1. Они по умолчанию не public, а published
2. Кто мешает мне объявить 100500 TEdit в привате и работать с ними?


 
Медвежонок Пятачок ©   (2012-04-19 09:31) [5]

можно ли сделать так, чтобы компоненты одной формы были доступны в другой?

Интереснее другой вопрос:
"Можно ли сделать так, чтобы они стали недоступны в другой?"

Который одновременно является еще и ответом на исходный вопрос


 
Ega23 ©   (2012-04-19 09:38) [6]


> "Можно ли сделать так, чтобы они стали недоступны в другой?"


можно.


 
Anatoly Podgoretsky ©   (2012-04-19 09:42) [7]


> 1. Они по умолчанию не public, а published

Они вне секций, поэтому они могут быть загружены из DFM


 
Медвежонок Пятачок ©   (2012-04-19 09:46) [8]

можно.

как бы можно, но на самом деле как бы нельзя. даже если они в привате


 
AV ©   (2012-04-19 09:49) [9]

выкинуть нафиг
var
 Form2: TForm2;

написать
type
 TForm2 = class(TForm)
   Memo1: TMemo;
 private
   function GetTextF2: string;
   procedure SetTextF2(const Value: string);    { Private declarations }
 public     { Public declarations }
   property TxtMemoForm2: string read GetTextF2 write SetTextF2;
 end;

implementation
{$R *.dfm}

{ TForm2 }
function TForm2.GetTextF2: string;
begin
 Result := Memo1.Text;
end;

procedure TForm2.SetTextF2(const Value: string);
begin
 Memo1.Text := Value;
end;

все, теперь только
uses
 , Unit2;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private      { Private declarations }
 public       { Public declarations }
   F2: TForm2;
 end;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 if F2 <> nil then
   F2.TxtMemoForm2 := TxtMemoForm2 + #13#10 + "TForm1.Button1Click";


 
AV ©   (2012-04-19 10:04) [10]


> AV ©   (19.04.12 09:49) [9]

ахинея..


 
CRLF   (2012-04-19 10:19) [11]


> можно.
Через Form.Components[I] всё равно ведь доступны


 
Ega23 ©   (2012-04-19 10:25) [12]


> как бы можно, но на самом деле как бы нельзя. даже если они в привате


Ну если долго и упорно рекурсивно бегать по Controls, а также знать, чем они друг от друга отличаются, то можно.


 
Ega23 ©   (2012-04-19 10:26) [13]


> Через Form.Components[I] всё равно ведь доступны


Не всегда. Через Controls ещё можно контролы получить, у которых Parent определён.


 
CRLF   (2012-04-19 10:42) [14]

Да, не проснулся ишшо... Если овнер=нил, то в компонентах приватный компонент не засветится, конечно.


 
Медвежонок Пятачок ©   (2012-04-19 10:46) [15]

если овнер нил, то оно как бы и к исходному  вопросу не относится.


 
Ega23 ©   (2012-04-19 10:48) [16]


> если овнер нил, то оно как бы и к исходному  вопросу не относится.


Чё это?


 
Медвежонок Пятачок ©   (2012-04-19 10:51) [17]

чтобы компоненты одной формы

Мы ищем компоненты одной формы.

Компоненты не этой одной формы мы не ищем.

Если овнер и парент нил, то они нам просто не интересны.

Нас интересует доступность компонентов "одной формы"


 
Ega23 ©   (2012-04-19 10:53) [18]

Почтительно и пристыженно умолкаю.


 
stas ©   (2012-04-19 11:27) [19]

Ega23 ©   (19.04.12 09:15) [4]

1. В случае с формой и ее компонентами в published нет смысла... А раз они доступны вне класса значит они public, хоть и объявлены вне секции
2. Никто, но если бы человек это сделал он бы не задавал таких вопросов, ответ в [2] самый верный...


 
Anatoly Podgoretsky ©   (2012-04-19 11:38) [20]


> если овнер нил, то оно как бы и к исходному  вопросу не
> относится.

А разве он об этом что ли бо говорил?


 
Anatoly Podgoretsky ©   (2012-04-19 11:40) [21]


> 2. Никто, но если бы человек это сделал он бы не задавал
> таких вопросов

И не надейся


 
Ega23 ©   (2012-04-19 12:28) [22]


>  В случае с формой и ее компонентами в published нет смысла. А раз они доступны вне класса значит они public, хоть и объявлены вне секции


А мужики-то не знают!



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

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

Наверх




Память: 0.52 MB
Время: 0.06 c
2-1337757483
serge
2012-05-23 11:18
2013.03.22
нужна помощь с событием onkeydown


15-1335039032
Andryk
2012-04-22 00:10
2013.03.22
Всем привет, тутже есть математики?)))


15-1351150942
delphist
2012-10-25 11:42
2013.03.22
Delphi-форумы


15-1338987676
Давайте будем жрать!
2012-06-06 17:01
2013.03.22
Отладка в XE2


15-1339341068
Дмитрий С
2012-06-10 19:11
2013.03.22
TCP