, koden nedenfor, er for en komponent, der kan skabe en gennemsigtig (formet) formularer, koden nedenfor, er for en komponent, der kan skabe en gennemsigtig (formet) udgør enten ved hjælp af bitmaps eller kontrol, eller begge dele.der er to måder at komponenten, hvad du vil, der anvendes som en maske: tag om (transtag) eller en komponent liste, hvor du bare indsæt komponent navn som en ny linje i teksten, er der endnu et tilfælde at følge udviklingen i denne proces, da det er lang tid, til. billeder, der er en maske farve ejendom, det er den farve, der er gennemsigtigt,.,, anvende de henrette metode at gøre klar form.da der ikke er mange billeder, processen er ganske hurtigt, og du kan bruge det til at skabe endnu animation virkninger på deres skrivebord.,,, note: oprettelsen af masken fra billeder de del tager hensyn til timage komponent.,,, enhed transmake,,,,,,,,, bruger grænseflade,,, vinduer, beskeder, sysutils, klasser, grafik, kontrol, formularer, dialoger, extctrls,,,,,,,,, tprocessevent = procedure (fremskridt: longint) af objekt,,, tby = (tbtag, tbcomponentlist);,, ttransmake = klasse (tcomponent), private, (private erklæringer},, itranstag: heltal,, imagetrans: boolean,,, colormask: tcolor;,, region: hrgn;,, transbyv: tby;,, componentlistv: tstrings;,, fullitems: longint;,, fonprogress: tprocessevent;, procedure drawtransparent;,, procedure componentlistwrite (værdi: tstrings);,, procedure settransby (værdi: tby), beskyttet (beskyttede erklæringer), procedure doonprogress (fremskridt: longint); dynamik, offentlig, (publc erklæringer), procedure henrette;,, konstruktøren skabe (aowner - tcomponent); gearvalg;,, der er offentliggjort, (offentliggjort erklæringer), ejendom transtag: hele læs itranstag skrive itranstag;,, ejendom imageregion: boolean læse imagetrans skrive imagetrans;,, ejendom maskcolor: tcolor læse colormask skrive colormask;,, ejendom transby: tby læse transbyv skrive settransby misligholdelse tbtag;,, ejendom componentlist: tstrings læse componentlistv skrive componentlistwrite;, pro -om: læse, skrive tprocessevent ejendom fonprogress fonprogress,,,,,,,,,, gennemførelse af proceduren register, procedure ttransmake. doonprogress (fremskridt: longint), begynder, hvis tildelt (fonprogress) så, tprocessevent (fonprogress) (progress);,,,,,,,,, procedure ttransmake. settransby (værdi: tby), begynder, transbyv: = værdi,,,,,,, procedure ttransmake. componentlistwrite (værdi: tstrings), begynder, componentlistv. tildele (værdi);,,,,,,,,, konstruktøren ttransmake. skabe (aowner: tcomponent), begynder, har skabt (aowner);,, componentlistv: = tstringlist. skabe;,, componentlistv. der tilsættes ('place din del navne. "), fullitems: = 0,,,,,,, procedure ttransmake. drawtransparent;,, var, oform: tform,,, i, o,x,y,rx,ry:integer;,, tr:Trect;,, tregion,imgregion:Hrgn;,, proceed:boolean;,, TempBitmap: TBitmap;,, Rgn1, Rgn2: HRgn;,, Col, StartCol, Row,test: integer;,, Line: PByteArray;,, doing,perc:integer;,, begin,, OForm:=TForm(owner);,, region:=0;,, imgregion:=0;,, rgn1:=0;,, fullitems:=0;,, doing:=0;,, perc:=0;,, region:=createRectRgn(0,0,0,0);,, rgn1:=createRectRgn(0,0,0,0);,, OForm.visible:=false;,, OForm.BorderStyle:=bsNone;,, for i:=0 to OForm.ComponentCount-1 do,, begin,, if TransBy=TBTag then,, if (OForm.Components[i]).tag=TransTag then,, begin,, proceed:=true;,, fullitems:=fullitems+1;,, end;,, if TransBy=TBComponentList then, begynder, hvis componentlistv. tæl > 0, så, o = 0 componentlistv.count-1, begynder, hvis (store ((oform. komponenter [i]). navn) = store (componentlistv. strenge [o]), begynder, fullitems: = fullitems + 1,,,,,,,,,,,,,,, jeg: = 0 til oform.componentcount-1, begynder, fortsætter: = falske, hvis transby = tbtag, hvis (oform. komponenter [i]). tag = transtag, begynder, fortsætter: = sandt,,,,,,, hvis transby = tbcomponentlist så begynde, hvis componentlistv. tæl > 0, så, o = 0 componentlistv.count-1, begynder, hvis (store ((oform. komponenter [i]). navn) = store (componentlistv. strenge [o]), begynder, fortsætter: = sandt,,,,,,,,,,,,, hvis videre, så,,, begynde, hvis tcontrol (oform. komponenter [i]). synlig, så begynder, hvis (oform. komponenter [i] er timage) og imageregion så, begynder med timage (oform. komponenter [i]). picture.bitmap, begynder, for række: = 0 timage (oform. komponenter [i]). picture.bitmap.height-1, begynder.kol: = 0, mens kol < timage (oform. komponenter [i]). picture.bitmap.width, begynder, mens (kol < timage (oform. komponenter [i]). billede. bitmap. bredde) og (lærred. pixel [kol, række] = colormask) gøre inc (kol), hvis kol > = timage (oform. komponenter [i]). picture.bitmap.width fortsætte;,, startcol: = kol;,, mens (kol < timage (oform. komponenter [i]). billede. bitmap. bredde) og (lærred. pixels [kol, række] < > colormask) inc (kol), hvis kol > = timage (oform. komponenter [i]). picture.bitmap.width så kol: = timage (oform. komponenter [i]). billede. bitmap. bredde;,,,hvis rgn1 = 0, så rgn1: = createrectrgn (timage (oform. komponenter [i]). venstre + startcol, timage (oform. komponenter [i]). top + ro, timage (oform. komponenter [i]). venstre + kol, timage (oform. komponenter [i]). top. række + 1), ellers begynder, rgn2: = createrectrgn (timage (oform. komponenter [i]). venstre + startcol, timage (oform. komponenter [i]). top + ro, timage (oform. komponenter [i]). venstre + kol, timage (oform komponenter [jeg.]). top + række + 1), hvis (rgn2 < > 0), så combinergn (rgn1, rgn1, rgn2, rgn_or);,, deleteobject (rgn2);,,,,,,,,,,,,,, det: =? + 1,,,perc: = rund (100 * (her /fullitems), doonprogress (perc);,, combinergn (region, regionen, rgn1, rgn_or);,, rgn1: = 0,,,,,,, begynder, tr: = tcontrol (oform. komponenter [i]). boundsrect;,, tr.left: = tr.left;,, tr top: = tr.top;,,.: = tr.right;,,. nederst: = tr.bottom;,, hvis region = 0, region: = createrectrgn (tr.left, tr.top, tr.right, tr.bottom), ellers begynder,,, tregion: = createrectrgn (tr.left, tr.top, tr.right, tr.bottom), det:= det + 1, perc: = rund (100 * (her /fullitems), doonprogress (perc);,, combinergn (region, regionen, tregion, rgn_or);,, deleteobject (tregion);,,,,,,,,,,,,,,,,, setwindowrgn (oform. klare, region, sande);,, oform. synlige: = sandt,,,,,,, procedure ttransmake. udføre;,, begynder, drawtransparent,,,,,,, procedure register, begynder, registercomponents ('vnpvcls "[ttransmake]);,,,,,,,,,.,