Заблокирован

Ошибка есть, но программа работает

14.02.2017, 21:09. Показов 2414. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем проблема такая, что при вводе данных в таблицу выскакивает ошибка, сама по себе просто так-какая-то точка там уасная, игнорировать или нет?
Ну ладно, допустим что была ошибка - и программа работала не так. Исправил
Pascal
1
2
3
4
5
6
7
8
9
procedure snulya;
var
st: integer;
begin
SetLength(arraygrid[HeaderCell-1],znachenie);
for st:=0 to znachenie-1 do
SetLength(arraygrid[HeaderCell-1,st],1,1,1);
vyvedetTablicu;
end;
Всё равно перед каждым вводом в заголовок столбца выскакивает ошибка, не после, а перед. Как от этого избавиться? И что самое интересно - шапка заполняется и процедура работает. Что это за ошибка, помогите пожалуйста.
Вот вся процедура, я её ещё не исправил полностью, но это не из-за ошибки в коде сообщение об ошибке в ходе выполнения программы, оно выскаивает до ввода данных.
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
procedure TForm1.HeaderEditorEditingDone(Sender: TObject);
var/////////////////////////////////////////////////////////////////////////////////////////////////////
bool,counter, InterVar, Rezult, SaveVar, x, y, x1, y1, znachenie : integer;
soderganie: string[6];
grid : TStringGrid;
arr1: arr;
procedure snulya;
var
st: integer;
begin
SetLength(arraygrid[HeaderCell-1],znachenie);
for st:=0 to znachenie-1 do
SetLength(arraygrid[HeaderCell-1,st],1,1,1);
vyvedetTablicu;
end;
 procedure spervogo;
 var
 st: integer;
begin
SetLength(arraygrid[izmerenie[0],HeaderCell-1],znachenie);
for st:=0 to znachenie do
SetLength(arraygrid[izmerenie[0],HeaderCell-1,st],1,1);
 vyvedetTablicu;
 end;
procedure svtorogo;
var
 st: integer;
begin
for st:=0 to znachenie do
SetLength(arraygrid[izmerenie[0],izmerenie[1],HeaderCell-1],st,1);
 vyvedetTablicu;
 end;
procedure stretiego;
begin
SetLength(arraygrid[izmerenie[0],izmerenie[1], izmerenie[2],HeaderCell-1],znachenie);
 vyvedetTablicu;
 end;
procedure schetvyortogo;
begin
 end;
procedure spyatogo;
begin
end;
begin
Миниатюры
Ошибка есть, но программа работает  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2017, 21:09
Ответы с готовыми решениями:

Есть ли программа по типу Fraps, которая работает как видеорегистратор
Есть ли программа по типу Fraps, которая работает как видеорегистратор? Т. е. снимает постоянно и спустя некоторое время не останавливая...

