![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Компоненты формы не доступны в другой форме
leklerk © (2012-04-19 08:28:00)Добрый день! Подскажите пожалуйста, кто знает, можно ли сделать так, чтобы компоненты одной формы были доступны в другой?
Ega23 (2012-04-19 12:28:00) [1]
> В случае с формой и ее компонентами в published нет смысла. А раз они доступны вне класса значит они public, хоть и объявлены вне секции
А мужики-то не знают!
Anatoly Podgoretsky (2012-04-19 11:40:00) [2]
> 2. Никто, но если бы человек это сделал он бы не задавал
> таких вопросов
И не надейся
Anatoly Podgoretsky (2012-04-19 11:38:00) [3]
> если овнер нил, то оно как бы и к исходному вопросу не
> относится.
А разве он об этом что ли бо говорил?
stas (2012-04-19 11:27:00) [4]Ega23 © (19.04.12 09:15) [4]
1. В случае с формой и ее компонентами в published нет смысла... А раз они доступны вне класса значит они public, хоть и объявлены вне секции
2. Никто, но если бы человек это сделал он бы не задавал таких вопросов, ответ в [2] самый верный...
Ega23 (2012-04-19 10:53:00) [5]Почтительно и пристыженно умолкаю.
Медвежонок Пятачок (2012-04-19 10:51:00) [6]чтобы компоненты одной формы
Мы ищем компоненты одной формы.
Компоненты не этой одной формы мы не ищем.
Если овнер и парент нил, то они нам просто не интересны.
Нас интересует доступность компонентов "одной формы"
Ega23 (2012-04-19 10:48:00) [7]
> если овнер нил, то оно как бы и к исходному вопросу не относится.
Чё это?
Медвежонок Пятачок (2012-04-19 10:46:00) [8]если овнер нил, то оно как бы и к исходному вопросу не относится.
CRLF (2012-04-19 10:42:00) [9]Да, не проснулся ишшо... Если овнер=нил, то в компонентах приватный компонент не засветится, конечно.
Ega23 (2012-04-19 10:26:00) [10]
> Через Form.Components[I] всё равно ведь доступны
Не всегда. Через Controls ещё можно контролы получить, у которых Parent определён.
Ega23 (2012-04-19 10:25:00) [11]
> как бы можно, но на самом деле как бы нельзя. даже если они в привате
Ну если долго и упорно рекурсивно бегать по Controls, а также знать, чем они друг от друга отличаются, то можно.
CRLF (2012-04-19 10:19:00) [12]
> можно.
Через Form.Components[I] всё равно ведь доступны
AV (2012-04-19 10:04:00) [13]
> AV © (19.04.12 09:49) [9]
ахинея..
AV (2012-04-19 09:49:00) [14]выкинуть нафиг
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';
Медвежонок Пятачок (2012-04-19 09:46:00) [15]можно.
как бы можно, но на самом деле как бы нельзя. даже если они в привате
Anatoly Podgoretsky (2012-04-19 09:42:00) [16]
> 1. Они по умолчанию не public, а published
Они вне секций, поэтому они могут быть загружены из DFM
Ega23 (2012-04-19 09:38:00) [17]
> "Можно ли сделать так, чтобы они стали недоступны в другой?"
можно.
Медвежонок Пятачок (2012-04-19 09:31:00) [18]можно ли сделать так, чтобы компоненты одной формы были доступны в другой?
Интереснее другой вопрос:
"Можно ли сделать так, чтобы они стали недоступны в другой?"
Который одновременно является еще и ответом на исходный вопрос
Ega23 (2012-04-19 09:15:00) [19]
> Они по умолчанию public, не думаю что он намеренно переместил
> в другую секцию.
1. Они по умолчанию не public, а published
2. Кто мешает мне объявить 100500 TEdit в привате и работать с ними?
stas (2012-04-19 09:10:00) [20]Ega23 © (19.04.12 08:38) [1]
>Они по умолчанию public, не думаю что он намеренно переместил в другую секцию.