Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2011, 14:22   #1
lux16
Форумчанин
 
Аватар для lux16
 
Регистрация: 11.02.2009
Сообщений: 305
Восклицание Динамический массив в Record и отправка его через

Привет, народ. Столкнулся с проблемой. Есть такая структура:
Код:
 aData = Packed Record
    aArr:   Array Of String;
  End;
И такие процедуры:
Код:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var
  rec:  aData;
begin
  SetLength( rec.aArr, 3 );
  rec.aArr[1] := '1';
  rec.aArr[2] := '2';
  Socket.SendBuf( rec, SizeOf( rec ) );
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var
  rec:  aData;
  len:  Byte;
begin
  len := Socket.ReceiveLength;
  Socket.ReceiveBuf( rec, len );
  Memo1.Lines.Add( rec.aArr[1] );
end;
И в Memo1 просто добовляется пустая строка, но если в процедуре procedure TForm1.ServerSocket1ClientConnect(S ender: TObject;
Socket: TCustomWinSocket); добавить строку ShowMessage( '' );, то есть привести ее к такому виду:
Код:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var
  rec:  aData;
begin
  SetLength( rec.aArr, 3 );
  rec.aArr[1] := '1';
  rec.aArr[2] := '2';
  Socket.SendBuf( rec, SizeOf( rec ) );
  ShowMessage( '' );
end;
То все работает, и в Memo1 добовляется строка. Подскажите, что кто знает
Хочу быть лучшим, но пока что я только обычный =(
lux16 вне форума Ответить с цитированием
Старый 18.04.2011, 15:21   #2
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

попробуй вместо
ShowMessage( '' );

поставить
Application.ProcessMessages;
Тут мог в буквах ошибиться - писал по памяти.
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Старый 18.04.2011, 15:33   #3
lux16
Форумчанин
 
Аватар для lux16
 
Регистрация: 11.02.2009
Сообщений: 305
По умолчанию

Цитата:
Сообщение от VadikV Посмотреть сообщение
попробуй вместо
ShowMessage( '' );

поставить
Application.ProcessMessages;
Тут мог в буквах ошибиться - писал по памяти.
Спасибо, помогло
Хочу быть лучшим, но пока что я только обычный =(
lux16 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Послать/принять динамический Record через сокеты VaBank Работа с сетью в Delphi 10 30.07.2015 09:14
Динамический массив - или всё таки не динамический? vedro-compota Общие вопросы C/C++ 30 10.12.2010 23:22
Отправка файла через Outlook при условии его нахождения в папке Gvaridos Microsoft Office Excel 17 29.11.2010 16:31
Как правильно передать через ссылку двумерный динамический массив? amerhant Общие вопросы C/C++ 2 21.04.2010 23:50
Массив из record flug Общие вопросы Delphi 5 20.04.2010 12:43