передача указателя через обработчик событий
От: foxdayk  
Дата: 07.07.10 07:33
Оценка:
что не так делаю ?


.h-файл:

const WM_USERMESSAGE = WM_USER + 245;
....
private:
void __fastcall WMUserMessage(TMessage& Msg);

BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_USERMESSAGE, TMessage, WMUserMessage);
END_MESSAGE_MAP(TForm)

.c-файл:

упаковка:
void __fastcall TFormStart::ServerSocket1ClientConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
String S = Socket->RemoteAddress; // получаем AnsiString — адрес клиента
String *P = &S; // получаем ссылку

PostMessage(Handle,WM_USERMESSAGE, (WPARAM)P, 0); // передаем ссылку
}

распаковка:
void __fastcall TFormStart::WMUserMessage(TMessage& Msg)
{
AnsiString *P = new AnsiString();
AnsiString *P = (AnsiString*)Msg.WParam;

String S = *P; // что то получаем, но не адрес клиента

if(Msg.LParam==0)
ListBox1->Items->Add(S);
}

12.07.10 13:13: Перенесено модератором из 'C/C++' — Кодт
c++ builder
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.