Главная страница
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.063 c
15-1331472633
alexdn
2012-03-11 17:30
2013.03.22
Цифровая подпись


2-1333289940
Dron55555555555
2012-04-01 18:19
2013.03.22
Дробные числа


4-1264439846
kalexi
2010-01-25 20:17
2013.03.22
Как определить позицию чужого окна БЕЗ РАМКИ (рабочую область)?


2-1347519862
MsGuns
2012-09-13 11:04
2013.03.22
Колонка для "птичек" в гриде.


15-1336126916
AV
2012-05-04 14:21
2013.03.22
Можно ли вернуть билет в кинотеатре, т.к. фильм не нравится?