Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Что-то типа eval или другие способы... [D6]


Olorin ©   (2002-08-15 14:06:00) 

Что нибудь типа eval есть в Дельфях??
Задача такова... с каждой кнопкой у меня свазанны 2а поля ввода.... кнопок много и на каждую писать отдельную процедуру туговато и не красиво... через Sender я получаю только кнопку а как обратится к 2м полям ввода? :o)


Olorin   (2002-08-16 07:00:00) [1]

Таак теперь доперло... вроде как в моем примере теряется Sender :o)

Утро вечера мудренее (с)


Skier   (2002-08-15 16:35:00) [2]

>TTCustomDelphiMaster
Ага. Точно. Слона не заметил :) Спасибо !


TTCustomDelphiMaster   (2002-08-15 16:31:00) [3]

Поправочка

for ii := Length(AName) downto 1 do begin
if AName[ii] in ["A".."Z", "a".."z"] then Exit;

Result := AName[ii] + Result;


Olorin   (2002-08-15 15:42:00) [4]

Ок сегодня я уже не варю... пойду домой и просплюсь если что завтра докопаюсь :o)
Спасибо большое :o)


Skier   (2002-08-15 15:37:00) [5]

>Olorin
edt :=
TEdit( Владелец_TEdit-а.FindComponent("edtIMouse"+q));


Olorin   (2002-08-15 15:34:00) [6]

>Skier ©
Нее я то на своем примере пробовал и там в вашем примере стоит:
AEdit := TEdit(FindComponent("edtIMouse"+ AIndex));

Вот это то и прикольно что все одинаково... толи из-за with что-то не то происходит...


Skier   (2002-08-15 15:30:00) [7]

>Olorin

> На первый взгляд все одинаково


Ага, только мааааааааленькая мелочь - имена разные
Edit + бла-бла-бла и edtIMouse + бла-бла-бла...


Olorin   (2002-08-15 15:24:00) [8]

>Skier ©
Не пойму разницы:

AEdit := TEdit(FindComponent("Edit"+ AIndex));
ShowMessage(AEdit.Text);
Все ок!

edt := TEdit(FindComponent("edtIMouse"+q));
ShowMessage(edt.Text);
Пусто

На первый взгляд все одинаково :O)


Skier   (2002-08-15 15:15:00) [9]

>Olorin
если edt <> nil, то ShowMessage(edt.Text); выводит
пустую строку, потому что у TEdita нет текста.
Не думал об этом ? :)


Olorin   (2002-08-15 15:08:00) [10]

>Skier ©
Сорри пока ждал ответа экспериментировал... 14 позиция так как раз цифра... странно что ваш пример на ура пошел... а мой нифига... ниччего не пойму...


Skier   (2002-08-15 15:01:00) [11]

>Olorin
Нет слов...
q := Name[14]- Что это за чушь ?


Olorin   (2002-08-15 14:55:00) [12]


with Sender as TSpeedButton do begin
ShowMessage(Name); //Тут все ок
q := Name[14]; // нужная цифра
ShowMessage(q); // есть!
edt := TEdit(FindComponent("edtIMouse"+q));
z := "edtIMouse"+q; //
ShowMessage(z); //есть такая песня...
ShowMessage(edt.Text); // а тут пусто :o((
end;


Skier   (2002-08-15 14:38:00) [13]

>Olorin

Примерно так : (обработчик OnClick у всех один и тот же)


procedure TForm1.ButtonClick(Sender: TObject);

function GetIndexFromName(const AName : String) : String;
var
ii : Integer;
AStrIndex : String;
begin
Result := EmptyStr;
if AName = EmptyStr then Exit;
for ii := Length(AName) downto 1 do begin
if AName[ii] in ["A".."Z", "a".."z"] then Exit;
Result := Result + AName[ii];
end; //for
end; //GetIndexFromName

var
AComboBox : TComboBox;
AEdit : TEdit;
AIndex : String;
begin
AIndex := GetIndexFromName(TButton(Sender).Name);
if AIndex <> EmptyStr then begin
AComboBox := TComboBox(FindComponent("ComboBox"+ AIndex));
AEdit := TEdit(FindComponent("Edit"+ AIndex));
if (AComboBox <> nil) and (AEdit <> nil) then begin
ShowMessage("Found");
//your code goes here...
end; //if
end; //if
end;


Olorin   (2002-08-15 14:23:00) [14]

у меня комбобокс и едитбокс... тоесть у них часть имени одинаковая различаются только цифирями... тоесть кнопке
Button1 надо брать из EditBox1 и ComboBox1 :o)


Skier   (2002-08-15 14:17:00) [15]

>Olorin
Только из EditBox1 или ещё и из второго какого-то Edit-a ?


Olorin   (2002-08-15 14:14:00) [16]

ну тоесть из соответствующих полей надо брать значения при обработке клика на кнопки :o)

EditBox1
EditBox2
EditBox3
Button1
Button2
Button3

При нажатии на Button1 надо взять значение из EditBox1 :o)


Skier   (2002-08-15 14:09:00) [17]

>Olorin

> ... с каждой кнопкой у меня свазанны 2а поля ввода


Поясни : как это - "связаны" ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо