Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

HELP Помогите чайнику вызвать дочернюю форму !!!!!!!!!!!!!!!!!!!!

1.9K
17 апреля 2004 года
nicohack
60 / / 17.04.2004
Помогите кто шарит открыть форму дочернюю. плс
Страницы:
1.9K
29 апреля 2004 года
elderb
61 / / 26.01.2004
Архангельского можеш найти здесь:as-01-1.narod.ruЖарковато здесь у вас ;) но в общем-то интересно
1.9K
29 апреля 2004 года
nicohack
60 / / 17.04.2004
Цитата:
Originally posted by elderb
Архангельского можеш найти здесь:as-01-1.narod.ruЖарковато здесь у вас ;) но в общем-то интересно



Да уж не то слово :). Еще вопрос нащет указателей. Видишь ли примеры как работают понимаю, а для чего не написано. Не понимаю, почему в некоторых ситуациях без них не обойтись. Может приведешь маленький примерчик?:!!!:

И еще, пока не забыл, в событии формы онексит, у меня добавлен код

if (Memo1->Lines->Count>0)
{
if (MessageBox(0,"Сохранить содержимое окна редактирования? ",
"Подтвердите сохранение",MB_YESNO)==IDYES)
{
SpeedButton5Click(Sender);
}
};
Memo1->Clear();
StatusBar1->Panels->Items[0]->Text="Без имени";

Когда жмешь Х ,то через 2 секунды вылетает сообщение с ошибкой, что то там со стеком, точно не помню, причем этот же код добавлен на кнопке выхода, но при нажатии на нее все нормально работает. ????????

Да и там книжка, хорошая(посодержанию )но линки кривые:devil: :devil: :devil:

1
30 апреля 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by nicohack


Да уж не то слово :). Еще вопрос нащет указателей. Видишь ли примеры как работают понимаю, а для чего не написано. Не понимаю, почему в некоторых ситуациях без них не обойтись. Может приведешь маленький примерчик?:!!!:

И еще, пока не забыл, в событии формы онексит, у меня добавлен код

if (Memo1->Lines->Count>0)
{
if (MessageBox(0,"Сохранить содержимое окна редактирования? ",
"Подтвердите сохранение",MB_YESNO)==IDYES)
{
SpeedButton5Click(Sender);
}
};
Memo1->Clear();
StatusBar1->Panels->Items[0]->Text="Без имени";

Когда жмешь Х ,то через 2 секунды вылетает сообщение с ошибкой, что то там со стеком, точно не помню, причем этот же код добавлен на кнопке выхода, но при нажатии на нее все нормально работает. ????????

Да и там книжка, хорошая(посодержанию )но линки кривые:devil: :devil: :devil:


Без указателей обходится можно - но только вряд ли твоя программа будет стабильной :) При передаче объекта класса в функцию происходит КОПИРОВАНИЕ объекта, и функция работает с копией. Даже если не принимать во внимание все прочие проблемы, возьми выполни ShowMessage(sizeof(*Form2)) и сравни с ShowMessage(sizeof(Form2)). Указатель содержит адрес объекта - а сам объект создается один раз и находится в памяти по этому адресу. Соответственно в функции копируется всего-навсего указатель - не теряется память, не происходит потери объекта и т.д. Почему собственно программа Kadeta, которую он так любезно выложил в пример..:devil: , глючит. Указатель на объект удаляется после того как сам объект уже разрушен.

 
Код:
void __fastcall Form2::Form2Close(TObject *Sender, TCloseAction &Action){
 delete Form2;
}

И вдруг откуда не возьмись при закрытии первой формы опять:
 
Код:
delete Form2;

Увлекся малчик. Для объектов которые в качестве полей класса содержат указатели на другие классы безграмотное использование delete в лучшем случае не приносит ожидаемого эффекта.
В твоем случае тебе во первых вызывать надо не
 
Код:
SpeedButton5Click(Sender);

а так
 
Код:
SpeedButton5->Click();

во вторых не понятно - в каком событии ты вызываешь этот код - у формы нет событий onEnter и onExit. Ети события могут возникать если компонент соответственно получает или теряет фокус. Форма может быть соответственно видимой или не видимой, быть активной или не активной и есть событие onClose и onDestrow. В событии onClose все отрабатывается нормально и без ошибок. Может быть проблема находится в том месте где ты сохраняешь код. И имей неплохую привычку запоминать сообщения об ошибках. И по вопросам указателей - почитай хотя бы Архангельского, форум не то место где нужно задавать вопросы, ответ на которые занимет как минимум 4 печатных листа. То же касается и компонентов - есть справка билдера - ее и читай для начала.
1.6K
30 апреля 2004 года
Kadet
101 / / 26.03.2003
Цитата:
Originally posted by kot_

