Friday, March 20, 2020

Free Essays on Ann Radcliffes Writing Style In “The Italian“

Suspense is what makes us intrigued to Ann Radcliffe’s works. She makes us have the absolute need to find out what happens throughout the story of â€Å"The Italian†. Her vague descriptions and the way that she makes the characters let out information is almost wrong from a reader’s point of view only because she gives you enough to make you want more. We could almost say that she makes you addicted to the story. The first chapter makes us start to wonder right away about the man in the church. We went over in class that the Englishman gets some information from someone else which makes him inquire as to what is going on. "'He [the assassin] sought sanctuary here', replied the friar; 'within these walls he may not be hurt'"(2). Now obviously that entire sentence is intriguing in itself. What the story will play out like is only touched on to the point where we must read on, or choose to stay up all night thinking about it. Why is it that the English guy’s friend wants to send him a written explanation of what occurred in the church instead of meeting at the shop on the street? It’s hard to understand why that part ends so suddenly, but of course we believe that we will eventually find out. Radcliffe likes to play with the reader’s emotions as much as possible, almost in a â€Å"how far can I take them† manner. Just when we think we are about to find out something that has been poking us in the ribs, she makes it take another twist. She makes us engaged, but also a little annoyed at what interesting, yet sparse amount of information she gives us. At the point in which Vivaldi goes into the house chasing the dark cloaked man, he comes out as white as a sheet, as if he had seen a ghost. Now us, the reader, know that an event had to take place in this event, but Radcliffe does not allow him to explain even an inkling of what happened. So once again, we are left wanting. It did not necessarily have to be blood, but we see it t... Free Essays on Ann Radcliffe's Writing Style In â€Å"The Italianâ€Å" Free Essays on Ann Radcliffe's Writing Style In â€Å"The Italianâ€Å" Suspense is what makes us intrigued to Ann Radcliffe’s works. She makes us have the absolute need to find out what happens throughout the story of â€Å"The Italian†. Her vague descriptions and the way that she makes the characters let out information is almost wrong from a reader’s point of view only because she gives you enough to make you want more. We could almost say that she makes you addicted to the story. The first chapter makes us start to wonder right away about the man in the church. We went over in class that the Englishman gets some information from someone else which makes him inquire as to what is going on. "'He [the assassin] sought sanctuary here', replied the friar; 'within these walls he may not be hurt'"(2). Now obviously that entire sentence is intriguing in itself. What the story will play out like is only touched on to the point where we must read on, or choose to stay up all night thinking about it. Why is it that the English guy’s friend wants to send him a written explanation of what occurred in the church instead of meeting at the shop on the street? It’s hard to understand why that part ends so suddenly, but of course we believe that we will eventually find out. Radcliffe likes to play with the reader’s emotions as much as possible, almost in a â€Å"how far can I take them† manner. Just when we think we are about to find out something that has been poking us in the ribs, she makes it take another twist. She makes us engaged, but also a little annoyed at what interesting, yet sparse amount of information she gives us. At the point in which Vivaldi goes into the house chasing the dark cloaked man, he comes out as white as a sheet, as if he had seen a ghost. Now us, the reader, know that an event had to take place in this event, but Radcliffe does not allow him to explain even an inkling of what happened. So once again, we are left wanting. It did not necessarily have to be blood, but we see it t...

Wednesday, March 4, 2020

Send Information Between Delphi Apps With WM_COPYDATA

