![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что-то типа 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а поля ввода
Поясни : как это - "связаны" ?