hvordan de opbevarer indholdet af en richedit i en emf - filer

,, at opbevare indholdet af en richedit i en emf - filer, nogle gange, du måske ønsker at opbevare indholdet af en rig edit kontrol i et metafile.denne artikel beskriver en metode, der oplagrer denne form for kontrol er indholdet i et forstærket metafiles, den ene side pr. metafile.følgende kode viser en metode til at smide indholdet af en rig edit kontrol i emf filer (én pr. side):,, enhed richeditemfprint; interface, anvendelse,   vinduer, sysutils, richedit, commdlg, klasser, beskeder, comctrls;, procedure richedittometafile (acontrol: trichedit; afilename: string), gennemførelse //getprinterdc(), //afkast af en printer dc - bruger printeren fælles dialog, funktion getprinterdc: hdc;, var,   pdlg: tprintdlg; begynder,   fillchar (pdlg, 7 (tprintdlg) 0),   pdlg.lstructsize: = 7 (tprintdlg),   pdlg. flag: = pd_returndc og,   printdlg (pdlg),   resultat: = pdlg. hdc;,; //- længde, med bogstaver, i teksten i den kontrol, funktion getrtftextlength (hwndrtf: hwnd heltal, b):egin,   resultat: = sendmessage (hwndrtf, wm_gettextlength, 0, 0);,; //rtftoemf - kontrol at gøre sig om emf, //parametre: //     hrefdc anvendes til at skabe emf, //     pszmetafilename er filen navn på den nye emf (kan være 0) //     prcmeta er korrekte, der anvendes i createenhmetafile(), i 0.01mm, //          enheder (må ikke være lig nul) //     hwndrtf er kontrol af interesse, //     nstart er begyndt karakter sted, //     rejser spørgsmålet er et heltal, som modtager den stilling. ////////          næste karakter til at trykke efter denne side, funktion rtftoemf (hrefdc: hdc; pszmetafilename: lpctstr;   prcmeta: trect;,                       hwndrtf:hwnd; nstart: heltal var rejser spørgsmålet: hele tal): henhmetafile;, var,   hmetadc: hdc;,   fr: formatrange;,   ntextprinted: heltal, begynder,     //skaber elektromagnetiske felter,     hmetadc: = createenhmetafile (hrefdc, pszmetafilename, @ prcmeta, nul),     hvis (hmetadc = 0),      begynder,         resultat: = 0,         udpassage,     ;,     zeromemory (@ fr, 7 (fr),     //oprettet side (konvertere 0.01mm til twips),     fr.rcpage. top       : = prcmeta. venstre * 1440 div. 1141;,,     fr.rcpage. tilbage      : = prcmeta. top * 1440 div. 2540;,     fr.rcpage. lige     : = prcmeta. * 1440 div. 2540;,     fr.rcpage. bunden    : = prcmeta. bunden * 1440 div. 2540;,     //oprette ingen margener omkring.     fr.rc: = fr.rcpage;,     //oprettet mellem tekst til at trykke som nstart til slutningen af dokument,     fr.chrg.cpmin: = nstart;,     fr.chrg.cpmax: = - 1,     fr.hdctarget: = hmetadc;,     fr.hdc: = fr.hdctarget;,     //- kontrol at gøre sig på vores (12) dc,     ntextprinted: = sendmessage (hwndrtf, em_formatrange, 1, heltal (@ (fr)),     rejser spørgsmålet: = ntextprinted;,     resultat: =   closeenhmetafile (hmetadc);,; //dumprtftopagedemfs - viser ved hjælp af rtftoemf() at skabe en emf, //                      for hver side i et rte i irland og rtp i portugal kontrol //parametre: //     hwndrtfcontrol - kontrol, //     szemffiletitlebase - base filnavn foremf filer, nummer er vedlagt, procedure dumprtftopagedemfs (hwndrtfcontrol: hwnd; szemffiletitlebase: lptstr), var,   szmetaname: string;,   nrtftextlength, nstart, npage: heltal,   hrefdc: hdc;,   rcmeta: trect;,   hemf:    henhmetafile; begynder,     //først. afgøre, hvor mange tegn er i rte i irland og rtp i portugal,     nrtftextlength: = getrtftextlength (hwndrtfcontrol),     //få en henvisning dc (baseret på en printer),     hrefdc: = getprinterdc();,     //oprettet meta - direkte til 0.01mm enheder,     rcmeta: = klasser. direkte (0, 0 getdevicecaps (hrefdc, horzsize) * 100,                             getdevicecaps (hrefdc, vertsize) * 100),     npage: = 0,     nstart: = 0,    , mens nstart &det nrtftextlength,     //loop, mens vi har ikke nået slutningen af teksten i den kontrol,     begynder,         //konstruere en fil navn til denne side,         szmetaname: = format (% s% d.emf, [szemffiletitlebase, npage]),         //kalder funktion over at trække denne del af rte i irland og rtp i portugal om elektromagnetiske felter,         hemf: = rtftoemf (hrefdc, pchar (szmetaname), rcmeta, hwndrtfcontrol,,                          nstart, nstart),         //rydde op,         deleteenhmetafile (hemf),         inc (npage),        , hvis nstart = 0,          pause,    ;,;, procedure richedittometafile (acontrol: trichedit; afilename: string), begynder,    dumprtftopagedemfs (acontrol.handle, pchar (afilename),,,.,,



Previous:
Next Page: