![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Radio |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
Сегодня попробовал создать свойство и написал че-то вроде следующего
type TForm1=Tform; .......... Function GetF:TextFile; Procedure SetF(File_Name:TFileName); Property F:TextFile read Getf write SetF ....... Перед тем,как все это раскритиковать объясню чего я хотел: OpenDialog.FileName дает мне имя файла для SetFile и яго пишу в F я его AssignFile и юзаю свойство как файловую переменную, а чтоб в любой момент можно было читать - пожалуйста, есть GetF. Немного поумнев я понял, что нельзя делать GetF:TextFile; ну ладно с этим я смирился; Далее окозалось, что параметр у SetF должен быть того же типа, что и property а параметр типа TextFile быть не может следовательно и property типа TextFile сделать нельзя. Короче, тем кто во всей этой каше разобрался прямой вопрос: можно ли создать property:TextFile, а если можно, то как? Это сообщение отредактировал(а) Radio - 21.2.2006, 21:08 |
|||
|
||||
Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
Это сообщение отредактировал(а) Girder - 22.2.2006, 11:13 -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
Radio |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
Мне делфи на это ответил File type not allowd here что нелзя в параметрах процедуры давать TextFile. Только если Var написать. Ну написал, а он - Property setters cannot take var parameters Ну вот, а дальше что, раз такие дела??? |
|||
|
||||
Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
А что именно в процедуре пишешь?
У меня, допустим, все работает, и никаких ошибок не вылетает Это сообщение отредактировал(а) Guedda - 21.2.2006, 21:32 -------------------- Ll 2 |
|||
|
||||
Radio |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
procedure Set_File(F:TextFile);
property WorkFile:TextFile write Set_File; вот это not allowd here procedure Set_File(Var F:TextFile); property WorkFile:TextFile write Set_File; вот это cannot take var parameters; ![]() Это сообщение отредактировал(а) Radio - 22.2.2006, 00:22 |
|||
|
||||
Quadr0 |
|
|||
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 10:07 |
|||
|
||||
Radio |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
Да я знаю, что FileName это не файл. Я хотел, чтоб было свойство в объекте и это свойство представляло из себя файловую переменную. Я конечно понимаю, можно обьявить глобальную переменную и ее юзать, но ведь это уже нето. А SetFile функцию хотел заюзать только вначале для Assign и Reset, а так в проге он больбще и не нужен. Параметр FileName:TFilName мне там понадобился, чтоб сразу из OpenFile в SetFile идальше пошло-поехало. Ну да ладно, получается если
так не суждено мне объявить property:TextFile. Или можно, идея-то красивая была |
||||
|
|||||
Radio |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
Ну так что, все таки это невозможно? А я водном учебнике читал, что ограничения на тип свойств нет, так что получается есть?
![]() |
|||
|
||||
Quadr0 |
|
|||
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 10:07 |
|||
|
||||
Radio |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
Это понятно, что могу объявить, но мне-то нужны процедуры для read write и тип параметров этих процедур дожен совпадать с типом property то есть типа TextFile а это невозможно(для процедур еще как то можно, хотя и не получается через Var, а для функций, так вообще никак - не может быть функция типа TextFile).
Но ладно, я спорить не хочу - даже лучше, если можно, только теперь скажите мне пожалуйста - как, и желательно кодом на Delphi чтобы уже исключить различные побочные вопросы. Как это сделать? |
|||
|
||||
SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 2 Всего: 74 |
Вот так и работать с файлом. Только Var описывай глобальный. -------------------- Всем добра ![]() |
|||
|
||||
Radio |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
Да я не спрашиваю как работать с файло - я это все хорошо знаю.
Я прошу чтобы мне помогли объявить property типа TextFile в объекте. Только просьба перед тем как приводить листинг проверить его в Delphi а то как я пробовал объявить с виду тож провильно, но Delphi выдаёт ошибки. Так что помогите кто может. Как это сделать? |
|||
|
||||
Quadr0 |
|
|||
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 10:08 |
|||
|
||||
Radio |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
Спасибо за исчерпывающий ответ.
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |