![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Всем доброго....
Вопрос заключается в следующем: Есть некоторая функция типа shortstring: SomeFunction(bool_FuncParam: boolean):shortstring; из разных мест программы в нее могут передаваться четыре переменные (Parall, Ortho, Blinding, Select), соответственно имеющие значение true or false, требуется на выходе функции получить имя входящей переменной при значении true этой входящей переменной, т.е. Код:
function SomeFunction(bool_FuncParam: boolean):shortstring;
begin
if not bool_FuncParam then Result:='Nothing' else
begin
if .........{bool_FuncParam Name as Parall} then Result:='Parall';
if .........{bool_FuncParam Name as Ortho} then Result:='Ortho';
if .........{bool_FuncParam Name as Blinding} then Result:='Blinding';
if .........{bool_FuncParam Name as Select} then Result:='Select';
end;
end;
передача значения осуществляется соответственно
Memo1.Lines.Add(SomeFunction(Parall));
Memo1.Lines.Add(SomeFunction(Ortho));
Memo1.Lines.Add(SomeFunction(Blinding));
Memo1.Lines.Add(SomeFunction(Select));Какие могут быть соображения по данному вопросу? |
|
#2
|
|||
|
|||
|
Если идти таким путем, то никак, т.к. имена параметров внутри функции никак не соотвносятся с переменными, переданными извне.
вариант решения - передавать некоторый класс. Тогда можно получить имя класса. Например: Код:
type
TBaseVar = class
Value : Boolean;
end;
Parall = class(TBaseVar) end;
Ortho = class(TBaseVar) end;
...
function SomeFunction(AVar : TBaseVar) : String;
begin
Result := AVar.ClassName;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
C : TBaseVar;
begin
C := Parall.Create;
ShowMessage(SomeFunction(C));
C.Free;
end; |
|
#3
|
||||
|
||||
|
хм, в эту сторону я даже и не копал.... спасибо за подсказку,
соответственно экземплярам класса присваивают значения Код:
Parall.Value:=true; Ortho.Value:=false; ...и т.п. |
|
#4
|
|||
|
|||
|
Да, именно так.
Я ж там написал проверку. просто попробуй и все. |
|
#5
|
||||
|
||||
|
А 3ачем вообще Boolean передвать? передавайте byte например...
|