Долго работает программа, есть ли какой-то способ ускорить работу?
int bitmap = new int; for (int x = 0; x < word.Width; x++) { for (int y = 0; y < word.Height;...

Есть код и программа , вылазит ошибка
Есть программа с кодом , но у меня вылазит ошибка , не пойму в чем , кто может помочь ? 1. В поле Edit1, вводим функцию x/(x*x*x*x+4);...

26
Заблокирован
15.02.2017, 21:00  [ТС]
Студворк — интернет-сервис помощи студентам
туда-же
Pascal
1
2
3
4
5
6
7
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
if Key<50 then
  begin
keyOff[Key];
vyvedetTablicu;
Добавлено через 2 минуты
Цитата Сообщение от volvo Посмотреть сообщение
Это попытка работы обработчика события стринггрида OnEditingDone
а кто создает это событие при выставлении галочки?

Добавлено через 3 минуты
ах, да, сори, тут-же перевод прямой: вверх это -клавиша вниз, вниз это - клавиша вверх.

Добавлено через 3 минуты
Цитата Сообщение от volvo Посмотреть сообщение
Это попытка работы обработчика события стринггрида OnEditingDone (которое, среди прочего, возникает и при попытке убрать фокус со StringGrid-а)
ну и вернулись с чего начали - я даже форму не программировал, я просто перетащил компоненты.
а в коде, среди прочего, вызова этого события нет, только разрешение. у меня нет такого кода, который сам-бы редактировал содержимое ячеек.

Добавлено через 7 минут
Так, что я обойду эти ошибки, и программа будет работать и выложена как free, с подробным мануалом и описанием косяков. Юзеры решат чьи это косяки, слава бога прога не для нубов и не тетрис.
Прошу прощения что отнял у Вас время, не отнимайте и вы моего. Я могу даже к любой другой среде свой код приладить, главное - чтобы был код, и чтобы он работал без ошибок. А что там обрабатывает отладчик - до фонаря мне, я сам могу найти все ошибки СВОЕГО НЕЧИТАБЕЛЬНОГО КОДА, в то время как вы для прочтения вашего читабельного , придумали отладчики .

Добавлено через 8 минут
Pascal
1
for st:=0 to znachenie-1
этоже так трудно... а зачем? лучше кидаться какашками, всё равно юзер не понимает тонкостей работы сверхумного отладчика.

Добавлено через 5 минут
теперь ошибка в первой строке. и кто его знает почему снизу вверх ошибки ищутся...
Pascal
1
2
3
4
5
6
 y1:=length(arraygrid[x-1]);
    if (y-1=y1) or (y-1<y1) then
 begin
SetLength(arraygrid[x-1,y-1],znachenie);
for st:=0 to znachenie-1 do
SetLength(arraygrid[x-1,y-1,st],1,1);
Добавлено через 7 минут
и какая может быть в той строке ошибка? её нету. поэтому программа и работает, а остальное - не мои проблемы. я её сделаю как и сказал. просто буду искать их не в супер отладчике и компиляторе, а при выполнении программы. всё возможно.

Добавлено через 2 минуты
как только вы найдёте её там, эту ошибку
Pascal
1
y1:=length(arraygrid[x-1]);
тогда и рассказывайте о моей убогости и и неимоверной крутости своей среды, которая сам к тому-же события создает, после чего обвиняют её юзера в том, что его код пытается самостоятельно редактировать содержание таблицы.

Добавлено через 7 минут
Цитата Сообщение от volvo Посмотреть сообщение
Мне, скажем, не удалось даже включить чекбокс Edit,
включается чек бокс курсором, просто нужно нажать сначала CTRL - а это значит: особенности вашей среды. код-то работает, а среду не я создавал, извините.

Добавлено через 16 минут
да есть недоработки кода, но я их отслежу и через работу программы. тут уж не до хорошего.

Добавлено через 10 минут
причём проблема с глюкавостью уже давно, и я давно о ней писал, что форма не работает до тех пор, пока не поставить галочку в чекбоксе, просто это как-то игнорировалось другими (точнее меня послали самому разбираться с этим ), просто с вводом слушателей клавиатуры единственный способ это сделать - нажать первым CTRL. и всё - программа будет работать без глюков, остальные, что связаны с кодом - отловлю без сверхмогущего отладчика, обладающего даром экстрасенсорики.

Добавлено через 3 часа 47 минут
Отладчик отпустило, начал работать, и ошибку не видит уже в этой строке
Pascal
1
2
1
y1:=length(arraygrid[x-1]);
Чудны дела твои господи. А я уже с трёхлавым змеем биться собрался . Ну работает так работает-чего уж теперь.
Но странно, всё-равно, как-то, всё это. Не работал-не работал, потом-бац и заработал. Неужели навсегда заработал?
Отладчик меня простил .
Если у меня появится возможность писать к аве сообщение, у меня там будет - "прощённый отладчиком" .
0
пофигист широкого профиля
4770 / 3207 / 862
Регистрация: 15.07.2013
Сообщений: 18,615
16.02.2017, 01:53
Цитата Сообщение от Hretgir Посмотреть сообщение
Но странно, всё-равно, как-то, всё это. Не работал-не работал, потом-бац и заработал.
Скажем так. Ошибка работы с памятью была всегда. Она и до сих пор есть, поскольку ты её не нашел и не исправил. У тебя был шанс её найти, когда система выдавала тебе сообщение об AV (Access Violation), но ты этим шансом пренебрег. Так что пусть теперь мучаются пользователи твоей программы.

Добавлено через 6 минут
Если всё же одумаешься и перестанешь кивать на "глюки", то прочитай вот эту статью главного нашего специалиста по работе с ошибками. Может поймешь, почему сообщение об AV не всегда выдаётся, когда сама ошибка работы с памятью всё-таки есть. А также какое это счастье, когда такое сообщение появляется "ни с того, ни с сего".
1
Заблокирован
16.02.2017, 09:32  [ТС]
Цитата Сообщение от northener Посмотреть сообщение
А также какое это счастье, когда такое сообщение появляется "ни с того, ни с сего".
Можешь поверить, я знаю какое это "счастье", хоть сам я и не кодер профессиональный, но я доделываю прогу уже не потому что хочу доделать, а потому что взялся и сделал не то чтобы много, но не мало (а всё было сделано в личное время, после работы), а взялся за пятимерную, БД по сути. Просто программирование я не брошу по любому - сейчас времена не те, чтобы в развлекательные программы пялиться по телеку, и просто хочется сказать - то что у России нет своей ОС - большое упущение, непозволительное и расточительное для державы, запускающей корабли в космос и имеющей много других преимуществ.

Не по теме:

Моё личное мнение - это всё равно, что на всех потомках граждан, растущих и живущих в РФ, где-то поставить подпись-"батрак на все времена", то-есть: ни робототехника, ни наука, нам не нужна получается, мы будем получается, добывать для планеты ресурсы и нас будет заваливать в шахтах, тонуть на кораблях, падать с высоты. Ну что можно ещё сказать - вот, и то в реферате они мне какен подложили - включили в реферат 4-ый эскиз, а там с 1-3 всё неплохо получается, и глючит у них БД - всё свалено в кучу, описание, реферат. Вообще расхлебаи короче

http://www1.fips.ru/fips_servl... 1&QID=html

Не по теме:

а там всё можно сделать красиво по меркам инженерии

Кликните здесь для просмотра всего текста
(вот блокировка через четверть оборота, через уменьшение износа посредство снижения скорости масс фиксируемой детали)
писал(а) 13.02.17 :: 20:17:17:
Шарик от подшипника,пружина к этому шарику,трубка для этой пружины,набор или одно кольцо прикрепленное к валу.
На кольце делаются несколько углублений под размер шарика.
При вращении вала при совпадении углубления с шариком он туда заскочит ,что вызовет фиксацию вала в определённом положении.Для переключения между числом фиксаций необходимо добавить трубу в которой свободно движутся кольца и толкатель с аналогичным фиксатором положения(ряд углублений ,шарик,пружина,трубка).

Ну это что-то существенное и применимое, как вариант, спасибо. Может ещё кто что подкинет толковое. Пробовать и сравнивать надо разные варианты будет. Но тут надо учитывать - переключения будут достаточно частыми. Так например, для меньшего износа шарика от ударов, можно приладить шатунчик и грузик (как цилиндр в ДВС) на направляющей, чтобы грузик инерцией амортизировал удар по шарику, когда его расклинивает между вращательной парой. Но это дело - лишний вес, но я пока не придумал другого средства борьбы с износом. Хотя, шарик нужно поставить на пару скольжения, где одним из элементов и будет этот грузик. Во. Может ещё кто что подскажет. Но опробовать стоит оба варианта. Хотя тут и так ясно - чем меньше скорость движения масс, тем меньше износ.
но всё равно сначала допилить программу, а потом уже займусь изобретением


Добавлено через 22 минуты

Не по теме:

А доделывать мне её ещё, с моим опытом (от двух недель, с учётом что надо какой-то функционал минимальный будет прилепить, и моего невеликого опыта).

0
Заблокирован
16.02.2017, 10:18  [ТС]
Вот то, что осталось со всеми включёнными фичами в отладчике, когда я просто на крестик в правом верхнем углу закрываю, если-же в меню компилятора останавливаю-то никакого сообщения об ошибке не выскакивает, всё тогда ровно.
Но на всякий случай скриншот.
А вот и сам проект на настоящий момент (не исключаю ещё пока возможность ошибок где-то, но работает стабильно, только надо после создания файла нажать ctrl, можно и до, тогда галочка будет ставится и убираться курсором, если стоит галочка - массив можно редактировать, пока только размеры вроде. при снятой галочке происходит навигация по массиву - клик по заголовочному столбцу- измерение назад, клик по заголовочной строке - измерение вперёд, двойной клик по ячейке - два измерения вперёд. редактируются размеры как в шапке, так и в ячейках грида). Для навигации можно просто нажать ctrl и держать зажатым, либо снять галочку курсором.
Миниатюры
Ошибка есть, но программа работает  
Вложения
Тип файла: zip 3333.zip (345.3 Кб, 2 просмотров)
0
Заблокирован
16.02.2017, 10:32  [ТС]
Под минимальным функционалом я подразумеваю массив сохраняемый в отдельный файл, в нём будут хранится описания (в формате string) всех веток , редактирование всех данных, и перетаскивание веток. для начала этого будет вполне достаточным (перетаскивание веток).
0
30 / 24 / 22
Регистрация: 12.11.2011
Сообщений: 181
16.02.2017, 10:52
Не знаю почему в заголовке окна написано Error, но похоже (у меня на линухе это выглядит по-другому - без окна) что это отчет модуля heaptrc о использовании памяти. Нули говорят о том что вся память, которая была выделена под переменные, была освобождена. Что есть правильно. Естественно, при релизной сборке данный отчет выключается. Настройка здесь: Параметры проекта-отладка-Использовать модуль Heaptrc
1
Заблокирован
16.02.2017, 16:42  [ТС]
В первую очередь, что надо - выгребать весь мусор, который там был оставлен ещё с момента быстрой импровизации основного замысла, так например там осталось множество такого мусора, после убирания которого стало намного меньше таких операций как "-1", они там у меня на каждом шагу. Может кто-то и придавал этому значение, я лично нет, я и не претендовал на читабельность своего кода (но в принципе знаю, что группа поддержки скандирующая-"он дурак" существует (не именно тут на форуме, но есть), и работает вполне активно, до сих пор, но пофиг - эти люди зарабатывают себе минусы по жизни, их право, я сделаю всё как надо), сейчас выгребаю, всё равно ошибки есть, которые как-бы ошибками и не являются, а сказываются только при редактировании массива в работе программы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.02.2017, 16:42

Есть код, но он не полностью работает, в чем ошибка?
Вообще работает все хорошо , но как только добавляю две команды Unload Userform2 и Unload UserForm3 начинается проблема, он выполняет все...

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

Ошибка. программа не работает
выдаёт ошибку в строке double a; Вот программа #include &lt;iostream&gt; using namespace std; class a { double a; int n; ...

Есть программа, которая должна выводить график max и min функции, но она почему то не работает
Program Graphik; uses Graph; Type T=array of real; gt=string; var Gd,Gm: integer; z1,z2,z3: byte; Procedure Grf(tc:Gt; x,y:...

Программа которая изменяет динамический массив строк - Написал, но есть ошибка
Всем доброго времени суток. В общем сделал программу, которая вкратце делает следующее: 1) Создает динамических массив строк char **m ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru