Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Exe

Автор: Vardes 26.12.2006 17:53

Косяк в том,что откомпилированная прога, подвисает когда по форме начинаешь кликать мышкой, или когда её закрываешь др. каким-нить окном...Прога направлена на вычислении математических процессов.В чём тут проблема?

Автор: мисс_граффити 26.12.2006 18:09

Ошибка в 3 строчке.

Может, ты прикрепишь свой проект, а то, знаешь ли, ясновидящие перед Новым годом и так загружены...

Автор: Vardes 26.12.2006 18:51

Проект представляет из себя реализацию нейронной сети, которую я долгими ночами и днями сам моделировал, поэтому боюсь,что мою идею могут стащить...
Мне что-то говорили о том,что саму прогу надо вставлять в какой-то канал...толком я и не понял...

Автор: Malice 26.12.2006 19:18

Цитата(Vardes @ 26.12.2006 14:51) *

Мне что-то говорили о том,что саму прогу надо вставлять в какой-то канал...толком я и не понял...

Чтобы помочь нужен или исходник (1) или на крайний случай exe-шник рабочий (2). Если боишься, что сопрут, то 1-ый не давай никому. Если вещь очень нужная, то расковыряют и exe-шник. Навесишь протектор на exe-шник - не смогут помочь smile.gif Вывод - отладчик в руки и разбирайся, либо клади exe-шник и немного бойся (немного - потому что врядли кто-то позарится все-таки).

Автор: hiv 26.12.2006 20:28

Скорее всего в реализации нейронной сети ошибка.
Можешь не выкладывать весь код. Попробуй закоментарь весь свой метод, а потом ищи где виснет. Уверен что все будет летать dry.gif

Автор: мисс_граффити 26.12.2006 22:00

Там отрисовка какая-нибудь есть?

Автор: Vardes 27.12.2006 0:29

У меня в окне Tmemo просто циферки потоком меняются и всё, если окно не трогать,то и прога не виснет...Она как бы ваще не виснет, просто пишет "не работает". Я бы рад вам представить exe, но он будет работать только с кучей файлов,без них никак,а там конфедициальная инфа...так что может есть какие-нить ещё советы?

Автор: Malice 27.12.2006 1:10

Правильно сказал hiv - закомментируй все, что касается используемых файлов (или забей нулями их), чтобы висло также, но конфиденциальных данных не было..

Автор: Vardes 27.12.2006 8:54

Так и быть,скинул я вам 2 файла, которые должны быть помещены прямо в корневом каталоге диска С:...
Файл weights необходимо всё время заполнять последовательностью в столбец 0,1 ,иначе работать не будет...На форматирование файла не нажимайте...работать не будте,нечего форматировать... blink.gif


Прикрепленные файлы
Прикрепленный файл  Project2.zip ( 203.55 килобайт ) Кол-во скачиваний: 208
Прикрепленный файл  weights.txt ( 78 байт ) Кол-во скачиваний: 226
Прикрепленный файл  inf.txt ( 7.05 килобайт ) Кол-во скачиваний: 239

Автор: hiv 27.12.2006 14:41

Ну я еще раз говорю, у тебя скорее всего не выполняется условие по которому ты даешь команду на отрисовку формы. А вообщето лучше кроме Memo1.Refresh; делать Application.ProcessMessages;, тогда твое приложение будет реагировать на все. Ну а еще лучше - если весь свой метод запихнешь в отдельнный поток (нить процесса) TThread, а вывод в форму осуществлять по таймеру с синхронизацией потоков. Так даже быстрее вычислять будет, ибо не каждый шаг обработки данных выводить на форму.

Автор: Malice 27.12.2006 15:13

Я там даже Memo1.Refresh не нашел, memo1.lines.add(..) и по кругу.. Т.е. ProcessMessages надо внутри этого цикла поставить.

Автор: Vardes 27.12.2006 18:12

Млин...ребят, я понимаю, вы знатоки...я за Delphi всего 3-ий месяц сижу...изучил всего лишь основы(времени больше нет), поэтому если можно опишите код,как мне сделать...Заранее вам благодаренsmile.gif

Автор: hiv 27.12.2006 18:16

Тебе Malice уже сказал! dry.gif
Там где memo1.lines.add(..) добавь Application.ProcessMessages;

Автор: Vardes 27.12.2006 18:41

Ага...вроде теперь не тупит....Вам огромное спасибо... good.gif

Автор: Vardes 27.12.2006 18:57

Вот правда ещё хотел спросить...как сделать так,чтобы остановить процесс выполнения программы...Знаю,что в Pascal была функция Exit, в Delphi реакции никакой нет.Break не пойдёт...

Автор: Malice 27.12.2006 19:12

Сделай примерно так:

var хватит_уже:boolean;
procedure button1Click()
begin
хватит_уже:=false;
repeat
.....
....
....
memo1.lines.add(s);
application.processmessages;
until (a=b) or хватит_уже;
end;

procedure button3Click()
begin
хватит_уже:=true;
end;


Т.е. флажок, по которому будет выход из цикла..

Автор: hiv 27.12.2006 19:15

Цитата(Vardes @ 27.12.2006 14:57) *

Вот правда ещё хотел спросить...как сделать так,чтобы остановить процесс выполнения программы...Знаю,что в Pascal была функция Exit, в Delphi реакции никакой нет.Break не пойдёт...

exit - будешь писать в месте где считает твой метод чтоб выйти из текущего метода твоей формы (процедуры). А закрыть форму - Close; Если она главная, то и все приложение закрывается.

ЗЫ: Загрузи всетаки DKRB - меньше вопросов будет!