Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.26;
Скачать: CL | DM;

Вниз

Что-то типа eval или другие способы...   Найти похожие ветки 

 
Olorin ©   (2002-08-15 14:06) [0]

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


 
Skier ©   (2002-08-15 14:09) [1]

>Olorin

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


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


 
Olorin ©   (2002-08-15 14:14) [2]

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

EditBox1
EditBox2
EditBox3
Button1
Button2
Button3

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


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

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


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

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


 
Skier ©   (2002-08-15 14:38) [5]

>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:55) [6]


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 15:01) [7]

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


 
Olorin ©   (2002-08-15 15:08) [8]

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


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

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


 
Olorin ©   (2002-08-15 15:24) [10]

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

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

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

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


 
Skier ©   (2002-08-15 15:30) [11]

>Olorin

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


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


 
Olorin ©   (2002-08-15 15:34) [12]

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

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


 
Skier ©   (2002-08-15 15:37) [13]

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


 
Olorin ©   (2002-08-15 15:42) [14]

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


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

Поправочка

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

Result := AName[ii] + Result;


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

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


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2002.08.26;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.019 c
14-85185
monomah
2002-07-30 16:05
2002.08.26
Показ RTF с картинками


1-84971
Bartik
2002-08-15 16:23
2002.08.26
Как создать Help`арь?


3-84893
Corte ™
2002-08-05 09:45
2002.08.26
Чем лечится capability not supported!!!!!


3-84862
LexaTyukha
2002-08-05 10:41
2002.08.26
Упаковка dbf-таблиц не используя BDE (dbiPackTable не подходит)


1-84943
просто панк
2002-08-06 01:18
2002.08.26
вопрос по левым Edit ам..