Tuesday, March 17, 2020

Save a Web Page as HTML or MHT Using Delphi

Save a Web Page as HTML or MHT Using Delphi When working with Delphi, the TWebBrowser component allows you to create a customized Web browsing application or to add Internet, file and network browsing, document viewing, and data downloading capabilities to your applications. How to Save a Web Page from TWebBrowser When using Internet Explorer, you are allowed you to view the source HTML code of a page and to save that page as a file on your local drive. If you are viewing a page that you wish to keep, go to the File/Save As ... menu item. In the dialog box that opens, you have several file types offered. Saving the page as a different filetype will affect how the page is saved. The TWebBrowser component (located on the Internet page of the Component Palette) provides access to the Web browser functionality from your Delphi applications. In general, youll want to enable saving of a web page displayed inside a WebBrowser as an HTML file to a disk. Saving a Web Page As a Raw HTML If you only want to save a web page as a raw HTML you would select Web Page, HTML only (*.htm, *.html). It will simply save the current pages source HTML to your drive intact. This action will NOT save the graphics from the page or any other files used within the page, which means that if you loaded the file back from the local disk, you would see broken image links. Heres how to save a web page as raw HTML using Delphi code: uses ActiveX; ... procedure WB_SaveAs_HTML(WB : TWebBrowser; const FileName : string) ; var   Ã‚  PersistStream: IPersistStreamInit;   Ã‚  Stream: IStream;   Ã‚  FileStream: TFileStream; begin   Ã‚  if not Assigned(WB.Document) then   Ã‚  begin   Ã‚  Ã‚  Ã‚  ShowMessage(Document not loaded!) ;   Ã‚  Ã‚  Ã‚  Exit;   Ã‚  end;   Ã‚  PersistStream : WB.Document as IPersistStreamInit;   Ã‚  FileStream : TFileStream.Create(FileName, fmCreate) ;   Ã‚  try   Ã‚  Ã‚  Ã‚  Stream : TStreamAdapter.Create(FileStream, soReference) as IStream;   Ã‚  Ã‚  Ã‚  if Failed(PersistStream.Save(Stream, True)) then ShowMessage(SaveAs HTML fail!) ;   Ã‚  finally   Ã‚  Ã‚  Ã‚  FileStream.Free;   Ã‚  end; end; (* WB_SaveAs_HTML *) Usage sample: //first navigate WebBrowser1.Navigate(http://delphi.about.com) ; //then save WB_SaveAs_HTML(WebBrowser1,c:\WebBrowser1.html) ; Notes The IPersistStreamInit and IStream interfaces are declared inside the ActiveX unit.The web page is saved as a raw HTML to the WebBrowser1.html file on the root folder of the C drive. MHT: Web Archive, Single File When you save a Web page as Web archive, single file (*.mht) the web document gets saved in the Multipurpose Internet Mail Extension HTML (MHTML) format with a .mht file extension. All relative links in the Web page are remapped and the embedded content is included in the .mht file, rather than being saved in a separate folder (as the case is with Web Page, complete (*.htm, *.html)). MHTML enables you to send and receive Web pages and other HTML documents using e-mail programs such as Microsoft Outlook, and Microsoft Outlook Express; or even your custom Delphi email sending solutions. MHTML enables you to embed images directly into the body of your e-mail messages rather than attaching them to the message. Heres how to save a webpage as a single file (MHT format) using Delphi code: uses CDO_TLB, ADODB_TLB; ... procedure WB_SaveAs_MHT(WB: TWebBrowser; FileName: TFileName) ; var   Ã‚  Msg: IMessage;   Ã‚  Conf: IConfiguration;   Ã‚  Stream: _Stream;   Ã‚  URL : widestring; begin   Ã‚  if not Assigned(WB.Document) then Exit;   Ã‚  URL : WB.LocationURL;   Ã‚  Msg : CoMessage.Create;   Ã‚  Conf : CoConfiguration.Create;   Ã‚  try   Ã‚  Ã‚  Ã‚  Msg.Configuration : Conf;   Ã‚  Ã‚  Ã‚  Msg.CreateMHTMLBody(URL, cdoSuppressAll, , ) ;   Ã‚  Ã‚  Ã‚  Stream : Msg.GetStream;   Ã‚  Ã‚  Ã‚  Stream.SaveToFile(FileName, adSaveCreateOverWrite) ;   Ã‚  finally   Ã‚  Ã‚  Ã‚  Msg : nil;   Ã‚  Ã‚  Ã‚  Conf : nil;   Ã‚  Ã‚  Ã‚  Stream : nil;   Ã‚  end; end; (* WB_SaveAs_MHT *) Sample usage: //first navigate WebBrowser1.Navigate(http://delphi.about.com) ; //then save WB_SaveAs_MHT(WebBrowser1,c:\WebBrowser1.mht) ; Note The _Stream class is defined in ADODB_TLB unit that you probably already have created. The IMessage and IConfiguration interfaces code from cdosys.dll library. CDO stands for Collaboration Data Objects - object libraries designed to enable SMTP Messaging. The CDO_TLB is an auto-generated unit by Delphi. To create it, from the main menu select Import Type Library, select C:\WINDOWS\system32\cdosys.dll then click the Create unit button. No TWebBrowser You could rewrite the WB_SaveAs_MHT procedure to accept an URL string (not TWebBrowser) to be able to save a web page directly no need to use the WebBrowser component. The URL from WebBrowser is retrieved using the WB.LocationURL property.

Sunday, March 1, 2020

The Greedy Triangle Teaches Kids About Geometry

The Greedy Triangle Teaches Kids About Geometry This sample lesson plan uses the book The Greedy Triangle to teach about the attributes of two-dimensional figures. The plan is designed for second-grade and third-grade students, and it requires a 45-minute period for two  days. The only supplies needed are: The book The Greedy Triangle by Marilyn BurnsSeveral sheets of poster paper The objective of this lesson plan is for  students to learn that shapes are defined by their attributes- specifically the number of sides and angles they have.  The key vocabulary words  in this lesson are  triangle,  square,  pentagon,  hexagon, side and  angle. Common Core Standards Met This lesson plan satisfies the following Common Core standards in the Geometry category and Reason With Shapes and Their Attributes sub-category.   2.G.1. Recognize and draw shapes having specified attributes, such as a given number of angles or a given number of equal faces. Identify triangles, quadrilaterals, pentagons, hexagons, and cubes.3.G.1. Understand that shapes in different categories (e.g., rhombuses, rectangles, and others) may share attributes (e.g., having four sides), and that the shared attributes can define a larger category (e.g., quadrilaterals). Recognize rhombuses, rectangles, and squares as examples of quadrilaterals, and draw examples of quadrilaterals that do not belong to any of these subcategories. Lesson Introduction Have students imagine that they are triangles and then ask them several questions. What would be fun? What would be frustrating? If you were a triangle, what would you do and where would you go? Step-by-Step Procedure Create four large pieces of chart paper with the headings â€Å"Triangle,† â€Å"Quadrilateral,† â€Å"Pentagon† and â€Å"Hexagon.† Draw examples of these shapes at the top of the paper, leaving lots of room to record student thoughts.Keep track of student responses in the lesson introduction on the four large pieces of paper. You will continue to add responses to this as you read the story.Read the story The Greedy Triangle to the class. Split the lesson over two days to go through the story gradually.As you read the first section of the book about the Greedy Triangle and how much he likes being a triangle, have students retell sections from the storys include fit into the space near people’s hips and be a piece of pie. Have students list more examples if they can think of any.Continue to read the story and add to the list of student remarks. If you take your time with this book to get lots of student thoughts, you will likely need two days for th e lesson.At the end of the book, discuss with the students why the triangle wanted to be a triangle again. Homework and Evaluation Have students write an answer to this prompt: What shape would you like to be and why? Students should use all of the following vocabulary words to create a sentence: AngleSideShape They should also include two of the following terms: TriangleQuadrilateralPentagonHexagon Example answers include: â€Å"If I were a shape, I would want to be a pentagon because it has more sides and angles than a quadrilateral.† â€Å"A quadrilateral is a shape with four sides and four angles, and a triangle has only three sides and three angles.†

The Greedy Triangle Teaches Kids About Geometry

