Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.07 c
15-1353950365
Разведка
2012-11-26 21:19
2013.03.22
Проблема принтера для чеков VKP-80-II


15-1337890087
vasa777
2012-05-25 00:08
2013.03.22
D WD (Delphi Xe3)


15-1334595190
Cyberden
2012-04-16 20:53
2013.03.22
Помогите написать программу!


15-1344857976
БарЛог
2012-08-13 15:39
2013.03.22
А как такая программа будет называться?


15-1336837860
dmk
2012-05-12 19:51
2013.03.22
Отпуск





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский