Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];

Вниз

странное поведение StringGrid   Найти похожие ветки 

 
DeadLord ©   (2007-10-08 21:58) [0]

получаю данные для массива:
      begin
      for i:=1to xx do
              for j:=1to yy do
                     w[i,j]:=strtofloat(form2.stringgrid1.Cells[i,j]);  
                      end;

Если запускать по Ф9, то все идет гладко, но большая часть массива заполняется нолями, хотя стринг грид не нулевая вообще. Если попробовать выполнить по шагам, то выпадает access violation и окошко отладчика... в чем дело?!


 
й1   (2007-10-08 22:05) [1]


> strtofloat


 
DeadLord ©   (2007-10-08 22:08) [2]


> > strtofloat


не понял...


 
DeadLord ©   (2007-10-08 22:09) [3]

а, да. стринг грид содержит дробные числа, массив w типа риал


 
Prohodil Mimo ©   (2007-10-08 22:14) [4]

а остальные переменные каких типов?


 
DeadLord ©   (2007-10-08 22:16) [5]


> а остальные переменные каких типов?


которые? i,j,xx,yy- byte.


 
Вася Правильный   (2007-10-08 22:20) [6]


> i,j,xx,yy- byte.

экономишь?

>  стринг грид содержит дробные числа

а десятичныйразделитель учтен?


 
Prohodil Mimo ©   (2007-10-08 22:20) [7]

DeadLord ©   (08.10.07 22:16) [5]
i,j,xx,yy- byte.


так и думал.
а колонок и строк в гриде наверное больше чем 255?


 
Anatoly Podgoretsky ©   (2007-10-08 22:20) [8]

Во первых заменить на Integer, а во вторых разобраться с индексами, где строки и столбцы у массивов и у StringGrid и в третьих если приводишь код, то приводи полностью, а не огрызки.


 
DeadLord ©   (2007-10-08 22:22) [9]


> > i,j,xx,yy- byte.
>экономишь?

а почему бы и нет?

>>  стринг грид содержит дробные числа
>а десятичныйразделитель учтен?

в смысле? запятая стоит. несколько числе нормально распознались, а остальные ячейки нолями забиты:(


 
DeadLord ©   (2007-10-08 22:22) [10]


> так и думал.а колонок и строк в гриде наверное больше чем
> 255?


12х12


 
Prohodil Mimo ©   (2007-10-08 22:24) [11]

DeadLord ©   (08.10.07 22:22) [10]
тогда делай

> в третьих
из [8]


 
Вася Правильный   (2007-10-08 22:25) [12]


> >экономишь?а почему бы и нет?

это самообман
никакой экономии не происходит, все равно хранится как Integer, обрабатывается только медленнее и неуловимых проблем больше

> в смысле? запятая стоит

а в системе? а DecimalSeparator?


 
DeadLord ©   (2007-10-08 22:26) [13]


> Во первых заменить на Integer, а во вторых разобраться с
> индексами, где строки и столбцы у массивов и у StringGrid
> и в третьих если приводишь код, то приводи полностью, а
> не огрызки.

изменил на интеджер- не помогло.
вот процедура целиком:
procedure letsgo;
begin
if perexodim<>true then
       begin
       for i:=1to xx do
               for j:=1to yy do
                      w[i,j]:=strtofloat(form2.stringgrid1.Cells[i,j]);  
                       end;
if nomras=1 then raschet1(w);
if nomras=2 then raschet2(w);
if nomras=3 then raschet3(w);
if nomras=4 then raschet4(w);
if nomras=5 then raschet5(w);
if nomras=6 then raschet6(w);
if nomras=7 then raschet7(w);
if nomras=8 then raschet8(w);
end;


 
Prohodil Mimo ©   (2007-10-08 22:29) [14]

DeadLord ©   (08.10.07 22:26) [13]
из таких зверьков шубы делают :о)


 
Anatoly Podgoretsky ©   (2007-10-08 22:30) [15]

> DeadLord  (08.10.2007 22:26:13)  [13]

