0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 20
|
|
1 | |
Зависание программы при запуске28.05.2014, 20:48. Показов 5225. Ответов 26
Метки нет (Все метки)
Здравствуйте. При запуске приложения оно начинает виснуть не могу понять в чем дело. В программирование новичок поэтому прошу помощи у вас. Заранее спасибо.
0
|
28.05.2014, 20:48 | |
Ответы с готовыми решениями:
26
ошибка при запуске программы Ошибка при запуске программы Как сделать чтоб при запуске программы она сразу в трей сворачивалась? Резкое зависание программы при частом запуске цикла |
41 / 41 / 9
Регистрация: 22.10.2012
Сообщений: 91
|
|
28.05.2014, 21:17 | 2 |
1) У меня архив не распаковался целиком;
2) Это точно имеет отношение к MATLAB?
0
|
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 20
|
|
29.05.2014, 07:15 [ТС] | 3 |
Да нет. У меня архив норм открылся. Да и приложение на делфи написанно
Добавлено через 7 минут Прошу прощения не в тот раздел вложил тему..=(
0
|
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
|
|
29.05.2014, 10:03 | 4 |
Архив перепакуй. Не разархировывает WinRar.
1
|
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 20
|
|
29.05.2014, 17:51 [ТС] | 5 |
Вот перепаковал архив.
0
|
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
|
|
30.05.2014, 11:41 | 6 |
Вот это уже другое дело.
Я так понимаю происходит всё при запуске клиента, ведь я прав? Происходит это из-за того, что ты пытаешся соединить свой клиент к несуществующему ip-адресу(ip адресс не может состоять из пустой строки!). Чтобы это исправить помести этот обработчик FormCreate в FormShow, а так же проверяй подключение. P.S. Троянами, дружок, мы тут не занимаемся. Если тебя поймают за создание и распространенние трояна, то твои родители или ты сам получишь срок по 273 статье УК РФ. Уходи лучше обратно на свой "зорги" и не трепашь на голову.
0
|
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 20
|
||||||
30.05.2014, 17:33 [ТС] | 7 | |||||
Это мой дипломный проект а не троян. Но то что он очень похож на троян я прекрасно понимаю.
Добавлено через 58 минут Спасибо за ответ очень помог но возникла еще одна проблема. При запуске программы выдаёт вот такую ошибку "Project Project1.exe raised exception class EIdNotConnected with message 'Not Connected'. Process stopped. Use Step or Run to continue. " в вот этом месте
0
|
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
|
|||||||||||
31.05.2014, 10:12 | 8 | ||||||||||
Сообщение было отмечено Uter как решение
Решение
Прочитай ошибку и поймешь. Написано: Нет соединения. Это значит, что TCPClient не подключен к серверу. Попробуй изменить в инспекторе объекте свойство Enabled у таймера на false, а в FormShow записать следующий код:
Не по теме: P.S. Очень надеюсь, что это твой дипломный проект. Очень...
0
|
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 20
|
|
31.05.2014, 17:19 [ТС] | 9 |
Спасибо очень помогло. Все сделал кроме
Честно говоря не понял как это сделать. Но возникла вот такая ошибка "Access violation at address 011F70B7. Write of address A38D95F1." Программа компилируется нормально, но после завершения программы выдает ошибку. Где опять я накосячил.
0
|
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 20
|
|
01.06.2014, 07:24 [ТС] | 10 |
0
|
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
|
|
01.06.2014, 12:50 | 11 |
Дело в том, что у тебя поток с данными создается каждый раз, когда сработает процедура Timer1Timer. Это приведет к большей нагрузке на процессор и оперативную память(Он будет постоянно записывать переменную память, использовать, а потом уничтожать). Лучше всего этот поток будет создать при старте программы или показе формы(onShow), а уничтожать при уничтожение(onDestroy) или закрытие формы(onClose). Во время работы процедуру Timer1Timer просто использовать созданный поток, а по окончанию процедуры очищать поток(переменная_потока.Clear). При отсылке потока с сервера следует поступить точно так же. Если это не понятно, то попробуй ответить на вопрос: Зачем постоянно создавать и уничтожать переменную, если используешь её не один раз во время работы программы?
1
|
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 20
|
||||||||||||||||
01.06.2014, 15:52 [ТС] | 12 | |||||||||||||||
Я прекрасно понял для чего это нужно и полностью с тобой согласен. Но на практике у меня не получилось это реализовать так как с потоками сталкиваюсь впервые. Я пытался сделать это так. Вот код таймера
А
0
|
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
|
||||||
01.06.2014, 20:17 | 13 | |||||
Сообщение было отмечено Uter как решение
Решение
Переменную потока следует поместить в объявление глобальных переменных(там где Form4: TForm4).
При st:=TMemoryStream.Create; матушка Windows создает в памяти объект с типом TMemoryStream. При доступе к потоку(как и любому другому объекту) процедура должна иметь его Handle. В данном случае это не нужно. в Timer ты этот объект используешь с интервалом времени, который задал сам(Timer - это поток, который имеет время "простоя" равное свойству interval). При закрытие формы ты его уничтожаешь из памяти и тем самым освобождаешь от него память. st.Clear очищает поток от данных, но сохраняет сам объект в памяти. st.Free или st:=nil(nil - нечего) освобождает память от объекта(так сказать уничтожает его). Вот какой примерно код с твоим:
1
|
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 20
|
|||||||||||
01.06.2014, 22:56 [ТС] | 14 | ||||||||||
Спасибо большое... Очень помогло.
Добавлено через 10 минут Есть еще вопрос. Для соединения клиента с сервером я прописывал IP сервера в поле Edit на первой форме. Для соединения последующих форм к серверу я писал так
0
|
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
|
|
02.06.2014, 10:57 | 15 |
Если модуль(unit) формы прописал в uses, то должно происходить. Когда ты присваивание делаешь?
1
|
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 20
|
|
03.06.2014, 07:34 [ТС] | 16 |
Все спасибо. Все работает.
0
|
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
|
|
03.06.2014, 10:23 | 17 |
0
|
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 20
|
||||||
12.06.2014, 07:37 [ТС] | 18 | |||||
А еще один вопрос можно???
Я пытался реализовать функцию просмотра запущенных процессов
0
|
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
|
|
12.06.2014, 07:46 | 19 |
Возможно список не доконца ещё заполнен был. Сначала надо составить сам список, потом его отправить, убедится, что он отправлен и в конце немного пусть программа отдахнет(sleep).
Программа зависает, потому что буффер данных ещё в пути и пока клиент не получит сообщение от сервака, что тот всё принял не окончит. Попробуй вывести всё это в отдельный поток с синхронизацией. Добавлено через 1 минуту memo убери. Лучше использовать StringList. Используется практически так же как и другие списки, только нечего не отрисует, в отличие от компонента.
0
|
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 20
|
|
13.06.2014, 13:07 [ТС] | 20 |
Сейчас попытался проверить отправляет ли вообще сообщение с сервера на клиент но даже просто при отправлении одной стоки клиент виснит в чем дело не пойму. Вот проект если не сложно посмотрите пожалуйста
И еще вопрос вот я создал список StringList в него стал записывать список процессов после чего мне надо прописать (sleep) и после этого посылать список в поток?
0
|
13.06.2014, 13:07 | |
13.06.2014, 13:07 | |
Помогаю со студенческими работами здесь
20
Зависание программы при архивировании Зависание программы при запросе SQL Зависание программы при нажатии кнопки Зависание программы при длительном прцессе Зависание программы при генерации случайного графа Зависание программы при работе с динамическим списком Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке
В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
|
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
|
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins
В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
|
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|