,, 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),,,.,,
hvordan de opbevarer indholdet af en richedit i en emf - filer
Previous:asp.net miste din pund tegn?