The Greedy Triangle Teaches Kids About Geometry This sample lesson plan uses the book The Greedy Triangle to teach about the attributes of two-dimensional figures. The plan is designed for second-grade and third-grade students, and it requires a 45-minute period for two  days. The only supplies needed are: The book The Greedy Triangle by Marilyn BurnsSeveral sheets of poster paper The objective of this lesson plan is for  students to learn that shapes are defined by their attributes- specifically the number of sides and angles they have.  The key vocabulary words  in this lesson are  triangle,  square,  pentagon,  hexagon, side and  angle. Common Core Standards Met This lesson plan satisfies the following Common Core standards in the Geometry category and Reason With Shapes and Their Attributes sub-category.   2.G.1. Recognize and draw shapes having specified attributes, such as a given number of angles or a given number of equal faces. Identify triangles, quadrilaterals, pentagons, hexagons, and cubes.3.G.1. Understand that shapes in different categories (e.g., rhombuses, rectangles, and others) may share attributes (e.g., having four sides), and that the shared attributes can define a larger category (e.g., quadrilaterals). Recognize rhombuses, rectangles, and squares as examples of quadrilaterals, and draw examples of quadrilaterals that do not belong to any of these subcategories. Lesson Introduction Have students imagine that they are triangles and then ask them several questions. What would be fun? What would be frustrating? If you were a triangle, what would you do and where would you go? Step-by-Step Procedure Create four large pieces of chart paper with the headings â€Å"Triangle,† â€Å"Quadrilateral,† â€Å"Pentagon† and â€Å"Hexagon.† Draw examples of these shapes at the top of the paper, leaving lots of room to record student thoughts.Keep track of student responses in the lesson introduction on the four large pieces of paper. You will continue to add responses to this as you read the story.Read the story The Greedy Triangle to the class. Split the lesson over two days to go through the story gradually.As you read the first section of the book about the Greedy Triangle and how much he likes being a triangle, have students retell sections from the storys include fit into the space near people’s hips and be a piece of pie. Have students list more examples if they can think of any.Continue to read the story and add to the list of student remarks. If you take your time with this book to get lots of student thoughts, you will likely need two days for th e lesson.At the end of the book, discuss with the students why the triangle wanted to be a triangle again. Homework and Evaluation Have students write an answer to this prompt: What shape would you like to be and why? Students should use all of the following vocabulary words to create a sentence: AngleSideShape They should also include two of the following terms: TriangleQuadrilateralPentagonHexagon Example answers include: â€Å"If I were a shape, I would want to be a pentagon because it has more sides and angles than a quadrilateral.† â€Å"A quadrilateral is a shape with four sides and four angles, and a triangle has only three sides and three angles.†

The Greedy Triangle Teaches Kids About Geometry

The Greedy Triangle Teaches Kids About Geometry This sample lesson plan uses the book The Greedy Triangle to teach about the attributes of two-dimensional figures. The plan is designed for second-grade and third-grade students, and it requires a 45-minute period for two  days. The only supplies needed are: The book The Greedy Triangle by Marilyn BurnsSeveral sheets of poster paper The objective of this lesson plan is for  students to learn that shapes are defined by their attributes- specifically the number of sides and angles they have.  The key vocabulary words  in this lesson are  triangle,  square,  pentagon,  hexagon, side and  angle. Common Core Standards Met This lesson plan satisfies the following Common Core standards in the Geometry category and Reason With Shapes and Their Attributes sub-category.   2.G.1. Recognize and draw shapes having specified attributes, such as a given number of angles or a given number of equal faces. Identify triangles, quadrilaterals, pentagons, hexagons, and cubes.3.G.1. Understand that shapes in different categories (e.g., rhombuses, rectangles, and others) may share attributes (e.g., having four sides), and that the shared attributes can define a larger category (e.g., quadrilaterals). Recognize rhombuses, rectangles, and squares as examples of quadrilaterals, and draw examples of quadrilaterals that do not belong to any of these subcategories. Lesson Introduction Have students imagine that they are triangles and then ask them several questions. What would be fun? What would be frustrating? If you were a triangle, what would you do and where would you go? Step-by-Step Procedure Create four large pieces of chart paper with the headings â€Å"Triangle,† â€Å"Quadrilateral,† â€Å"Pentagon† and â€Å"Hexagon.† Draw examples of these shapes at the top of the paper, leaving lots of room to record student thoughts.Keep track of student responses in the lesson introduction on the four large pieces of paper. You will continue to add responses to this as you read the story.Read the story The Greedy Triangle to the class. Split the lesson over two days to go through the story gradually.As you read the first section of the book about the Greedy Triangle and how much he likes being a triangle, have students retell sections from the storys include fit into the space near people’s hips and be a piece of pie. Have students list more examples if they can think of any.Continue to read the story and add to the list of student remarks. If you take your time with this book to get lots of student thoughts, you will likely need two days for th e lesson.At the end of the book, discuss with the students why the triangle wanted to be a triangle again. Homework and Evaluation Have students write an answer to this prompt: What shape would you like to be and why? Students should use all of the following vocabulary words to create a sentence: AngleSideShape They should also include two of the following terms: TriangleQuadrilateralPentagonHexagon Example answers include: â€Å"If I were a shape, I would want to be a pentagon because it has more sides and angles than a quadrilateral.† â€Å"A quadrilateral is a shape with four sides and four angles, and a triangle has only three sides and three angles.†