Соответственно в функции копируется всего-навсего указатель - не теряется память, не происходит потери объекта и т.д.



Чтото новенькое, а поподробнее? Что за утечка памяти, и что за обьекты теряются()? Надеюсь ты неправильно выразился.
По моему, если аргумент - указатель, ты работаешь (в функции) с самим обьектом. В противном случае с его копией,а существует копия только в самой функции.

Цитата:
Originally posted by kot_

Почему собственно программа Kadeta, которую он так любезно выложил в пример..:devil: , глючит. Указатель на объект удаляется после того как сам объект уже разрушен.
 
Код:
void __fastcall Form2::Form2Close(TObject *Sender, TCloseAction &Action){
 delete Form2;
}


Так, я думал тема закрыта.
Полное незнание предмета разговора.
Пробуй:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2=new TForm2(Application);
Form2->Visible=true;
}

void __fastcall TForm2::FormCreate(TObject *Sender)
{
ShowMessage("Create Form2");
}

void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
ShowMessage("Close Form2");
}

void __fastcall TForm2::FormDestroy(TObject *Sender)
{
ShowMessage("Destroy Form2");
}

Запускаем. Если перед открытием Form1 выскочит сообщение Create Form2, то и создавать и удалять форму 2 ненадо. Просто работаешь и всё.
Но мы говорили про Available form.
Я специально при закрытии (Close) Form2 убрал delete Form2.
Итак:
Cообщение Create Form2 откроется при нажатии на кнопку Button1.
При закрытии формы появится сообщение Close Form2
Сообщение Destroy Form2 так и не появится вообще (если конечно без delete Form2 в Form2->OnClose).
Зато при повторном открытии формы создастся ещё одна, и ещё, и ещё. И никогда не удаляются.

Цитата:
Originally posted by kot_

И вдруг откуда не возьмись при закрытии первой формы опять:
 
Код:
delete Form2;


Ну извени, промахнулся, недоглядел. Насколько я помню это я второй раз описался. А вот в ТЕОРИИ НИРАЗУ. А у тебя было столько ошибок в теории, и не одного довода.

Цитата:
Originally posted by kot_

Увлекся малчик. Для объектов которые в качестве полей класса содержат указатели на другие классы безграмотное использование delete в лучшем случае не приносит ожидаемого эффекта.


Я тебе 2 раза обьяснял. Не вериш мне, то заглянь в соседнюю тему. "разрушение объектов, оно надо? и если да, то как" - http://forum.codenet.ru/showthread.php?s=&threadid=16694

И впредь - никаких наездов в мой адрес. Ато выглядишь глупо.

1
30 апреля 2004 года
kot_
7.3K / / 20.01.2000
Я рад за твою теоретическую подготовку. И что ты в ней НИРАЗУ не промахиваешься. В том что уровень твоей теоретической подготовки соответствует общей грамотности я уже убедился в личных постингах. Тему считаю закрытой, твои промахи постараюсь не замечать. И прошу мои слова не выдергивать из контекста - если работа в функции идет с копией объекта, любые изменения состояния объекта в функции к глобальному объекту отношения не имеют. И об этом сказанно в моем постинге. Если копируется объект достаточно большого размера - под него выделяется память? Да по окончании работы функции эта память будет очищена - если деструктор отработал корректно - но вряд ли это характеризует работу программы как оптимальную.
Событие onClose не зря получает два параметра. Один из них как раз и предназначен для того, что бы можно было явно управлять поведением объекта - очистить память или нет, как это может быть сделано я показывал раньше. Нравится тебе явно вызывать delete - на здоровье. Но не надо это выдавать за высший пилотаж программирования или лучшее решение - это далеко не так, особенно если ты работаешь с достаточно сложной библиотекой классов.
1.9K
30 апреля 2004 года
nicohack
60 / / 17.04.2004
kot_ , так где скачать книжку Архангельсого. Я бы судовольствием почитал. Линки, которые ты дал кривые, точнее сайт есль , а книг нэма
:???: ;)
1
30 апреля 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by nicohack
kot_ , так где скачать книжку Архангельсого. Я бы судовольствием почитал. Линки, которые ты дал кривые, точнее сайт есль , а книг нэма
:???: ;)


:D :D :D Я вроде как ссылок не выкладывал. И книги есть по ссылке которую дал elderb.
Посмотри внимательно, вот например: Здесь . Другое дело что у ребят там какие то бока, ну так на то есть майл, есть гостевая, общайся с ними.