Send Information Between Delphi Apps With WM_COPYDATA There are many situation when you need to allow for two applications to communicate. If you do not want to mess with TCP and sockets communication (because both applications are running on the same machine), you can *simply* send (and properly receive) a special Windows message: WM_COPYDATA. Since handling Windows messages in Delphi is simple, issuing a SendMessage API call along with the WM_CopyData filled with the data to be sent is quite straight forward. WM_CopyData and TCopyDataStruct The WM_COPYDATA message enables you to send data from one application to another. The receiving application receives the data in a TCopyDataStruct record. The TCopyDataStruct is defined in the Windows.pas unit and wraps the COPYDATASTRUCT structure that contains the data to be passed. Heres the declaration and the description of the TCopyDataStruct record: type TCopyDataStruct packed record dwData: DWORD; //up to 32 bits of data to be passed to the receiving application cbData: DWORD; //the size, in bytes, of the data pointed to by the lpData member lpData: Pointer; //Points to data to be passed to the receiving application. This member can be nil. end; Send a String over WM_CopyData For a Sender application to send data to Receiver the CopyDataStruct must be filled and passed using the SendMessage function. Heres how to send a string value over WM_CopyData: procedure TSenderMainForm.SendString() ; var stringToSend : string; copyDataStruct : TCopyDataStruct; begin stringToSend : About Delphi Programming; copyDataStruct.dwData : 0; //use it to identify the message contents copyDataStruct.cbData : 1 Length(stringToSend) ; copyDataStruct.lpData : PChar(stringToSend) ; SendData(copyDataStruct) ; end; The SendData custom function locates the receiver using the FindWindow API call: procedure TSenderMainForm.SendData(const copyDataStruct: TCopyDataStruct) ; var   Ã‚  receiverHandle : THandle;   Ã‚  res : integer; begin   Ã‚  receiverHandle : FindWindow(PChar(TReceiverMainForm),PChar(ReceiverMainForm)) ;   Ã‚  if receiverHandle 0 then   Ã‚  begin   Ã‚  Ã‚  Ã‚  ShowMessage(CopyData Receiver NOT found!) ;   Ã‚  Ã‚  Ã‚  Exit;   Ã‚  end;   Ã‚  res : SendMessage(receiverHandle, WM_COPYDATA, Integer(Handle), Integer(copyDataStruct)) ; end; In the code above, the Receiver application was found using the FindWindow API call by passing the class name of the main form (TReceiverMainForm) and the caption of the window (ReceiverMainForm). Note: The SendMessage returns an integer value assigned by the code that handled the WM_CopyData message. Handling WM_CopyData - Receiving a String The Receiver application handles the WM_CopyData mesage as in: type TReceiverMainForm class(TForm) private procedure WMCopyData(var Msg : TWMCopyData) ; message WM_COPYDATA; ... implementation ... procedure TReceiverMainForm.WMCopyData(var Msg: TWMCopyData) ; var s : string; begin s : PChar(Msg.CopyDataStruct.lpData) ; //Send something back msg.Result : 2006; end; The TWMCopyData record is declared as: TWMCopyData packed record Msg: Cardinal; From: HWND;//Handle of the Window that passed the data CopyDataStruct: PCopyDataStruct; //data passed Result: Longint;//Use it to send a value back to the Sender end; Sending String, Custom Record or an Image? The accompanying source code demonstrates how to send a string, record (complex data type) and even graphics (bitmap) to another application. If you cannot wait the download, heres how to send a TBitmap graphics: procedure TSenderMainForm.SendImage() ; var ms : TMemoryStream; bmp : TBitmap; copyDataStruct : TCopyDataStruct; begin ms : TMemoryStream.Create; try bmp : self.GetFormImage; try bmp.SaveToStream(ms) ; finally bmp.Free; end; copyDataStruct.dwData : Integer(cdtImage) ; // identify the data copyDataStruct.cbData : ms.Size; copyDataStruct.lpData : ms.Memory; SendData(copyDataStruct) ; finally ms.Free; end; end; And how to receive it: procedure TReceiverMainForm.HandleCopyDataImage( copyDataStruct: PCopyDataStruct) ; var ms: TMemoryStream; begin ms : TMemoryStream.Create; try ms.Write(copyDataStruct.lpData^, copyDataStruct.cbData) ; ms.Position : 0; receivedImage.Picture.Bitmap.LoadFromStream(ms) ; finally ms.Free; end; end;