Опять огрызок, неизвестны типы переменных

perexodim, i, xx, j, yy, w[i,j]

и их начальные значения. Кроме того в какой строке возникает ошибка.


 
DeadLord ©   (2007-10-08 22:33) [16]


> Опять огрызок, неизвестны типы переменныхperexodim, i, xx,
>  j, yy, w[i,j]и их начальные значения. Кроме того в какой
> строке возникает ошибка.


i, xx, j, yy- изменил на интеджер
w[i,j]- TMyArr = array[0..12, 0..15] of double;

начальные значения ноль

ошибка возникает в строке
w[i,j]:=strtofloat(form2.stringgrid1.Cells[i,j]);


 
Prohodil Mimo ©   (2007-10-08 22:35) [17]

нет процедуры заполнения грида
нет процедур типа raschet1..8
нет той процедуры, при помощи которой ты узнаёшь, что числа потерялись

Вася Правильный   (08.10.07 22:25) [12]
а в системе? а DecimalSeparator?


если бы была в этом причина, он бы получал не АВ, а значение ххх не флоат.


 
Anatoly Podgoretsky ©   (2007-10-08 22:36) [18]


> начальные значения ноль
>
> ошибка возникает в строке
> w[i,j]:=strtofloat(form2.stringgrid1.Cells[i,j]);

Не может, цикл не выполнится ни одного разу.


 
DeadLord ©   (2007-10-08 22:39) [19]


> нет процедуры заполнения грида
>нет процедур типа raschet1..8
> нет той процедуры, при помощи которой ты узнаёшь, что
> числа потерялись


грид заполнен, мне лень каждый рад вбивать 144 значения, как подразумевается по ТЗ

о потеряных значениях узнаю, наведя мышку на переменную массива. Там большая часть значений в начале строки-ноль, последние 2-3 значения- осмысленные

вот описание процедур:
 procedure raschet1(var d: TMyArr);
 procedure raschet2(var d: TMyArr);
 procedure raschet3(var c2: TMyArr);
 procedure raschet4(var a: TMyArr);
 procedure raschet5(var a: TMyArr);
 procedure raschet6(var a: TMyArr);
 procedure raschet7(var a: TMyArr);
 procedure raschet8(var a: TMyArr);


 
Prohodil Mimo ©   (2007-10-08 22:40) [20]

DeadLord ©   (08.10.07 22:33) [16]
если
for i:=1to xx do
for j:=1to yy do

то почему
array[0..12, 0..15]?

так же где xx и yy принимают значения и какие?


 
DeadLord ©   (2007-10-08 22:40) [21]


> Не может, цикл не выполнится ни одного разу.


почему? он очень даже выполняется- по шагам прогнал... Значение переменной perexodim- false


 
DeadLord ©   (2007-10-08 22:42) [22]


> ак же где xx и yy принимают значения и какие?

блин, забыл: эти два числа у меня константы, равные 12. столбцов 15, так как в последствии есть элементы yy+2 и yy+3


 
Anatoly Podgoretsky ©   (2007-10-08 22:43) [23]

> DeadLord  (08.10.2007 22:40:21)  [21]

Цикл for I := 1 to 0 никогда не выполнится, так что лапшу на уши вешаешь.


 
Anatoly Podgoretsky ©   (2007-10-08 22:44) [24]

> DeadLord  (08.10.2007 22:42:22)  [22]

Когда будет полный и правильный код?


 
DeadLord ©   (2007-10-08 22:44) [25]


> Цикл for I := 1 to 0 никогда не выполнится, так что лапшу
> на уши вешаешь.

извини, мой затык >> [22]


 
Prohodil Mimo ©   (2007-10-08 22:45) [26]

DeadLord ©   (08.10.07 22:42) [22]
ты не ответил на первый вопрос.

>если
>for i:=1 to xx do
>for j:=1 to yy do
>то почему
> array[0..12, 0..15]?


 
DeadLord ©   (2007-10-08 22:45) [27]


> Когда будет полный и правильный код?

я его выкладывал уже...
http://delphimaster.net/view/15-1190608909/


 
DeadLord ©   (2007-10-08 22:47) [28]


> ты не ответил на первый вопрос

оО точно... опять косяк:) но это не влияет... просто я определение типа писал отдельно, сегодня, видимо не о том думал:(


 
Anatoly Podgoretsky ©   (2007-10-08 22:49) [29]

> DeadLord  (08.10.2007 22:45:27)  [27]

В указаной ветке кода нет.


 
Prohodil Mimo ©   (2007-10-08 22:53) [30]

DeadLord ©   (08.10.07 22:47) [28]

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

а для начала проверь что будет:

if perexodim<>true then
begin
  for i:=1to xx do
  for j:=1to yy do
     w[i,j]:=strtofloat(form2.stringgrid1.Cells[i,j]);  
  for i:=1to xx do
  for j:=1to yy do
     form2.stringgrid1.Cells[i,j] := FormatFloat("0.00", w[i,j]);
end;
если значения обнулятся, значит что-то не то при чтении, если останутся прежними, ищи косяки в raschet...
хотя не исключено, что значения чутка изменятся в результате конвертаций стринг>>флоат>>стринг


 
Prohodil Mimo ©   (2007-10-08 22:54) [31]

Anatoly Podgoretsky ©   (08.10.07 22:49) [29]
В указаной ветке кода нет.


там есть ссылка на код, который сделал ноги.


 
DeadLord ©   (2007-10-08 22:54) [32]


> В указаной ветке кода нет.

залил http://slil.ru/24953399


 
DeadLord ©   (2007-10-08 22:56) [33]


> если значения обнулятся, значит что-то не то при чтении,
>  если останутся прежними, ищи косяки в raschet...хотя не
> исключено, что значения чутка изменятся в результате конвертаций
> стринг>>флоат>>стринг

хм... остались прежними... значит где то косяк, пошел искать:(


 
Anatoly Podgoretsky ©   (2007-10-08 22:57) [34]

> Prohodil Mimo  (08.10.2007 22:54:31)  [31]

Еще не хватало бегать по Интернет за кодом.


 
DeadLord ©   (2007-10-08 23:01) [35]

=))))))))))))))))))))


 
Prohodil Mimo ©   (2007-10-08 23:04) [36]

Anatoly Podgoretsky ©   (08.10.07 22:57) [34]
будь я тем кодом, я бы тоже прятался :о)


 
Anatoly Podgoretsky ©   (2007-10-08 23:06) [37]

> Prohodil Mimo  (08.10.2007 23:04:36)  [36]

Это как минимум не уважение к форуму, посылать за 20 строчками кода неизвестно куда то в Интернет.


 
Anatoly Podgoretsky ©   (2007-10-08 23:07) [38]

И вместо него постоянно приводить какие то огрызки.


 
vasIZmax ©   (2007-10-08 23:07) [39]

))))))))))))))))
плачу и бьюсь об стол
ребят, скачайте))))

Unit2, 483 строка))))))))) а он, далеко пойдет)))))


 
DeadLord ©   (2007-10-08 23:07) [40]


> Это как минимум не уважение к форуму, посылать за 20 строчками
> кода неизвестно куда то в Интернет.

их там 452....



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.57 MB
Время: 0.048 c
1-1186402346
DevilDevil
2007-08-06 16:12
2007.11.11
Проблема с прорисовкой содержимого панелей (TPanel)


11-1170771683
Psychedelic
2007-02-06 17:21
2007.11.11
Исправления в KOLComboBoxEx и KOLSATab


2-1192884365
user1024
2007-10-20 16:46
2007.11.11
Как записать значение типа Memo в таблицу БД?


2-1192706459
apic
2007-10-18 15:20
2007.11.11
Курсор


2-1193040297
ruma
2007-10-22 12:04
2007.11.11
TStringGrid. Как удержать фокус на ячейке таблицы?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский