![]() |
| | |||||||
| Регистрация | Правила | Блоги | Пользователи | Социальные группы | Поиск | Сообщения за день | Все разделы прочитаны |
| |
![]() |
| |
| | #1 | |||||||||||
| Байт Форумчанин Регистрация: 24.12.2010 Адрес: Москва
Сообщений: 2,241 Репутация: 2030 (1589) |
Это нужно вот зачем. Создаю форму, которая должна работать с файлом. А файла нет. Существование форму бессмысленно.
Можно, конечно, использовать extern флаг. Но это некрасиво как-то | |||||||||||
| | ||||||||||||
| Другие темы раздела | |
| C++ Builder Проверка наличия CD привода В "SYSTEM\\CurrentControlSet\\Services\\Cdrom\\Enum" храниться информация только о том, какие CD приводы подключались к компьютеру. Функция mciSendString("capability cdaudio can play wait", NULL, 0, F->Handle) всё время выдаёт один и тот же результат, вне зависимости от того, подключён ли CD-ROM..... Проверка наличия CD привода | Создание приложений для контроллеров Siemens C++ Builder Подскажите пожалуйста, книги/примеры/ссылки, где хорошо описывается разработка прикладных приложений для контроллеров Siemens. Заранее, благодарен. Создание приложений для контроллеров Siemens |
| | #2 | ||||||
| Samrisbe Студент Регистрация: 28.01.2011 Адрес: Россия
Сообщений: 1,317 Репутация: 893 (506) |
А проверку невариант сделать на наличие файла? ![]()
| ||||||
| | |||||||
| | #3 | |
| Байт Форумчанин Регистрация: 24.12.2010 Адрес: Москва
Сообщений: 2,241 Репутация: 2030 (1589) | Эта форма вызывается во многих местах, происходит работа с файлами разных типов и из разных точек, по разным кнопочкам. Конечно, можно каждый раз проверять, а есть ли файл, но мне казалось, что логичнее всего это переложить на конструктор Формы2 Выход есть, и достаточно экономный, завести внеклассовую функцию, которая проверит наличие файла и активизирует Форму2. Или через extern-флаг. Но некрасиво как-то. И хотелось бы знать, есть ли какой-то способ сказать, что конструирование формы (или другого компонента) закончилось неудачно. | |
| | ||
| | #4 | |
| DefineTrueFalse Форумчанин Регистрация: 25.10.2011
Сообщений: 743 Репутация: 726 (334) |
Я вопрос не совсем понял, в итоге реализации что должно быть?
| |
| | ||
| | #5 | |
| Байт Форумчанин Регистрация: 24.12.2010 Адрес: Москва
Сообщений: 2,241 Репутация: 2030 (1589) |
Потому что, если нет, то это довольно увесистый камень в огород ООП вообще и Страуструпа в частности. Добавлено через 10 минут Можно, конечно, сделать через исключения, но это тоже как-то топорно. | |
| | ||
| | #6 | |
| DefineTrueFalse Форумчанин Регистрация: 25.10.2011
Сообщений: 743 Репутация: 726 (334) |
Аааа все догнал)), а то я уже в пачноуты полез искать на тему создание формы из файла в раде )))) Конструкторы и деструкторы на то и рассчитаны, что они в принципе значений не возвращают. Создайте метод в классе через "класс эскплоер" и вы увидите, что он сразу блокирует поле ввода возвращаемого значения. Вот это в конструкторе прописывать крайне не советую. В лучшем случае эффекта не будет. Если хотите автоматизировать процесс в этом ключе, то просто напишите отдельную функцию с результирующим булевым значением и используйте ее после стандартной инициализации. И там уже можете использовать delete (хотя с формой тоже надо обдумать, все-таки визуальный класс). Но обязательно припашите return true/false, чтобы исключить дальнешие обращения к форме. | |
| | ||
| | #7 | |
| Байт Форумчанин Регистрация: 24.12.2010 Адрес: Москва
Сообщений: 2,241 Репутация: 2030 (1589) | | |
| | ||
| | #8 | |
| DefineTrueFalse Форумчанин Регистрация: 25.10.2011
Сообщений: 743 Репутация: 726 (334) | | |
| | ||
| | #9 | |
| IGPIGP Форумчанин Регистрация: 04.12.2011 Адрес: Одесса
Сообщений: 791 Репутация: 765 (358) | Простите, может не понимаю, а разве конструктор класса, кроме выделения памяти под объект не возвращает указатель на него (всегда)? Другое дело что указатель на Ничто (Null) может вернуться по разным причинам, т.е. неудачная инициализация других полей или аж неудача с выделением памяти, и если нужно знать точно то тада что-то надо сделать | |
| | ||
| После регистрации реклама в сообщениях будет скрыта | |
| | #10 | ||||||
| Байт Форумчанин Регистрация: 24.12.2010 Адрес: Москва
Сообщений: 2,241 Репутация: 2030 (1589) | Именно так. И уже получилось.
![]() Добавлено через 7 минут Выделяет и возвращает. Но я не могу заставить его вернуть ничего другого, что говорило бы о неудачном конструировании. Только если он сам этого пожелает, скажем, когда памяти не хватает. Но это, кажется тоже не так, просто программа затыкается в точке выделения памяти и все. Ну, исключение выбрасывает. Но я кажется нашел оптимальное решение. Просто поле-флаг в самой TForm2, вот его-то и проверять. | ||||||
| | |||||||
![]() |
| Похожие темы | |
| Тема | Автор |
| С++ для начинающих неправильно работает конструктор копирования list, кто-нибудь может объяснить почему? #include <windows.h> #include <stdio.h> #include <list> #include <iterator> #include <iostream> using namespace std; list <int> f () { list <int> lisc; | kravam |
| Turbo Pascal Может ли функция возвращать два значения? Есть некоторая функция F. У неё входные параметры - t, x. Выходные: xp, xp, где xp:=t*x; xp:=t+x; В дальнейшем xp и xp будут используются в головной программе. Как сделать, чтобы функция вернула и значение xp, и значение xp? Не хочу разбивать функцию на две. | Dimon 128500 |
| Visual C++ Почему CreateWindow может возвращать NULL? Решил разобраться как устроено управление окнами на уровне API. Посмотрел стартовый пример из Visual Studio, разобрался в процессе создания. Потом создал совсем пустой проэкт, и написал аналогичную програмку, которая только создает окно и обрабатывает кое-какие сообщения. Все ключи компилятора... | Alkersan |
| MySQL Блин, для ЧЕГО НУЖНА Функция CREATE TABLE invoice( inv_id INT AUTO_INCREMENT NOT NULL , usr_id INT NOT NULL , prod_id INT NOT NULL , quantity INT NOT Погуглив, так и не смог толком понять. Есть тут ГУРУ по mysql Которые могут на пальцах или на примере показать для чего она нужна. Спасибо!! | server2010 |
| С++ для начинающих При каких условиях функция SQLGetInfo может возвращать пустое имя? При каких условиях функция SQLGetInfo может возвращать пустое имя SQL-сервера, при этом статус завершения SQL_SUCCESS, соединение с сервером установлено успешно и SQL-сервер установлен на удаленной машине. | johnr |
| Опции темы | |
| |
| |