, controle, deze demonstratie van hoe de gebruikers veranderen hun - in werking, Delphi.,,,,, in februari 1999, de Top van auteursrecht, auteursrecht, voor je klanten van de Gui, Steve zimmelman,,,,,,, hoeveel keer je om je te redden. Een volledige aanvraag, luister naar je cliënt zei, "Oh, dat is goed, maar ik vind de naam aan de linkerkant, en de status van gebieden moet rood zijn, is niet zwart, en.Zou het niet mooi zijn... ", als je alle gebruikers moet doen is de controle en klik op de muis, een pop - up menu staat ze veranderen van de eigenschappen van de controle?Of als ze CTRL naast elkaar en de overdracht van de controle van de afmetingen of te veranderen of de locatie?,, controle van de gebruikers, de grafische gebruikersinterface is een procedure in twee stappen.Ten eerste, je moet rennen om de controles, kunnen de gebruikers veranderd in rennen, dan moet u een methode voor het behoud en herstel van veranderingen.Meestal is het gebruik van controle, die het grootste DBEdit.Dus dit voorbeeld zal gericht zijn op het creëren van een DBEdit gebruiken op bladzijden in de klik op de muis geactiveerd.Het menu zal de gebruiker te veranderen van kleur, het lettertype, rekening, en de tekst het geval is.Bovendien, CTRL en pijl om de combinatie van positie veranderen van en de controle op de omvang van, respectievelijk,.,,, voordat ik begin, wil ik jullie voorstellen aan een nieuwe tekst van zaak T - eigenschappen: propercase.In de meeste gevallen meestal slechts de omzetting van geschreven met een hoofdletter, en dan zal ik je een brief van de letters.Maar dat is een naam en afkorting van de naam van de ontvangende ziet er een beetje gênant als McDonald 's, O' Hara, Md, enzovoort.Dus, ik probeerde te creëren in een betere muizenval, ben ik ook een passende omstandigheden veranderen, er informatie om deze speciale naam.Ik heb een naam voor strfunc.pas dan bij het gebruik van de ecu, met inbegrip van de vergadering strfunc voorkomend geval veranderen.,,,,, en DBEdit creëren, het eerste wat ik doe, is het creëren van een nieuwe vergadering van de TDBEdit als vader.Ik heet de nieuwe koers tpsidbedit omdat het bedrijf waar ik voor werk naam is PSI, dit is een simpele manier om een onderscheid te maken tussen de componenten.Ik creëerde een nieuwe charcase vormen, met inbegrip van propercase.Het zal voor de dekking van de tcharcase dbedit.Ik veranderde charcase eigenschappen tot een nieuw type, tpsicharcase.Behalve ter dekking van charcase eigendom, en ik de invoering van twee nieuwe eigenschap: allowuserchange en popupchangemenu.Allowuserchange van onroerend goed is een eenvoudige binaire schakelaar, gezamenlijk of afzonderlijk de gebruiker de mogelijkheid van een verandering van de eigenschappen van een onderdeel in werking, en popupchangemenu is een verwijzing naar de gevolgen van het menu, allowuserchange is vastgesteld.De vergadering is in feite veel veranderingen door popupchangemenu doen, maar ik zal het in de toekomst een punt van discussie.Lijst 1 toont psidbedit eenheden.,,,, lijst 1.De eenheid van de psidbedit.,,, eenheid psidbedit;,,,,,, - interface, ramen, SysUtils, controles, de dialoog vormen,,,, dbctrls, menu 's, dB, strfunc;,,,,,, tpsicharcase = (ecnormal, ecuppercase,,,,, eclowercase, ecpropercase); tpsidbedit = (TDBEdit), particuliere fcharcase:tpsicharcase;,,,,,, fischanging: Bull. Fallowuserchange: Bull. Fstartmove: Bull.,,,,,, ftop: de gehele getallen; fleft:;,, fchangemenu: tpopupmenu;,,,,, fpopupsave:tpopupmenu; programma' s setallowuserchange (waarde:,, programma 's setchangemenu booleaanse); (waarde: tpopupmenu);,,,,, setpopupmenu programma setcharcase (VWaarde: tpsicharcase);,, programma settextcase (totaal bcheckstate: booleaanse); bescherming van de,,,,,, het laden van het programma; voor de wijzigingen in de procedures;,,,, programma 's voor;; keydown (VAR wachtwoord;,, veranderen: tshiftstate); voor de programma' S;,, mousedown (knop: verandering tmousebutton; tshiftstate;:,, X, y: gehele);,,,, het programma herschreven; mousemove (overgang van tshiftstate;:,, X, Y, ter dekking van: de gehele);; mouseup (knop, van: tmousebutton; verschuiving:,, tshiftstate; X, y: gehele);,,,., de publicatie van onroerend goed allowuserchange:,,,,, fallowuserchange booleaanse, lezen,Schrijf setallowuserchange;,,, onroerend goed charcase:tpsicharcase, lezen, schrijven, fcharcase, setcharcase;,,, onroerend goed popupchangemenu:tpopupmenu, lezen, schrijven, fchangemenu setchangemenu;,,,,,,, aan het einde van; ik wil er twee onderdeel van de staat: de standaard staat, het zal net zo zijn als de voorouders van de staat en het ontwerp van het mogelijk zal maken, de gebruikers van de aard van de veranderingen in het tijdens de operatie.Booleaanse allowuserchange onderscheid te maken tussen deze twee staten.Als onderdeel van de allowuserchange echt is, in plaats van opslag in popupchangemenu blz. Op de waarde van de eigenschap.Als dit nep is, dan de prestaties van de pagina terug naar zijn vorige ontwerp - verdeling van de tijd.Het is ook mogelijk onderdelen worden verplaatst of aangepast.Ik denk dat het voor de gebruiker kunnen zien dat het verschil tussen de twee landen is erg goed, dus ik veranderde in setallowuserchange cursor crhandpoint (21).,,, de verdeling van de door de setpopupmenu blz. Is veranderd, allowuserchange eigenschappen veranderen.,,, voor de uitwisseling van de aanwijzing van de standaard blz, Is opslag in blz. In de fpopupsave - methode (zie de lijst 2).En dan setpopupmenu methode om te zorgen voor een passende verdeling van de waarde van het menu is gebaseerd op de allowuserchange.,,,, lijst 2.- methode.,,, programma 's tpsidbedit.;,,,,, (csdesigning proberen, als in de componentstate) en uit de;,,, de verdeling van de fpopupsave:= blz. ///////vangen, blz.;,,,, setpopupmenu; en, tot slot, de erfenis geregeld;,,,, aan het einde van zijn gesloten; met de nieuwe tekst; Zaak C - propercase en de opkomst van de nieuwe tpsicharcase,,,,,, ik moet volledig herschreven en opnieuw de verwezenlijking van alle andere componenten van de ontwikkeling van de normen voor de omrekening van de tekst (zie de lijst van 3).,,,, lijst 3.Verandering van aanpak.,,, programma 's tpsidbedit. Veranderingen;,, var, iselstart: gehele getal;,,,,, (csdesigning proberen, als in de componentstate), of fischanging dan verlaten;,, ///////iselstart:= cursor positie om selstart;,,,,, settextcase Een (pseudo); ///////de cursor standpunt van selstart:= iselstart;,,,,,,, tot slot, de erfenis; aan het einde van het,,,,,,,, de tekst van de werkelijke verandering is een beetje lastig.Als je de tekst van de programma 's veranderen wanneer het voorwerp is gericht, en de gegevens niet in de redactie of steek - en dan niet in de montage of opgenomen uitzondering "model".Dus in de wijziging van de tekst van de gegevens van de component. Het land moet worden veranderd.We moeten ook de behandeling van de potentiële gebruikers kunnen voorkomen van conflicten.De parameters voor het beoordelen van de gegevens bcheckstate. Landen moeten in bewerking of veranderingen in het patroon van de tekst wordt ingevoegd vóór.Als dat zo is, dan is deze methode zou ook moeten veranderen.Na zijn alleen als herinnering die variabele is echt slecht.In lijst 4 blijkt dat dit alles in settextcase.,,,, lijst 4.Voor de settextcase.,,, programma 's tpsidbedit. Settextcase (totaal:,, bcheckstate booleaanse);,, var, bpost: Bull. Functie:,,,,,,, en Bull. Bcheckstate, als het niet proberen, dan beginnen, de resultaten: = waar;,,,,, en Ten slotte uit;,, als bron van < > geen) dan beginnen, als het niet (gegevens verzamelen in de [dsedit. Staat, dsinsert]) en het begin van datasource.dataset.active dan beginnen, als,,,,, datasource.dataset.edit; verschil: = waar;,,,,,, aan Het einde van het uiteindelijke resultaat;;: = echt;,,,,,, afgezien van resultaten: = vals;,,,Tot slot, het einde,,,,,,,, ///////als de tekst van de veranderingen en de verzameling van gegevens, niet editstate en uitzonderingen, ////////,,, genereren.Om ervoor te zorgen dat de gegevens in de editstate,, /vóór de wijziging van de tekst van fischanging:=.,,,,,, waar verschil: = valse;,, als je begint, de situatie charcase,, ecnormal:{doen};,, ecuppercase: de tekst: = hoofdletters (tekst);,, eclowercase:: = kleine (tekst van de tekst de tekst van ecpropercase);,,:: = passende (tekst);,,,,, aan het einde van datasource.dataset.post als België; dan;,,, (er is een messagedlg eindigen, kunnen de gebruikers door gebruik te maken van de "+" dossier ".+ 13 + 13 + #," textcase kan veranderen, niet "+, het record, zichtbaar.",,, mtwarning mbok], [0); en, ten slotte,,,Fischanging:= valse;,,,,,,, aan het einde van het,,,, charcase eigendom uitvoering setcharcase methode veranderen (zie de lijst van 5), die op hun beurt voor de uitvoering van settextcase,.,,,, lijst 5.Voor de setcharcase.,,, programma 's tpsidbedit. Setcharcase (waarde: tpsicharcase);,,,, als fcharcase < > waarde dan beginnen, waarde, fcharcase:=;,, settextcase (echt);,,,,,,, aan het einde van het;; om de controle uitoefenen, ongeacht de keydown methode (zie de lijst van 6).Door bewegende onderdelen en sortering van Delphi ide sleutels, ik... Arrowkeys door beweging en de overdracht van arrowkeys lijmen.Op deze sleutels kunnen veranderen, de omvang van de controle of het standpunt van een pixel.Keydown methoden, procedures tpsidbedit.,,. Keydown (VAR wachtwoord;,, veranderen: tshiftstate);,,,, als belangrijkste in [vk_up, vk_down, vk_left, vk_right]), en allowuserchange dan beginnen, als (SHIFT = [ssctrl]) en begon te veranderen,. ///////de positie van de belangrijkste zaak,,,, vk_up:: = de hoogste top, top, vk_down: 1;: = + 1;,, vk_left:: = links, links, links vk_right 1;:: = links + 1;,,,, aan het einde van; als (SHIFT = [ssshift]) en het begin van,, de verandering van de omvang van de belangrijkste zaak /,,, vk_up: hoogte: = 1;,, vk_down: hoogte: + 1 = lengte, breedte = vk_left:,, 1. Breedte;,Vk_right: breedte = breedte van + 1;,,,,,, aan het einde van het einde van de belangrijkste;;: = 0;,, de andere aan het begin en einde van de erfenis keydown (sleutel, dienst);,,,,,,, aan het einde van het,,, en ik hoop dat ook de gebruikers kunnen deel uitmaken van die muis, ondanks de methode met mijn mousedown, mouseup, en mousemove.,,, tot nu, heb je al een DBEdit kan de gebruiker het veranderen van de positie en de omvang van, maar er is geen andere.Het lettertype, de kleur, de rekening, 3D - effect, en de grens van de vergadering zal de voltooiing van changemenu bovendien.,,, dit deel van de basis is van de eenheid in typinfo.pas gevonden, je kan de toegang tot een object rtti (looptijd van het type informatie).Typinfo.pas, met inbegrip van de functionele en procedures kunnen worden verkregen of tijdens de uitvoering van het verzoek wordt een object van de waarde van het onroerend goed.Tijdens de looptijd van het object is of de waarde van de eigenschap van een eenvoudige methode kan de lijst van de in lijst 7 7 zoals dat.En als die in de werking van een van de eigenschappen van de materialen, de functie van getProperty (.,, tcomponent afzender:,,; spropname: string): varianten, var, propinfo:ppropinfo;,,,, /uit de categorie informatie verkregen goederen, propinfo:= getpropinfo (de afzender. Classinfo,,,,, spropname); het bestaan van eigendom, niet?,, als (propinfo < > geen) en het begin van de situatie propinfo ^. ^ een prototype. Tkenumeration tkinteger:,,,,,,, de resultaten: = getordprop (afzender, propinfo),,,,,, aan het einde van tkstring; tklstring, tkwstring:,,,, de resultaten van getstrprop: = (de afzender, propinfo),,,,,, aan het einde van het einde;; als resultaat: = nul;,,,,,,, het einde van de procedure; setProperty (afzender: tcomponent; spropname: touw,,,,,,, waarde: variant), var, propinfo:ppropinfo;,,,, /uit de informatie van de klasse, eigendom, propinfo:= getpropinfo (de afzender. Classinfo,,,,,, spropname); ///////Eigendom?,, als (propinfo < > geen) en het begin van het prototype, de situatie propinfo ^ ^.,,,.,, tkenumeration, tkinteger: begin, setordprop (afzender, propinfo, waarde);,,,,,, aan het einde van tkstring; tklstring, tkwstring:,,,, setstrprop (afzender. Propinfo, waarde);,,,,, aan het einde van het einde van het;;;;,,,,,,,, het gebruik van twee methoden lijkt deze:,,,, setProperty (dbedit1,'ctl3d, valse);,,, dbedit2.ctrl3d:= getProperty (dbedit1.'ctl3d ");,,, natuurlijk, dit voorbeeld, kan de vereenvoudigde procedure is overdreven, maar als je niet weet dat deze vergadering de naam is heel handig, zelfs het klasse.,,, de drie belangrijkste methode changemenu - gEtproperty () (), setproperty, en isproperty () - eenheid is in dit deel van propfunc.pas bibliotheek.Isproperty () is een functie van het voorwerp van de controles in de boer, de aangegeven goederen bestaan, als de waarde van onroerend goed terug waar.Het kan zijn dat:,,,, als isproperty (1. De bestanddelen van [het],'ctl3d ") en onderdelen [I]. Ctl3d:= valse;,,,, tchangemenu is een klasse twee extra eigenschap: het lettertype dialoog en dialoog voor het veranderen van kleur, tpopupmenu is onderdeel van het type en de kleur van de kan wijzen op een van die soort, van de werkingssfeer van de in de vergadering.Onmenupopup menuclick en voor het grootste deel van het werk, toegewezen aan de onclick en menu 's onpopup tot een onderdeel van de gebeurtenissen.Dit alles gebeurt, natuurlijk, in changemenu eenheid (zie de lijst van 8).,,,, lijst 8.De eenheid van de changemenu.,,, eenheid changemenu;,,,,,, - interface, ramen, nieuws, SysUtils, klasse, grafische vorm van controle, en de dialoog,,,,,, comctrls, menu 's, stdctrls, dbctrls, dB, extctrls;,,,,, tchangemenu = (tpopupmenu), particuliere de particuliere} {pm_font:tmenuitem,,,,,,,, pm_bgcolor:tmenuitem; pm_taborder:tmenuitem;,,,, pm_ctrl3d:tmenuitem; pm_borderstyle:tmenuitem;,,,, pm_columns:tmenuitem; pm_caption:tmenuitem;,,,, pm_divider1:tmenuitem; pm_uppercase:tmenuitem;,,,, pm_lowercase:tmenuitem; pm_mixedcase:tmenuitem;,,,,, pm_propercase:tmenuitem; pm_height:tmenuitem, pm_width:TM;Enuitem;,,,, pm_style:tmenuitem; ffontdialog:tfontdialog;,,,,, fcolordialog:tcolordialog; programma 's setcolordialog (waarde: tcolordialog);,, programma setfontdialog (waarde: tfontdialog);,, programma menuclick (afzender: TObject);,, programma onmenupopup (afzender: TObject);,,, bescherming, bescherming van De verklaring, {} {publieke verklaringen, openheid,,),, programma -; voor de verschrikkelijke schade dekken;,,,,,, (aowner:tcomponent); voor de fabrikant om een verklaring te publiceren;,,,,, tfontdialog eigenschap: {}, FontDialog, ffontdialog, lezen, schrijven, setfontdialog;,,, de kleur van de dialoog. Tcolordialog, fcolor, gelezen:Dialoog, schrijf setcolordialog;,,,,,, het einde van de procedure; de registratie;,,,,, de uitvoering van het propfunc col_edit;,,,,,,, omdat dit menu is uitsluitend het gebruik van de menu 's, slechts in werking zijn opgezet, en niet bij het ontwerpen van De tijd.In het kader van het menu te creëren, de methode menuclick () voor elk van de menu 's onclick gebeurtenissen.Het menu is weergegeven in figuur 1.,,, - methode (zie de lijst van 9) aanwijzing van de voor de vergadering onpopup vangen, dan zal onpopup gebeurtenis voor onmenupoup ().Dit is de onpopup projectontwikkelaars in onmenupopup methoden voor de uitvoering van hun menu 's verwerkt.,,,, lijst van 9.- methode.,,, programma 's tchangemenu.;,,,,, probeer, de aanwijzing van de onpopup. ///////- methode, fotheronpopup:= onpopup;,, ///////onpopup onpopup:= aangewezen methode, onmenupopup; en, ten slotte,,,,,, Aan het einde van de erfenis; en, ten slotte,;; wanneer de gebruiker - klik op de muis in de vergadering,,,,,, de uitvoering van onmenupopup methode (zie de lijst van 10) en het starten van de menu' s popupcomponent goederen op basis van het menu.Popupcomponent is een object is verantwoordelijk voor de activering van de menu 's en tcomponent type.Kennisgeving aan de isproperty menu van materiële goederen worden gebruikt.,,,, de lijst van tien.Voor de onmenupopup.,,, programma 's tchangemenu. Onmenupopup (afzender:,, ///////TObject); - op basis van de menu' s /die vergadering,, type en aard van de beste, var.,: Bull.,,,, dat projecten als het lettertype /lettertype,, ///////dialoog is nul of het lettertype,, //eigenschap bestaat niet op te richten, //- pm_font.visible:=.,,,, (niet FontDialog = nul)), en isproperty (popupcomponent,'font ");,,, /niet dat projecten als de kleur van De kleur van de dialoog, het eigendom is van nul of kleur, /eigenschappen, niet in. Die vergadering /bestaan.,,, niet pm_bgcolor.visible:=, (ColorDialog = nul), en isproperty (popupcomponent" kleur ");,,, ///////- uitzending van geselecteerde menu.Als isproperty (popupcomponent,,, "de stijl van de) en het begin van pm_borderstyle.checked:=,,,, (getProperty (popupcomponent,,," grens ") = bssingle); pm_borderstyle.visible:= waar;,,,, eindelijk iemand begint, pm_borderstyle.visible:= valse;,,,,, als isproperty (aan het einde van popupcomponent,'ctl3d;") en het begin van pm_ctrl3d.checked:=,,,, getProperty (popupcomponent,'ctl3d "); pm_ctrl3d.visible:= waar;,,,, eindelijk iemand begint, pm_ctrl3d.visible:= valse;,,,,,, /is. Als de bestaande onderdelen van taborder eigendom,,, //menu 's" rekening pm_taborder zichtbaar ".,,. = = = = = = isproperty (popupcomponent:,,,,,,'taborder"); ///////, als in de kolom van de eigenschappen van deIn de vergadering, /, de samenstelling van TlistView,,, /menu 's,.,, als (popupcomponent is dan TlistView), pm_columns.visible:=,, (isproperty (popupcomponent, kolom "),,, (TlistView (popupcomponent). Columns.count > 0)), en de andere, pm_columns.visible:= valse;,,,,, je moet een idee /...,,, pm_caption.visible:=, isproperty (popupcomponent,'caption");,,, ////////charcase, als die vergadering, allowuser eigenschappen veranderen, en dan,, //- menu' s.,, als (isproperty (popupcomponent,'charcase "), en isproperty (popupcomponent,,," allowuserchange ")) en het begin van de beste:,,,,, = waar;///////charcase project niet zien als,, /gegevens vormen geen touw, als isproperty (popupcomponent.,,,, "bron van gegevens") en dan beginnen, als (popupcomponent is TDBEdit) en het begin van een,, TDBEdit (popupcomponent) begint, als (datafield < > "") en dan beginnen. En als het niet (field.datatype =,, ftstring) en het begin van de beste: = vals;,,,,, een einde aan de andere, de beste;: = vals;,,,, aan het einde van het einde,;;;,,,, pm_uppercase.visible:= pm_lowercase.visible:, =, de beste, de beste,,, pm_mixedcase.visible:= pm_propercase.visible:, =, de beste, de beste,,,Pm_divider1.visible:= beste;,,, ///////charcase radio - project gestart.,, getProperty (popupcomponent,'charcase zaak "), ecnormal. ///////0:pm_mixedcase.checked:= waar;,,,,, /ecuppercase, 1:pm_uppercase.checked:= waar;,, /eclowercase 2:pm_lowercase.checked:= waar;,,,, /ecpropercase 3:pm_propercase.checked:= waar;,,,,,, aan het einde van de andere; aan het einde van pm_uppercase.visible:= valse;,,,,,, pm_lowercase.visible:= valse; pm_mixedcase.visible:= valse;,,,, pm_propercase.visible:= valse; pm_divider1.visible:= valse;,, aan het einde van pm_width.visible:= (popupcomponent;,,,,, is tbevel pm_height.visible:= (popupcomp);De tegenstander is tbevel);,, pm_style.visible:= (popupcomponent is tbevel);,,, als pm_style.visible dan beginnen, als getProperty (popupcomponent,'style ") = 0, dan pm_style.caption:=" - ", anders pm_style.caption: =" hellend vlak, verminderen; aan het einde van,,,,, de uitvoering van de onderdelen van De onpopup ///////als de toewijzing van gebeurtenissen.,, (fotheronpopup) en, fotheronpopup (afzender); aan het einde van,,,,,,,, de selectie van de projecten als de methode (zie de lijst van 11) setproperty () wordt gebruikt voor de wijziging van de Waarde van het voorwerp.,,,, lijst van 11.Voor de menuclick.,,,, programma 's tchangemenu. Menuclick (afzender:,, TObject); //////////////, met de nadruk op de vergadering van de procedures voor de selectie van de menu' s,,,,,, - var: touw; mijn vraag: gehele getal;,, b: Bull.,,,,, als (tmenuitem (de afzender) = pm_ctrl3d) en het begin van het proces,, ///////- ///////- keuze als de,, en borderstyle moet veranderen,, ///////.,, b = niet booleaanse (getProperty (popupcomponent,,, "ctl3d"); popupcomponent setProperty (,,,,'ctl3d ", of (b));,,, als B (getProperty (popupcomponent,,," grens ") = bsnone) en popupcomponent, setProperty (,,,"De stijl, bssingle);,,, tot slot als (tmenuitem (afzender) =,, pm_borderstyle) en het begin van het proces,, ///////borderstyle, als (getProperty (popupcomponent,,," grens ") = bssingle) en het begin van setProperty (popupcomponent,,,,, de stijl van de grens, bsnone) en, als de stijl, //////////////zonder, dan omgezet in 3D.,, setProperty (popupcomponent,'ctl3d, valse); - andere setProperty (,,,,, popupcomponent, de grens voor de,,,, bssingle); ten slotte als (tmenuitem (afzender) =,, pm_taborder) en dan begon,, /, taborder: = IntToStr (getProperty (popupcomponeNT,,, "taborder");,,,, inputbox: = (laat de rekening ",,," in de etikettering, in de volgorde van de vragen, zal); en: = strtoint (zal);,, setProperty (popupcomponent,'taborder "), met uitzondering van de,,,, met uitzondering van. ('tab orde moet scheppen," +, de gehele getal ");,,,, aan het einde van; als (tmenuitem (afzender) = pm_font) en het begin van het proces van selectie, /lettertype, als (FontDialog < > geen) en het begin van fontdialog.font.name:=,,,, getProperty (popupcomponent naam,'font."); fontdialog.font.size:= getProperty (,,,, popupcomponent,'font. De omvang van fontdialog.font.color:,, ");= = = = = = getProperty (popupcomponent,,,,,'font. Kleur); fontdialog.font.style:= tfontstyles (tfontstyle (,,,, getProperty (popupcomponent,'font. Stijl)));,,, als lettertype dialoog, dan begint de uitvoering popupcomponent setProperty (,,,,,,'font. De naam "lettertype, dialoog, lettertype.) (popupcomponent vastgesteld;,,,'font. Maat", de dialoog, het lettertype, lettertype, de omvang, de setProperty (); en popupcomponent,'font. Kleur ",,, lettertype, dialoog, lettertype, de kleur, de popupcomponent setProperty ();'font stijl",,,,, Ord. (tfontstyle (letters, dialoog, lettertype))). De stijl;,,, de hoogte. //////////////-,,,,Ik getProperty: = (popupcomponent,,, "lettertype. De hoogte van setProperty (popupcomponent);,,,,," het lettertype, lengte, I + (5)); setProperty (popupcomponent,,,,, "het lettertype, lengte, I);,,,,, aan het einde van Het einde van de laatste, als (;; tmenuitem (afzender) =,, pm_bgcolor) en het begin van het proces,, ///////de kleur als de kleur van de dialoog, < > nul beginnen, de kleur, de dialoog, de getProperty. Kleur: = (popupcomponent" kleur "); en, als kleur dialoog, en dan beginnen met de uitvoering van setProperty (popupcomponent,,," kleuren ",,, kleur dialoog. In kleur);,,,,,, aan het einde van het einde als;; (tmenuitem (afzender) =...,Pm_caption) en het begin van het proces,, /, titel: = getProperty (popupcomponent,'caption ");,,: = inputbox (titel", in de titel,,,,, (zal); vaststelling van popupcomponent,'caption "); en ten slotte als, tmenuitem (afzender) = (,, pm_columns) en het begin van het proces,, ///////TlistView opgenomen.Dat doen, met de vorm, ///////.,, de toepassing van het creëren van een vorm van F. Sbjbcx. (tfrmeditcolumns,,,,, frmeditcolumns); het frmeditcolumns.colobject:=, TlistView (,,,,,,, popupcomponent); frmeditcolumns.showmodal; en, tot slot, frmeditcolumns. Vrijheid,,,,, ten einde als (tmenuitem (afzender); = pm_width) en het begin van de breedte van de,, ///////- proces, zal tbevel: = IntToStr (getProperty (popupcomponent,,,,,, de breedte)); en (让宽: = inputbox van,,, "input" breedte);,, titel: = strtoint (zal); en, setProperty (popupcomponent,'width "); voor de,,Het concept van de uitzondering. Het creëren van ('width moeten +,, de gehele getal ");,,,,, einde; anders als (tmenuitem (afzender) = pm_height) en het begin van het proces, en de hoogte van de ///////, zal tbevel: = IntToStr (getProperty (popupcomponent, en een hoge mate van");,,,, inputbox (om een hoog: = "," in de hoogte,,,,,,,): = strtoint (zal);,, setProperty (popupcomponent,'height "); verbetering van de anomalie, naast de,,. Het creëren van ('height moeten +,, de gehele getal"); en,,,, einde; anders als (tmenuitem (afzender) = pm_style) en het begin van het proces,, ///////- fOf tbevel,, //verhoogd of verlaagd, als getProperty (popupcomponent,'style ") = 0, dan setProperty (popupcomponent,'style", 1), en van andere, setProperty (popupcomponent,'style "0), en andere, dat het begin van het einde, tmenuitem (afzender). Controle: =,, niet tmenuitem (afzender). Onderzoek, als pm_mixedcase.checked; dan kunnen beginnen,, ///////normaal, setProperty (popupcomponent,'charcase" 0);,, als pm_uppercase.checked dan dat het begin van het einde, ///////charcase:= ecuppercase;,, setProperty (popupcomponent,'charcase ", 1), en, als pm_lowercase.checked; aan het begin en einde van ///////charcase:=, net als eclowercase;,, setProperty (popupcomponent,'charcase", 2); aan het einde van de pm_propercase.che, als hij.Dan beginnen we /charcase:= ecpropercase;,, setProperty (popupcomponent,'charcase ", 3);,,,,, aan het einde van het einde;;;,,,,,, tchangemenu in feite kan worden gebruikt voor bijna een standaard onderdeel van de kenmerken van de steun, geen.Het in titel en breedte zelfs steun van TlistView.,,,,,, het creëren van een vergadering, waardoor de gebruiker te veranderen van de grootte en de locatie, lettertype, de kleur, wacht.Maar niet de capaciteit, het is niet erg behulpzaam, dus het behoud en herstel van de eigenschappen veranderen.Wil je niet dat je elke keer dat je de gebruikers die van toepassing zijn op de aanvragen moet weer, hè?De volgende stap is het creëren van een vergadering met het behoud en herstel van de aangewezen ontwikkelaar van de soort en de eigenschappen, de capaciteit van tcomponentstates.,,,,,, het redden van een onderdeel van de waarden van de attributen van onderdelen, ik wil alleen maar het behoud van de waarde van het flexibel genoeg, De projectontwikkelaar wil.De waarden moeten worden opgeslagen op een plaats, het gemak en de mobiele.Ik wil ook dat door meerdere gebruikers of de toegang tot de werkplek van de waarde.Om deze redenen heb ik besloten een ini documenten niet in het register opgeslagen waarden, ook tchangemenu tcomponentstates.,, en door de toegang tot de procedures in het propfunc.pas behoud en herstel van de eigenschappen van de componenten in werking.In dit deel zijn er drie de methode van de blootstelling: behoud, herstel, en de vaststelling van de eigenschappen.Ik denk dat de tweede is duidelijk.Methode voor de setProperties voor dezelfde categorie vormen van alle voorwerpen die de specifieke eigenschappen.Bijvoorbeeld, als ik dat wil veranderen TDBEdit tegen alle form1 Ariel code 12, ziet er als volgt uit:,,,, componentstates1. De eigenschap (1,'tdbedit ",,," lettertype. Naam,'arial "); componentstates1 eigendom (,,. 1,'tdbedit", "de lettergrootte,",,,,,,, 12); de voltooiing van de dagelijkse eigenlijk niet al te ingewikkeld is.Het gebruik van in de propfunc.pas setProperty methoden, zoals eerder besproken.Het draait door aan alle vormen van onderdelen en de inspectie van de klasse.Als de namen die, wanneer het de uitvoering van setproperty (), verandering van de eigenschappen van onderdelen (zie de lijst van 12).,,,, nummer 12.Voor de vaststelling van de eigenschappen daarvan, de procedure tcomponentstates.,,. De eigenschap (,, totaal 16: platform,; een totaal sclassname: touw, touw, constante spropertyname:;,,; totaal: variatie van de waarde); //////////////,,,, ************************ ****************************, alle onderdelen van de goederen op een vorm van 16,, ///////component.classname = sclassname en waarde.,, /****************************************************,,, var ik: gehele getal;,,,., om te beginnen, ik: = 0 (componentcount-1), als onderdeel van De [I]. Classnameis (sclassname) dan setProperty (samenstelling,,, [I], spropertyname,,,Waarde);,,,,,, aan het einde van het einde;;; /16, een einde te maken aan de;,,,,, in deze vergadering, de meest essentiële eigenschap is classestosave.Dit is een tstrings type bevat voor ini lijst - en eigendom.Bijvoorbeeld, het behoud van alle noodzakelijke informatie, in de vorm en de inhoud van elke tpsidbedit classestosave ziet er als volgt uit:,,,, tpsidbedit. Links, tpsidbedit. De top, tpsidbedit. Hoogte, breedte, tpsidbedit.,,, tpsidbedit. Taborder, tpsidbedit. Het lettertype naam,, tpsidbedit.. De lettergrootte, lettertype, tpsidbedit.,,, tpsidbedit. Lettertype, de kleur, de, tpsidbedit. Kleur, tpsidbedit. Ctl3d,, tpsidbedit. Borderstyle,, tpsidbedit. Charcase,,,,, als voor het behoud van de uitvoering, de INI
Voor je klanten -
Previous:Programmering /(preventief) in