1.9K
30 апреля 2004 года
nicohack
60 / / 17.04.2004
Цитата:
Originally posted by kot_

:D :D :D Я вроде как ссылок не выкладывал. И книги есть по ссылке которую дал elderb.
Посмотри внимательно, вот например: Здесь . Другое дело что у ребят там какие то бока, ну так на то есть майл, есть гостевая, общайся с ними.



Ой точно, не ты же дал. Да там линки на книжки кривые.:devil:

Слушай , я дневник забабашил8) . Хочешь, скину исходник, посмотишь все ли корректно сделано. Ну если не хочешь, считай, что я просто похвастался.:P

1
30 апреля 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by nicohack


Ой точно, не ты же дал. Да там линки на книжки кривые.:devil:

Слушай , я дневник забабашил8) . Хочешь, скину исходник, посмотишь все ли корректно сделано. Ну если не хочешь, считай, что я просто похвастался.:P


Ну скинь :D :D :D Адрес смотри в привате.

1.9K
01 мая 2004 года
nicohack
60 / / 17.04.2004
Цитата:
Originally posted by kot_

Ну скинь :D :D :D Адрес смотри в привате.



Код слишком длинный для форума. По почте пошлю ок?А как проверку на изменение сделать в Мемо?

1
03 мая 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by nicohack


Код слишком длинный для форума. По почте пошлю ок?А как проверку на изменение сделать в Мемо?


По событию onChange.

1.9K
03 мая 2004 года
nicohack
60 / / 17.04.2004
Цитата:
Originally posted by kot_

По событию onChange.


Точно же

1.9K
05 мая 2004 года
nicohack
60 / / 17.04.2004
kot_, что то buider глючит. Открываю проект, делаю изменения, например добавляю кнопочки например, а после компиляции запускается старый проект . АААААА Что делать. Мне еще доделать надо кое че , а изменения в слу не вступают. Кстати тебе пришло письмо ??? Да, и мне надо сделать, чтобы при дапуске программы появлялось сначала окошко с запросом на пароль, а потом, при правельно вводе главное окно. И еще ? : можно ли из мемо записывать данные в файл.?? Шучу, это не весь ?, : так, чтобы обычным текстовым редактором из невозможно было открыть, а только моей прогой, ну чтобы при открытии редактором некорректное отображение было , например. Спасибо за помощь в море информации :))
1
05 мая 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by nicohack
kot_, что то buider глючит. Открываю проект, делаю изменения, например добавляю кнопочки например, а после компиляции запускается старый проект . АААААА Что делать. Мне еще доделать надо кое че , а изменения в слу не вступают.


это не билдер глючит. Посмотри настройки проекта. Скорее всего проблемы гдето в них. Что конкретно - можешь сказать только ты сам. Возможно форма которую ты меняешь, и форма которая компилируется - разные :). Посмотри внимательно какие формы влючены в проект, а в какие ты вносишь изменения.

Цитата:
Originally posted by nicohack

Кстати тебе пришло письмо ???


Пришло. Тебе должен ответ прийти.

Цитата:
Originally posted by nicohack

Да, и мне надо сделать, чтобы при дапуске программы появлялось сначала окошко с запросом на пароль, а потом, при правельно вводе главное окно. И еще ? : можно ли из мемо записывать данные в файл.?? Шучу, это не весь ?, : так, чтобы обычным текстовым редактором из невозможно было открыть, а только моей прогой, ну чтобы при открытии редактором некорректное отображение было , например. Спасибо за помощь в море информации :))


Все это можно сделать, но тебе тогда надо хранить гдето пароль который правильный - и в связи с этим решать кучу проблем. Пароль желательно хранить в зашифрованном виде, методика простейшего шифрования уже рассматривалась на форуме. Методики хранения паролей, достоинства и недостатки - на это есть отдельные ресурсы в сети - задай в поисковике хотя бы SoftIce - получишь кучу ссылок.
Практически любой файл может быть открыт в текстовом редакторе :) Если тебе нужен свой формат файла - тогда тебе нужно создать свой формат записи и считывания данных и записывать данные в двоичном виде. Но имей ввиду - у тебя должены быть определены параметры по которым ты будешь определять начало фрагмента данных и его окончание и где будет хранится эта информация. Вобщем то ничего сложного - если четко знаешь что хочешь сделать. У мемо есть свойство Text позволяющее работать с со всем содержимым как с текстовой строкой - можешь воспользоваться этим. Можешь создать свой класс для работы с данными. Вариантов много. Удачи.

