поле items 0 name
Поле items 0 name
Есть объявленные типы.
TName = array [ 0..64 ] of char;
TItem = record
Name : TName;
SurName : TName;
end;
так же объявлен массив
Items : array of TItems;
так вот в присвоении
StringGrid1.Cells[ 0, 0 ] := Items[ count ].Name;
в ячейку пишется какая-то лажа.
аналогично с StrPas( PChar( @Items[ count ].Name ) );
хотя при отладке инспекция записи показывает правильный результат
как лечить.
← →
Семен Сорокин ( 2003-07-14 17:40 ) [1]
а нулевой символ #0 в конце каждой строки TName добавляешь?
← →
Skier ( 2003-07-14 17:41 ) [2]
← →
[lamer]Barmaglot ( 2003-07-14 17:54 ) [3]
procedure TForm1.Button1Click(Sender: TObject);
type
TItem = record
Name : array [ 0..64 ] of char;
SurName : array [ 0..64 ] of char;
end;
var
Items : array of TItem;
begin
SetLength(Items,1);
Items[0].Name:=»lamer»;
Items[0].SurName:=»Barmaglot»;
StringGrid1.Cells[ 0, 0 ] := Items[ 0 ].Name;
← →
Geek ( 2003-07-14 17:55 ) [4]
#0 везде есть
Динамический массив выделяется нормально.
Setlength рулит =)
В рантайм массив выглядит так как надо. траблы вот в чем:
даже команда
Move( Items[ count ].Name, k^, 64 ); // k : PChar;
гонит пургу. И с операцией @Items[ count ].Name ТОЖЕ.
Это баг или фича?
>Geek (14.07.03 17:55)
> Move( Items[ count ].Name, k^, 64 ); // k : PChar;
> гонит пургу.
Это ты «гонишь пургу».
И лучше всё-таки по-русски говорить.
← →
Geek ( 2003-07-14 18:08 ) [6]
Что тут не по-русски?
Код от [lamer]Barmaglot работает.
Может как-то влиять на ситуацию то что записи читаются из файла7
← →
Skier ( 2003-07-14 18:10 ) [7]
>Geek (14.07.03 18:08)
Может. Если неправильно читаешь.
← →
Geek ( 2003-07-14 18:24 ) [8]
← →
Geek ( 2003-07-14 18:26 ) [9]
> Если неправильно читаешь.
Читает-пишет-читает правильно.
Похоже это был глюк из разряда «барабашка» =)