Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите ПЛИЗЗЗЗЗ / 9 сообщений из 9, страница 1 из 1
14.03.2003, 06:54
    #32119786
Hook
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ПЛИЗЗЗЗЗ
Всем...
Доброе Утро

Помогите ПЛИЗЗЗЗЗ :(
Есть несколько Форм.
Одну из форм под названием (InformationF ) я вызвыаю
постоянно среди других Форм.
В Форме (InformationF ) есть control (TEdit) в которую я чо нить
пишу.
Так же в формах которые вызывают (InformationF) есть
control-ы (TEdit) в которые я должен поместить значение из
(InformationF ) control (TEdit)
.
Я попробовал зделать процедурку типа такой :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
procedure TInformationF.GetText(F: TForm; C: Tclass);
Var
 I:Integer;
begin
  With F do
  begin
    For I:= 0  to ComponentCount- 1  do
     if Components[i].ClassType=C then
      With Components[i] as C do
      begin
       Text:=Edit1.Text;
      end;
  end;
end;  

которая передает Название формы,и Класс который я хочу
использовать. Процедурка раположена в InformationF.
Она работет но только вместо того
чтобы присваивать значение Сontrol-у он значение передает
в InformationF.Caption :(

Помогите уважаемые...
Может я недоглядел что-нить :((

Заранее благодарен!!!!
...
Рейтинг: 0 / 0
14.03.2003, 08:37
    #32119811
m_kus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ПЛИЗЗЗЗЗ
Зачем передаёшь TClass?? Ты же написал, что у тебя именно TEdit?
Ты пользуешься свойством Text, которое есть не у любого класса... Поэтому компилятор пишет не в Components(i).Text (он думает, что там НЕТ такого свойства), а в InformationF.Text...
Но раз уж хочется передавать класс, я бы написал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
procedure TInformationF.GetText(F: TForm; C: Tclass);
Var
 I:Integer;
begin
  Assert(C is TCustomEdit);
  With F do
  begin
    For I:= 0  to ComponentCount- 1  do
     if Components[i].ClassType=C then
      With Components[i] as TCustomEdit do
      begin
       Text:=Edit1.Text;
      end;
  end;
end;  
...
Рейтинг: 0 / 0
14.03.2003, 11:52
    #32120006
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ПЛИЗЗЗЗЗ
Я вообще не понял задачу - ты чего, хочешь писать в любую форму в любой контрол или толко в один и тот же?
...
Рейтинг: 0 / 0
14.03.2003, 12:11
    #32120025
Hook
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ПЛИЗЗЗЗЗ
У меня на форме несколько TEdits
и кликнув на какой нить Edit
открывается InformationF
и взять отуды значения такового же
Edit-а
...
Рейтинг: 0 / 0
14.03.2003, 12:27
    #32120037
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ПЛИЗЗЗЗЗ
А там оно как появляется?

И мне кажется гораздо лучше оформить функцией, типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
function TInformationF.GetText(C: string //имя нужного edit-a): string;
Var I:Integer;
begin
    For I:= 0  to ComponentCount- 1  do
     if Components[i] is TEdit then begin
       Result := Components[i].Text;
       Break;
     end;
end;

......

//вызывать из другой формы так:
Edit45.text := InformationForm.GetText('Edit45');  


А то ты как то через заднее место сделал все, извиняюсь :)
...
Рейтинг: 0 / 0
14.03.2003, 12:29
    #32120040
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ПЛИЗЗЗЗЗ
Эх, забыл:
Код: plaintext
1.
2.
if Components[i] is TEdit then
  if TEdit(Components[i]).Name = C then begin
.... 
...
Рейтинг: 0 / 0
14.03.2003, 12:46
    #32120060
Hook
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ПЛИЗЗЗЗЗ
Уважаемый tygra

Контрол (Form1.Edit) вызывает
форму а там есть InformationF.Edit1
а чо нить туды ввожу и закрываю форму.
а она должна отобразитси на (Form1.Edit)


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure TInformationF.GetText(F: TForm; C: Tclass);
Var
 I:Integer;
begin
  With F do
  begin
    For I:= 0  to ComponentCount- 1  do
     if Components[i].ClassNameIs('TEdit') then
      With Components[i] as TEdit do
      begin
        If  name=c1 then
         Text:=Edit1.Text;
      end;  
  end;
end;       
  
...
Рейтинг: 0 / 0
14.03.2003, 14:24
    #32120176
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ПЛИЗЗЗЗЗ
Ну и что? Из-за этого зачем писать непонятно что?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
function TInformationF.GetText(C: string //имя нужного edit-a): string;
Var I:Integer;
begin
    if ShowModal <> mrOk then Exit; --тут показываем форму InformationF юзеру и ждем окончания ввода, если не Ок - ничего не делаем
 
    For I:= 0  to ComponentCount- 1  do
    if Components is TEdit then
      if TEdit(Components[i]).Name = C then begin
        Result := Components[i].Text;
        Break;
      end;
end;
 [i]--вызывать из другой формы так:
 
var infform: TInformationF;
infform := TInformationF.Create(Self); --или не делаем это, если при закрытии на убиваем форму
 
Edit45.text := infform.GetText('Edit45');
...
Рейтинг: 0 / 0
14.03.2003, 14:46
    #32120202
Артем1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ПЛИЗЗЗЗЗ
Может, так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
function TInformationF.GetText(text: string {текст их Form1.Edit1}): string;
begin
    if ShowModal = mrOk then 
      Result := Edit1.Text
    else
      Result := text;
end;

 --вызывать из другой формы так:
 
var infform: TInformationF;
infform := TInformationF.Create(Self); --или не делаем это, если при закрытии на убиваем форму
 
Edit45.text := infform.GetText(Edit45.text);
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите ПЛИЗЗЗЗЗ / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]