1.9K
05 мая 2004 года
nicohack
60 / / 17.04.2004
Насчет softice - я понимаю, что просто хранить пароль в программе -это то же , что пароля не иметь, но я делаю программу не для хакеров :), а для подруги, у которой есть любопытный муж, который далеко не хакер, хотя...(все может быть):)). Так вот сама прога выглядит так: Справа окошко с файлами. Слева элемент мемо, ну там сверху календарь, возможность вставить текущее время и т.д. А , и еще нажимаешь "записать" и появляется файл с определенным расширением и в качестве имени- текущая дата.(пока не забыл - файл то появляется, но уже после повторного запуска проги. Там должно быть что то вроде update() или refresh(), чтобы он сразу появился после нажатия на запись ?) Вот и возникла у нее пожелание, чтобы так просто файлы было бы не просмотреть. Я хочу переделать, и вижу , что на форме изменений нет, т.е. на форме есть, а в откомпиленнойц проге уже нет. :((
Так вот, я предлогаю такой способ: вначале запуска программы появляется окно с запросом на пароль. А нет пароля- нет списка файлов. Нет файлов -нет возможности отыскать на компе их. Следовательно, эти файлы можно запихнуть в любую директорию, в которую обычный юзверь даже зайти боится :). Вот это и было моим решением насчет защиты :) Зацени :)
1
05 мая 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by nicohack
Насчет softice - я понимаю, что просто хранить пароль в программе -это то же , что пароля не иметь, но я делаю программу не для хакеров :), а для подруги, у которой есть любопытный муж, который далеко не хакер, хотя...(все может быть):)). Так вот сама прога выглядит так: Справа окошко с файлами. Слева элемент мемо, ну там сверху календарь, возможность вставить текущее время и т.д. А , и еще нажимаешь "записать" и появляется файл с определенным расширением и в качестве имени- текущая дата.(пока не забыл - файл то появляется, но уже после повторного запуска проги. Там должно быть что то вроде update() или refresh(), чтобы он сразу появился после нажатия на запись ?) Вот и возникла у нее пожелание, чтобы так просто файлы было бы не просмотреть. Я хочу переделать, и вижу , что на форме изменений нет, т.е. на форме есть, а в откомпиленнойц проге уже нет. :((
Так вот, я предлогаю такой способ: вначале запуска программы появляется окно с запросом на пароль. А нет пароля- нет списка файлов. Нет файлов -нет возможности отыскать на компе их. Следовательно, эти файлы можно запихнуть в любую директорию, в которую обычный юзверь даже зайти боится :). Вот это и было моим решением насчет защиты :) Зацени :)


Храни записи в базе данных - будет проще :)IMHO идея не очень хороша.

1.9K
05 мая 2004 года
nicohack
60 / / 17.04.2004
Цитата:
Originally posted by kot_

Храни записи в базе данных - будет проще :)IMHO идея не очень хороша.



Ладно понял я. Слушай, а я проверил насчет проблемой с формой- форма та( т.к. у меня только главная форма и о программе - все. Что делать то???:devil: Заново все переделывать что -ли. А если бы я че то здоровое делал??? и также заглючило. ТО все что-ли ???

1
05 мая 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by nicohack


Ладно понял я. Слушай, а я проверил насчет проблемой с формой- форма та( т.к. у меня только главная форма и о программе - все. Что делать то???:devil: Заново все переделывать что -ли. А если бы я че то здоровое делал??? и также заглючило. ТО все что-ли ???


Возми выдели все файлы в своем проекте с расширением *.h,*.cpp,*.res,*.dfm,*.bpr и кинь мне в мыло в архиве. Но для начала все же не поленись и ВНИМАТЕЛЬНО проверь что ты меняешь, а что компилишь.

1.9K
06 мая 2004 года
nicohack
60 / / 17.04.2004
Твой ответ мне на мыло так и не пришел, ты его отправлил. И если отправил, то куда???
6.7K
02 июня 2004 года
CaptHowdy
22 / / 01.06.2004
Цитата:
Originally posted by kot_

:D :D :D Я вроде как ссылок не выкладывал. И книги есть по ссылке которую дал elderb.
Посмотри внимательно, вот например: Здесь . Другое дело что у ребят там какие то бока, ну так на то есть майл, есть гостевая, общайся с ними.


Уважаемый! Здесь все ссылки битые. Не огли бы вы дать не битые ссылки или выслать мне на [email=vova@is.pl.ua]мыло[/email] эту книгу? Очень нужно!

Заранее благодарю.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог