| Цитата(metamfetamin @ 11.11.2007, 18:29) | : В Delphi разработать две программы - одна создает файл, проецируемый в память, куда записывает координаты мышки, вторая (клиент) читает эти данные и выдает их с периодом работы таймера. Открыть новый проект MemMap в котором объявляется файл, проецируемый в память, выделяется ему место в памяти, запрашивается адрес памяти и записывается координаты мышки по этому адресу. Текст модуля:
| Код | unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm)>/STRONG> Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; hMapObj:THandle; //ссылка на проец.файл PMapView:PLongInt; //адрес региона памяти implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin //создание проецируемого в память файла hMapObj:=CreateFileMapping( </STRONG> $FFFFFFFF, //не дисковый файл Nil, //атрибут секретности PAGE_READWRITE, //чтение и запись 0, SizeOf(DWORD), //размер 'shared_memory');//уникальное название if hMapObj=0 then< /STRONG> begin ShowMessage('Файл не создан'); end else begin GetMem(PMapView,SizeOf(LongInt)); //выделить память //получить адрес региона PMapView:=(MapViewOfFile(hMapObj,FILE_MAP_WRITE,0,0,0)); </STRONG> end; end; procedure TForm1.FormDestroy(Sender: TObject); begin UnMapViewOfFile(PMapView); CloseHandle(hMapObj); end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin PMapView^:=X SHL8 + Y; //поместим данные < /STRONG> label1.caption:=IntToStr(Hi(PMapView^))+ ':'+</STRONG> IntToStr(LO(PMapView^)); label4.caption:=IntToStr(X); </STRONG> label6.caption:=IntToStr(Y); </STRONG> end; end. • Создать новый проект Client в котором открывается файл, созданный в первой программе, определяется адрес файла и читаются координаты мышки на форме первого приложения. Текст программы: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) < /STRONG > Label1: TLabel; Timer1: TTimer; Label2: TLabel; procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; hMapObj:THandle; //ссылка на проец.файл x PMapView:PLongInt; //адрес региона памяти implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin //открытие проецируемого в память файла hMapObj:=OpenFileMapping( </STRONG> /STRONG>FILE_MAP_READ,False, /STRONG>'shared_memory'); if hMapObj=0 then< /STRONG> /STRONG>begin ShowMessage('Файл не создан'); end else begin GetMem(PMapView,SizeOf(LongInt));//выделить память //получить адрес региона PMapView:=(MapViewOfFile(hMapObj,FILE_MAP_REA,0,0,0));</STRONG> end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Label1.Caption:=IntToStr(Hi(PMapView^))+ ':'+< /STRONG> IntToStr(LO(PMapView^)); end; end.
|
В данном случае????? |
Тебя же сказали - что писать надо самому, что непонятно. :( Если копируете - копируйте правильно. |