![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
How to pass string from TKOLThread to KOL form ?
Boguslaw © (2005-01-06 17:51:00)How to pass string from TKOLThread to KOL form in thread-safe operation ?
I'm using SendMessage(Form.Handle,WM_MYEVENT,x,y)
to pass some information to KOL form in main thread, but how to pass AnsiString ? (WM_MYEVENT = WM_USER+1)
SendMessage(Form.Handle,WM_MYEVENT,x,Integer(PChar(AnsiString)))
crash my application.
I want to add some report line to listbox from working TKOlThread.
Please,help.
thaddy (2005-01-09 16:12:00) [1]And a really easy thread manager that makes working with threads really *very* easy:
http://members.chello.nl/t.koning8/kolthreadsdemo.zip
http://members.chello.nl/t.koning8/kolsyncobjs.pas
thaddy (2005-01-09 15:02:00) [2]I have added Thread synchronization primitives for KOL to my site to make this kind of work really simple and safe.
(Events, spinlocks, Synchro, etc) pure KOL and simple to use.
Boguslaw (2005-01-07 19:56:00) [3]Thread.Synchronize seems to be working
I just save current value in ansistring KOLForm object private member and execute Thread.Synchonize against DoUpdate procedure which takes these private memeber and update GUI (Label,ListBox etc) in main thread context.
I suppose this is correct ? Anyway it is working without crash on many computers now.
thaddy (2005-01-07 17:50:00) [4]You can also use my KOL ipc streams for those kind of tasks. They are inherently threadsafe.
SPeller (2005-01-06 21:08:00) [5]You can use the WM_COPYDATA message to send any data to any window. If you send data with this message, Windows automatically use its internal mechanisms to send true data to the receiver. You may use your own values of the wParam to determine that received data is a string.
Slay (2005-01-06 18:55:00) [6]Make attempt to write so:
SendMessage(Form.Handle,WM_MYEVENT,x,Integer(@String));
(AnsiString must be global variable in Form module)
To insert AnsiString for example in MEMO write:
...
memo1.add('String='+string(pointer(lParam)^));
...
method 2:
you can useThread.SynchronizeorSynchronizeEx
forgive for English I translated by the program :)