Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2014, 23:19   #1
wowsel
Begin'нер
Пользователь
 
Аватар для wowsel
 
Регистрация: 30.04.2010
Сообщений: 48
По умолчанию Создание объекта из переменной

Здравствуйте, уважаемые знатоки форума.

Прошу прощения если данная тема уже обсуждалась и я её не обнаружил.

Что мы имеем:
Код:
type
Tdoctype = class(TObject)
объявлен


Код:
var
ORDER:tdoctype;
объявлен
Код:
function ctype(docID: integer; docName: string): boolean;
Объявлена и имеет следующий вид

Код:
function ctype(docID: integer; docName: string): boolean;
begin

docName:=Tdoctype.Create;
// Tdoctype(docName).docID:=docID;
// Tdoctype(docName).docName:=docName;

end;
Собственно в ней и проблема. В процессе работы программы мы, в зависимости от условия, выполняем следующий код:
Код:
if sfile.ReadBool('fSelect','ORDER',false) then begin ctype(n,'ORDER'); inc(n); end;
т.е. нам нужно создать только те переменные, которые проходят проверку. Хочется сделать через функцию.
Интересует как дать понять Delphi 2010, что
Код:
docname:=Tdoctype.create
это по сути
Код:
ORDER:=Tdoctype.create;
Спасибо огромное за Ваше время и Ваши ответы!
wowsel вне форума Ответить с цитированием
Старый 13.06.2014, 21:27   #2
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Кажется, я понял, что вы хотите...
Ану ка попробуйте передалать функцию примерно вот так:
Код:
function ctype(var object: Tdoctype; docID: integer; docName: string): boolean;
begin
try
begin
object:=Tdoctype.Create;
 Tdoctype(docName).docID:=docID;
 Tdoctype(docName).docName:=docName;
end;
except
result:=false;
end;
result:=true;
end;
Правда, я не полностью уверен в правильности данного кода...
Суть такова: передаем в функцию параметр-обьект, который нужно создать.
Delphi_ProGer вне форума Ответить с цитированием
Старый 13.06.2014, 22:39   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Типичный x-y-z

Вы бы лучше рассказали, какую задачу хотите решить, а не то, как Вы думаете, как её надо решить.

Без подобной информации можно многого насоветовать и нагородить. А лучше будет, если всё же предметно работать.
phomm вне форума Ответить с цитированием
Старый 13.06.2014, 23:23   #4
wowsel
Begin'нер
Пользователь
 
Аватар для wowsel
 
Регистрация: 30.04.2010
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Delphi_ProGer Посмотреть сообщение
Кажется, я понял, что вы хотите...
Ану ка попробуйте передалать функцию примерно вот так:
Код:
function ctype(var object: Tdoctype; docID: integer; docName: string): boolean;
begin
try
begin
object:=Tdoctype.Create;
 Tdoctype(docName).docID:=docID;
 Tdoctype(docName).docName:=docName;
end;
except
result:=false;
end;
result:=true;
end;
Правда, я не полностью уверен в правильности данного кода...
Суть такова: передаем в функцию параметр-обьект, который нужно создать.
Спасибо за Ваш ответ, он сработал!

Цитата:
Типичный x-y-z

Вы бы лучше рассказали, какую задачу хотите решить, а не то, как Вы думаете, как её надо решить.

Без подобной информации можно многого насоветовать и нагородить. А лучше будет, если всё же предметно работать.
Боюсь Ваш ответ оказался не слишком полезен для меня, ведь был задан конкретный вопрос, в котором уже были продуманы варианты иного решения задачи.

Последний раз редактировалось wowsel; 13.06.2014 в 23:32.
wowsel вне форума Ответить с цитированием
Старый 13.06.2014, 23:27   #5
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Цитата:
Спасибо за Ваш ответ, но, увы, он не сработал.
Исходя из совета выше - приведите болле подробный код, пример, или же скиньте проект(или проблемную часть проекта). Я не думаю, что проблема сложная, но на данный момент угадывать ответ можно ооочень долго
Delphi_ProGer вне форума Ответить с цитированием
Старый 13.06.2014, 23:35   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

ТС, у делфи нет средств, позволяющих по строковому имени определить существует ли переменная с таким именем и найти её адрес.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.06.2014, 23:36   #7
wowsel
Begin'нер
Пользователь
 
Аватар для wowsel
 
Регистрация: 30.04.2010
Сообщений: 48
По умолчанию

Уже всё, совет " Delphi_ProGer" сработал. Тему можно закрывать, всем отписавшимся - спасибо!
wowsel вне форума Ответить с цитированием
Старый 14.06.2014, 02:11   #8
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Цитата:
Боюсь Ваш ответ оказался не слишком полезен для меня, ведь был задан конкретный вопрос, в котором уже были продуманы варианты иного решения задачи.
Типичный ответ новичка их X-Y-Z. Теперь он убегает доделывать своего монстра.
northener вне форума Ответить с цитированием
Старый 14.06.2014, 11:08   #9
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Уже всё, совет " Delphi_ProGer" сработал.
а покажите ка что у вас там сработало.
eval вне форума Ответить с цитированием
Старый 14.06.2014, 13:15   #10
ksvsvk
Пользователь
 
Регистрация: 10.06.2013
Сообщений: 25
По умолчанию

Предложенная Delphi_ProGer функция всегда будет возвращать true
ksvsvk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при обращение к переменной COM объекта koljsch C++ Builder 9 18.09.2012 02:02
[Java] Создание объекта внутри объекта этогоже класса. Svarogich Помощь студентам 2 01.08.2011 16:03
Определение глобальной переменной с типом Потококового объекта(Thread) AndreyK Общие вопросы Delphi 7 01.04.2011 18:17
Использование переменной в методе COM объекта FATik67 БД в Delphi 4 09.11.2010 21:26
Работа с файлами (создание, удаление, открытие, связываение с переменной, очищение памяти переменной) Arkuz Общие вопросы Delphi 12 25.09.2007 20:47