Schriftelijk

, deel 3, een deel voor deel, het laatste deel.Dit laatste deel omvat de goederen /vergadering redacteur, hoe de voorbereiding van de speciale uitgave voor uw Vergadering /eigenschappen, en hoe schrijf "verborgen" vergadering. Dit artikel verscheen in de ontwikkeling van het personeel, de Top Publishing Co., Ltd, alle rechten voorbehouden.De redacteur, speciaal onderdeel, zodra we beginnen als we het opstellen van de onderdelen van de eigenschappen van geavanceerde type, zal het leven ingewikkelder geworden.Hoewel het doel van een inspecteur in de aard van de goederen kunnen worden geïdentificeerd, is het niet waarschijnlijk dat het niet mogelijk is, is het mogelijk om een speciaal type, we schrijven in onze vergadering.Soms kunnen we object Checker speciaal type, maar dat de redacteur van een complex van de eigenschappen van de materialen van de regelingen, van fundamenteel belang is niet gevoelig genoeg.Dit is op dit moment, moeten we misschien schrijven eigenschappen /- redacteur.Delphi hebben vele vastgestelde opmaak van deze uitgave is, dsgnintf.pas (Delphi in dollar), de bron van de catalogus.Je moet met behulp van een component redacteur /eigenschap... Gebruik opgenomen in de clausule eenheid, het is ook een goed idee om, bij de voorbereiding van uw redacteur. In het document wordt geopend voor een referentie.Slechts een klein aantal, maar het zou van deze normen te handhaven, als je in je eigen bewerken het schrijven om andere mensen over je baan, het is een goed idee.,,, het creëren van een materiële uitgever, en het laatste woord "je naam; eigendom"; bijvoorbeeld,,,, tangleproperty, een onderdeel van de redacteur, en het laatste woord "je naam; redacteur"; bijvoorbeeld, tpiecharteditor,,,, als redacteur, schrijft altijd in een afzonderlijke eenheid van de reële component, je redacteur.In het ontwerp en de werking van de scheiding van de code, het is goed, trouwens, het laat je de omvang van die kleine (in sommige versies van Delphi onderdelen kunnen stoppen met het opstellen van toepassing indien niet afzonderlijk).Bovendien, apart pakket, dus je kan de gebruiker de oprichting en de werking van het pakket, als ze dat willen.,,, je naam Redactie eenheid met dezelfde naam als je vergadering, maar het woord "toegevoegd; REG " tot slot, bijvoorbeeld, in de naam van de eenheid" samenstelling; mycomponent. Pas "zal leiden tot een document getiteld" uitgegeven; mycomponentreg pas. "; en, tot slot, schrijven, als Een vergadering... /eigenschap... Voor uw vergadering, beweeg je, registercomponents, verklaring van de eenheid, en je in je element, redacteur van de eenheid.Zodat je niet de vergadering niet uitgegeven worden geregistreerd,,,,, materiële uitgever, materiële uitgever wordt gebruikt om de bijzondere aard van het individuele uitgever in een vergadering.Sommige uitgevers is heel eenvoudig, sommige zijn complex.Delphi is een norm eigendom redacteur, waarvan sommige:,, tintegerproperty,.Voor het invoeren van de gehele tcharproperty.,,,.Voor het invoeren van een karakter, tenumproperty,.Voor de selectie van een element in een opsomming (alclient altop, enz.).Tboolproperty,,.Voor de selectie van "echte", of "valse"; tfloatproperty booleaanse;,,,.Voor de invoer van drijven (variabele drijvend /uitbreiding van "echte"; - niet kan worden gebruikt voor de eigenschappen van de componenten,,, tstringproperty).Voor de invoer van touw, 255 karakter tsetproperty.,,,.Gebruikt, met inbegrip van /niet omvat een reeks kenmerken van de afzonderlijke elementen.Elk element wordt weergegeven als een boer - eigenschappen.De vaststelling van de waarde voor de "echte", met inbegrip van elementen die voor de "valse";,, tclassproperty uitgesloten.Dit is een basis als je wil om te komen tot een gewoonte redacteur is een eigenschap noemen als je een soort eigenschappen, zoals de beelden, foto 's), al deze eigenschap... In het kader van tpropertyeditor direct of indirect.Tpropertyeditor heeft veel kenmerken en methoden, het belangrijkste is,  ,  ,    , de functie, het allequal: Bull., virtuele,;, de functie, het getattributes:tpropertyattributes;,, programma 's, de redacteur van virtuele,;;, virtuele;, is de functie van:, touw,;,;, virtuele programma, getValues (methode tgetstrproc):;, virtuele,        ;,,,,,, allequal, wanneer meer dan één onderdeel van het voorwerp van de controles van de keuze van de lijst van kenmerken van de filters niet alleen gezamenlijk geselecteerde componenten.Als een bepaalde eigenschappen (zoals de breedte van de waarde van elk van de componenten) op in hetzelfde is, is de waarde zal worden aangetoond, anders zullen geen waarde.Allequal is routine, dat is dezelfde waarde van elk van de        .,,,,, tstringproperty.allequal: Bull.   var,   ik: gehele getal;,     V, touw,; beginnen,     resultaten: = vals;,    , als propcount > 1, dan     begint,        , V = getstrvalue;,      , ik  :, = 1, propcount - 1, en      ,      , als getstrvalueat (ik) < > v, en de uitgang;    ;,,,,     Resultaten: aan het einde van   = waar      ;,,,,,,, in het voorbeeld hierboven genoemde waarde (met getstrvalueat tstringproperty in vergelijking met de eerste lijst) in de waarde van de onderdelen (het gebruik van getstrvalue, getstrvalueat (0) hetzelfde zou doen.De omvang van de door de propcount lijst is vastgesteld, het totale bedrag van de terug te keren naar de vergadering gekozen, getattributes.,,, getattributes ide nodig is de informatie van de eigenschappen van de redacteur.Tegen Inspecteur op basis van de verstrekte informatie blijkt dat een goede redacteur.De resultaten van de getattributes (tpropertyattributes) is een verzameling, dus het zou kunnen bestaan uit de volgende gecombineerde waarde (dit is geen volledige lijst),,, padialog, vertel inspecteur object dat [...] na de naam van de gebruiker de knop, eigendom, op de knop voor de redactie van pasubproperties.,,,,, dat inspecteur weergave van objecten [+] uitgebreid knop in de naam van eigendom, op de knop zal een lijst van de kenmerken van de uitbreiding (vaak de gepubliceerde kenmerken),,,, pavaluelist, inspecteur voorwerp zal een waarde van de lijst, de lijst van door de getValues ide noemen voor het bepalen van de getValues. Noot: methode niet volledig. De methode van de verschillende getValueDe huur,,,, pasortlist, als met de pavaluelist, blijkt de waarde in alfabetische volgorde.,,, dat pamultiselect aangewezen ide, eigendom, kunnen een aantal opties.Dit project is niet het bestaan van een dergelijke tclassproperty bewerken.,,, reden paautoupdate, setvalue methode die wordt aangeduid als elke verandering van de waarde van het voorwerp van de controles van de, in plaats van te wachten tot de gebruiker op de redactionele of andere goederen.Dit is een "titel"; en ";"; de tekst; aard van de waarden aangegeven voor de gebruikers in pareadonly,.,,, indien deze elementen in de waarde van het voorwerp van de inspectie zijn Read - only.Dat is meestal voor de verbinding van padialog.Wordt weer een eigenschap beschreven.En in de tijd van dit methode wordt toegepast, wordt de eigendom van [...] knop klikken.Als padialog elementen in de getattributes bleek deze knop. Is,,,, deze methode wordt toegepast, het voorwerp van de controles moet weten hoe de eigenschap vertonen als de touwtjes in handen.Dit is typisch voor pareadonly] [padialog, in de resultaten van de aangewezen getattributes getValues,.,,, de methode die wordt aangeduid als object, inspecteur moeten zoeken naar een lijst van waarden die in de pavaluelist getattributes aangewezen.Na een proces genaamd "getValues parameters; " dit is tgetstrproc type.Getstrproc verklaring voor de tgetstrproc =, programma 's, (totaal,...), het voorwerp, de; verwacht van het ";" bekend als een waarde moet in de eigenschappen van het object, inspecteur,     tonen.    , procedures, thintproperty getValues (. Methode: tgetstrproc); en, wat,     (het eerste onderzoek blijkt dat het proces van  ); en   (tweede 项显示);,,,,,,        , de volgende voorbeelden laten zien hoe een reeks "standaard"; dat alle onderdelen van de goederen; ook kan de gebruiker op de lijst geen inbreng.,,        , het type, de     thintproperty =, klasse, (tstringproperty),    , het publiek, de        , de functie, het getattributes:tpropertyattributes;,,   herschrijven,  ;    , pro -Beroep, getValues (PROC:tgetstrproc);,;     herschrijven, tot slot,,,,,,,,, dat de registratie van de procedures;,,, programma 's, registratie, beginnen,    ; registerpropertyeditor (typeinfo ongeldig was wegens (,...),'hint, nul, ",,,,, thintproperty); thintproperty} {,,,,,,,, thintproperty.getattributes:tpropertyattributes;     resultaten: =, erfenis, getattributes pasortlist] + [pavaluelist,,,,,,, programma' s, thintproperty. GetValues (PROC:tgetstrproc);    ,,,, en dat is een moet in ("),  . ( ; voor meer informatie,'press f1),   ";  . (deze waarde zijn Read - only,);,,,,,,        , de eerste getattributes herschrijven, en [pavaluelist, pasortlist] bevat de resultaten.De tweede getValues herschrijven en drie waarde toevoegt aan de lijst door een beroep te doen op de "proces"; programma 's, registratie van eigendommen bewerken, en, tot slot, de registratie van het gebruik van registerpropertyeditor eigenschap redacteur.Registerpropertyeditor vier argumenten:,, ptypeinfo type:,, de noodzaak van een op ttypeinfo geregistreerd.Dat klinkt beter dan in feite veel ingewikkelder, alles wat we moeten doen is de toevoeging van typinfo de voorwaarden voor het gebruik en het gebruik van typeinfo ongeldig was wegens de functies te verkrijgen we wijzer.Soorten informatie (somevariabletype), componentclass:TClass,,, dit is basis, de redacteur van toepassing moet zijn.Redacteur zal van toepassing zijn op deze categorie en een soort van, het is gedaald.Als het niet wordt vermeld, zijn van toepassing op alle categorieën van de redacteur en een naam:., touw, als dit... Zou alleen van toepassing zijn op een specifieke eigenschap van de naam moeten er hier op wijzen.Als redacteur dient van toepassing te zijn op de waarde van bepaalde soorten - alle goederen worden ", editorclass:tpropertyeditorclass.,,, dit is de verwerking van goederen van klasse hebben gecreëerd.In bovenstaand voorbeeld is thintproperty, het gebruik van registerpropertyeditor fout, belangrijk is als het gebruik van registerpropertyeditor, correcte informatie voor je.Het verstrekken van onjuiste informatie kan betekenen dat je redacteur van invloed zal zijn op de juiste eigenschappen (bijvoorbeeld niet alle snaren eigenschap) of niet de juiste onderdelen, in het andere uiterste, niet de juiste parameters kan betekenen dat bepaalde onderdelen (en kinderen) een specifieke eigenschap in verband met de redactie.Dit lijkt niet op een probleem, in de eerste plaats, maar de vergadering zou willen dat de toekomstige generaties van hetzelfde type aanvullende kenmerken.Deze kenmerken hebben verschillende namen, ze zal niet de juiste eigenschappen redacteur van de hun toegewezen, niet geregistreerde redacteur aanleg reeds bestaat in de bibliotheek.De criteria voor de registratie van alle tcollection redacteur van tcomponent is.Het probleem is, de laagste klasse kan in de weergave van objecten TPersistent (klasse, inspecteur tcomponent vallen), als een onderdeel van de type eigendom (TPersistent bij verstek kan worden blootgesteld aan een uitbreiding van de lijst van de in het sub - eigendom), een van de grote voordelen van de tcollection type is, is het Resultaat van een [...], druk op de knop en de inspecteur, niet. - zoals we hebben gezien in het tweede deel van de reeks), de oplossing van het probleem lijkt heel eenvoudig.In plaats van ons kind eigenschappen is afkomstig van TPersistent kunnen we tcomponent daalt.Echter, voor tcomponent - standaard gedrag (zoals door de eigenschap... Tcomponentproperty redactionele besluiten): een lijst van andere onderdelen, in plaats van een geïntegreerd onderdeel van de kenmerken, een praktische oplossing is eenvoudig, als je wist hoe je een eigenschap... Stap 1:,,.,,,        , het type, de     texpandingrecord =, klasse, (        TPersistent),,,, moet worden vervangen door lezen,        , het type, de     texpandingrecord =, klasse, (tcomponent),        ,,,, stap 2: het creëren van een eigenschap... Zo,  ,      , type,     texpandingrecordproperty =, klasse, (tclassproperty),    , het publiek, de        , de functie, het getattributes:tpropertyattributes;,,   herschrijven,  , einde,;Procedures voor registratie;,,,,,,,,, dat programma, de registratie,   beginnen,  ; registercomponents (,, ['article ", texpandingcomponent]);  ,   registerpropertyeditor (typeinfo ongeldig was wegens (texpandingrecord), nul,",,,,,,, texpandingrecordproperty); texpandingrecordproperty} {,,,, de functie van texpandingrecordproperty.getattributes:tpropertyattributes;,,,,,     resultaten: pasubproperties] = [pareadonly,,,,,,,,,        , stap 3: Verwijder de registercomponents oproep van de eenheid en het bewerken in plaats van registratie in de eenheid.Zo kunnen we ervoor zorgen dat de onderdelen niet geen registratie van onderdelen, nu we texpandingrecord - eigenschappen worden weergegeven als een uitbreiding van de eigenschap (omdat we getattributes terug pasubproperties), en tcollection de standaard van de redactie van de tcollection eigenaren van een dialoog tcomponent, materiële uitgever, het grootste deel van de tijd, het creëren van Een speciaal kenmerk redacteur te verstrekken, een grafische en eigendom van de interactie, dit betekent dat het eerste voorbeeld is een zeer eenvoudige methode, zodat gebruikers in de "input"; de titel; een TLabel eigendom.Het is erg ingewikkeld, maar het toont aan hoe de redacteur omvat een vorm, stap 1:, de selectie van de dossiers, nieuwe toepassingen van het hoofdmenu.Dit zal leiden tot een vorm van een tabel, de naam "; fmlabeledit " toevoeging van een vorm van memcaption TMemo noemen.Nog twee knopen, "Oké"; en "; afschaffing van"; die zijn echt, mrcancel modalresult aard.,,,, stap 2: toevoeging van dsgnintf en de voorwaarden voor het gebruik van typinfo je.,,,,,, in stap 3: toevoeging van de volgende goederen redacteur code naar je eenheid,  ,  .     tcaptionproperty =, klasse, (tstringproperty), het publiek, de    , de functie, het getattributes:tpropertyattributes;,;     herschrijven,,, de procedures, de redacteur, herschreven;,,,,,,,,,        , geregistreerd als de eigenschappen van de Redacteur,        , programma 's en registratie; de,,,,, * * * * * * *} {% o. Voor de registratie van het programma,,,,,,,,     registerpropertyeditor (typeinfo ongeldig was wegens (tcaption), "titel", tcaptionproperty TLabel,,,,,  );      ,,,,,, stap 4: toevoeging van de volgende code tHij test object dat [...] na redactionele knop, namen        .,,,,,, tcaptionproperty.getattributes:tpropertyattributes;     resultaten: =, erfenis, getattributes + [padialog];,,,        ;,,,,,, stap 5: wij creëren we bewerken de vorm van voorbeelden, de oprichting van een memorandum van de inhoud van de huidige titel, dan blijkt dat in de vorm van        , modellen, programma 's, tcaptionproperty. Uitgegeven; var, de     ik: gehele getal;,,    ,, tfmlabeledit. Het creëren van (worden gebruikt),    , probeer het,,,  ,       memcaption.lines.text:= getstrvalue;,         showmodal;,,,,    , als vorm van modalresult is echt is, moeten we een "titel"; elke TLabel eigendom.},,,         als wachtwoord is echt, dan,            : = 0,,, ik, propcount-1, doen,    ,             TLabel (GetComponent (i)). Titel: = memcaption. Lijn. De tekst,    , eindelijk.        , vrijheid, aan het einde van  ;  ; en, tot slot,,,        ;,,,,,,, stap 6: de installatie - unit van pakjes, en dan proberen de nieuwe redacteur.De eigenschap, bewerken, wie had tactionlist of TDataSet (tabel /TQuery) zal de volgende voorbeelden van ervaringen, misschien zelfs niet op de hoogte van de ActionList bewerken., duidelijk gebruik... Om een actie, die in fieldseditor TDataSet ziet er misschien uit als een standaard uitgave, maar bij nader onderzoek projecten zoals een pop - up Het menu nog gebieden ".Echter, ongeacht of de redactie is niet de meest opvallende kenmerken van hun gewoonte dialoog redacteur (een vergelijkbaar met wat we eerder genoemd), maar het feit dat ze in de huidige productie van de goederen, met inbegrip van de belangrijkste eenheid van dergelijke verklaringen.  ,  ,    , het type, de     een gebeurtenis, (=, platform),         actionlist1:tactionlist;,         actie: contact,      ;   action2: contact,  ;  , privé,         (particuliere),,,,,,,    ,        , openbare verklaringen {},,,    , eindelijk        ;,,,, het goede nieuws is, het is op de hoogte van deze dingen, dus ze kunnen kiezen uit een lijst van een deel van hun eigendom eisen,.,,, in de twee bewegingen.Het wordt toegevoegd aan een tactionlist, klik op "actie", dat bestaat uit goederen button1 acties aan de lijst toe te voegen.Ook de twee maatregelen toegevoegd aan de vorm van de verklaring, en dus kan worden genoemd (actie, action2), hier is volledig in eigendom... In plaats van in de vergadering.Als een eigenschap... De trekker (d.w.z. de redactie van de ontwerper heet) eigendom bevat een iformdesigner geldige verwijzing (tformdesigner Delphi - 4).Veel van de interface valt buiten het toepassingsgebied van deze discussie, als je meer wilt weten over deze interface, beveel ik aan een boek genaamd, Delphi handboek van Marco treden, moet de reden, een methode, met inbegrip van        , de functie, het methodexists (totaal, de naam, de string,), programma: Bull. Renamemethod (,, een nieuwe naam:,, curname, string);, procedures, selectcomponent (voorbeeld: TPersistent); programma 's, showmethod (,, totaal, de naam, de string, de functie GetComponent (); de naam,, totaal, en,...): tcomponent;, de functie, het createcomponent (componentclass:tcomponentclass; ouders: tcomponent; links, bovenste, breedte, lengte: gehele): tcomponent        ;,,, en van een aantal van deze eisen is een fundamentele, methodexMet inbegrip van bijvoorbeeld de waar of niet, hangt af van de vraag of de naam van een methode bestaat reeds in de huidige vorm (formcreate eenheid, het bereiken van de roterende lettertype, enz.).Showmethod cursor met de voorgeschreven methode, en renamemethod zal veranderen in een van de twee methoden voor de naam van belang in dit verband is het gebruik van bepaalde createcomponent:,,,, een onderdeel van klasse, de ouders en de positie van de omvang van het onderdeel /de ontwerper zal een voorbeeld van een klasse, indien de opdrachtgever kiest het panel van de vergadering, en toegevoegd aan de tabel zijn gewijzigd, stelt de ontwerper.,, de dingen zijn veranderd (van goederen, enz.).Dit verandert de eenheid staat om IDE weet dat het moet worden gehandhaafd in de vóór de afsluiting (waardoor het SAVE in IDE), wanneer de producten worden toegevoegd aan onze generator, alles wat we moeten doen, is dat tmyproperty. De ontwerper om namens ons een deel.Deze vergadering zal worden toegevoegd in de vorm van een een klasse, automatisch het weet.In de tactionlist en TDataSet, toegevoegd aan een vorm van componenten in het ontwerp is niet zichtbaar in het geval van onderdelen, de eigenaar als een "manager"; - de ingrediënten bij het ontwerpen van een contact in je niet zien of in de vergadering het panel, dat zal je twijfelen of ze de registratie van een gebied, Maar het is nog steeds voorbeelden van deze vergadering te creëren (niet zichtbaar.Het antwoord is nee, ze is niet geregistreerd, die zijn ingegeven door de vergadering ";"; de registratie, en zal er een onderdeel van registercomponents - panel, zal niet registernoicon registratie van uw vergadering toe te voegen aan de vergadering van het panel dat de geregistreerde zei ook dat IDE onderdelen mag niet in het ontwerp dat in De volgende voorbeelden zullen we het creëren van een vergadering twavsound (bekend als een extra onderdelen als bedoeld in twavbutton opgenomen in de source code, bij voorbeeld).Twavsound kan alleen maar in het bezit zijn van een dossier en gegevens op een stem nodig.Hoewel we het heel eenvoudig tot we elke twavsound loopt de stem die we nodig hebben, hebben we binnenkort onmogelijk om controle, dus we zullen ook de oprichting van een beheer dat is twavlist.,,, elke technologie in de source code met behulp van deze vergadering voor het tweede deel van deze reeks artikelen dus, de source code is geen details van een goed niveau.Maar ik zal deze vergadering blijkt dat dergelijke verklaringen alleen om je een idee te geven hoe, noot: gestructureerde, op de bodem van de eenheid in het eerste gedeelte van de eenheid, vindt u de volgende code:,,,,     RegisterClass gestart, (twavsound), die het gevolg zijn van registernoicon; dit lijkt geen volledig werken.Het stelt ons in staat om de registratie van de onderdelen van de voorbeelden van ons eigendom... Zijn fout was, een project is die deze vergadering opnieuw laden.Een soort van niet - geregistreerde "boodschap toont aan dat het project is beschadigd.此外,注册类这样似乎解决问题,twavsound,,    ,类型,  pwavdata = ^ twavdata;,  twavdata =、包装、记录,    尺寸:LongInt;,    数据,阵列,[ 0 ],0,,,,  ,字节;;,  twavsound =,类,(tcomponent),  ,私人的,    fwavdata:pwavdata;,    fwav:twav;,    ,程序,readwavdata(流:TmemoryStream);,    ,程序,writewavdata(流:TmemoryStream);,  ,保护,    ,程序,defineproperties(过滤:tfiler);,重写,;,  ,公众,    ,析构函数,破坏;,重写,;,    ,程序清晰;,    ,程序,LoadFromFile(,const,文件名:tfilename);,    ,程序,loadfromstream(流:TmemoryStream,    、程序);Nogmaals, het spel,  ;  , publicatie,    , eindelijk        ;,,,,,, fwavdata, zullen worden gebruikt voor de opslag van de inhoud van het dossier van de loopt als de stroom of bestanden laden.,,,, zal de vrijheid te behouden fwavdata.,,,, het gebruik van API - verzoekt de mmsystem.pas in fwavdata de sndplaysound spelen van gegevens. De gegevens readwavdata.,,,,, writewavdata en zal worden gebruikt als de IDE moet lezen /schrijven de opslag van gegevens in de fwavdata defineproperties.,,,, zal de aanwijzing van een "verborgen"; dat wavdata onroerend goed, zeg het, readwavdata en writewavdata toegepast op de stroom van gegevens.,,, fwav, door de twav binnen de instellingen, twav.wavsound vastgesteld voor onze vergadering.De reden is dat het verzamelen van de projecten zal moeten worden vrijgelaten, onze twavsound onderdelen worden vrijgelaten, om te voorkomen dat het wijst in de richting van een ongeldige object, twavsound,  ,      , het type, de     twav =, klasse, (tcollectionitem),    , privé,         fwavsound: twavsound,        , programma 's; setwavsound (totaal:,, de waarde van twavsound); en    , bescherming,    , het publiek, de        , de procedures, de spelletjes,  ;  , publicatie,        , eigendom, wavsound:twavsound, lezen, schrijven, fwavsound,    , de setwavsound;,     na    ;,,,,,, setwavsound, ervoor zal zorgen dat het punt van de fwav wavsound zijn correct, twavs.,,, is een van de criteria voor de uitvoering van de tcollection dus niet zou worden opgenomen in dit Artikel.(zie deel 2 van deze reeks), twavlist, twavlist is gewoon een onderdeel van de publicatie van een twavs eigenschap waardoor we, toen het ontwerp voor de lijst van twavsproperty bewerken,.,,, twavsproperty is eigendom... Het is ontworpen om dit soort.Hoewel de normen tcollection redacteur is genoeg (1 punt) en ik besloten is tot de oprichting van een nieuwe redacteur, om de opname van /regeling in het ontwerp, in de eerste plaats creëerde ik een nieuwe eenheid vormen.Ik voeg wat tspeedbuttons en in de lijst van projecten TListBox.,,, en ik nog de volgende projecten vormen de verklaring    , klasse,       fwavs:twavs;,   fcomponent:tcomponent;,   ontwerpers: iformdesigner;,        ,,,,, fwavs, zal een van de tcollection verwijzing naar onze Redacteur fcomponent,.,,, zal worden gehouden, een verwijzing naar de vergadering te verzamelen.We zullen niet in de vorm van een model moeten we als deze vergadering gesloten vormen van schade (gebruik van onze kennis van de methode).,, het ontwerp, de verwijzing naar, zal ons eigendom... Van de ontwerper object.Dit zal voor de oproep createcomponent, en de keuze van de twavsound verbergen als een project voor de inspecteur is in onze lijst in de werkelijke eigenschap... Is een heel eenvoudige mensen,  ,      , het type, de     twavsproperty =, klasse, (tclassproperty),    , het publiek, de        , de functie, het getattributes:tpropertyattributes;,,   herschrijven,  ;    , functie, touw, getdisplayname:,,  ;      , de procedures, de redacteur, herschrijven,  ;,;  , eindelijk        ;,,,, de enige methode, voor wat Het waard is. Voor de uitgever.De uitvoering van het  ,  ,    , procedures, twavsproperty. Uitgegeven;,,    , als fmwavseditor =, nul, dan         fmwavseditor:= tfmwavseditor. Het creëren van (toepassing);  ,  ,, fmwavseditor, doen,     beginnen,  ,       ontwerper: ontwerper = zelfstandige.;,, /vergeet niet zelf.,,,.         beschrijving: = zelf.     volledig gekwalificeerde    ;,,, ///////worden aangebracht, dan blijkt dat in de vorm van      ,  , redacteur (tcomponent (GetComponent (0)), twavs (getordvalue)); en    ,       voorbij, voorbij.  ;,,,,,, het creëren van een vorm (als eerste redacteur niet is opgericht), ", ontwerpers," in de vorm van self.designer.Vergeet niet "zelf"; ook hier is er een platform van ontwerpers aard, op dit punt zou zijn, GetComponent nul.,, (0) voor het opvragen van onderdelen van eigendom.Freenotification noemen deze vergadering om ervoor te zorgen dat wij, als onderdeel van de vorm, de vernietiging van kennisgeving (zodat we kunnen dicht bij ons in de vorm van getordvalue).,,, voor het ophalen van voorwerpen (";" eigendom "), is de resultaten kan worden uitgegeven, worden beschouwd als twavs.,, redacteur van de methode, bekend als deel tfmwavseditor, dit is een methode om, ik zei dat het gewoon een lijst met dingen fwavs en de vermelding van naam.En dan blijkt dat de vorm.,, noot: latere versies van Delphi terug TPersistent GetComponent functioneren, dan moet zij de overgang naar de tcomponent.,, met iformdesigner, de redacteur van de belangrijkste twee delen (met uitzondering van aaseters loopt en spelen loopt) waar de ontwerpers ";"; interactie. Dat eerste gedeelte dient te worden welke delen van de "nieuwe" druk op de knop, een nieuw punt toegevoegd aan het verzamelen, een nieuwe twavsound de vorm van klasse toe te voegen aan onze verklaringen, de laatste twavsound in het voorwerp van onderzoek        .,,, programma 's, tfmwavseditor. Sbnewclick (afzender: TObject); var,  ,   WAV:twav;     wavsound:twavsound beginnen;,,,,, ///////   , toegevoegd Aan het verzamelen van een,,  ,   WAV:= fwavs. Toegevoegd;  ,  , creëren we nieuwe ontwerper, /vragen twavsound vergadering,     wavsound:= twavsound (createcomponent (twav ontwerper.Geluid,        , 0, 0, 0, 0, 0)),  ; /////// ,, die loopt (collectionitem): onze nieuwe twavsound vergadering,    , wav.wavsound:= wavsound    ;,,, ///////de keuze van onze nieuwe tsoundcomponent voor het voorwerp van de controles,,,    ,, /kan worden gewijzigd, indien nodig,    , ontwerper. Selectcomponent (wavsound); /////// ,  , interne, op de lijst in het kader van een     refreshlist;,,,,     lbitems.itemindex:= fwavs. Count-1    ;,,, ///////ide iets vertellen de variabele,,,     ontwerper. Wijziging;,,,,,,        , over het tweede deel van de twavsound is juist in het voorwerp van onderzoek van de projecten, in de doos,   klikken,      , procedures, tfmwavseditor. Lbitemsclick (afzender: TObject),,   ,, lbitems, doen,  ,      , als itemindex > = 0, dan             ontwerpers. Selectcomponent (fwavs [itemindex]. Wavsound);,,,,,,        , om te voorkomen dat de toegang tot conflicten, en, ten slotte, moeten we ervoor zorgen dat we geen Referenties een object, als niet langer geldig is.Dit is van de volgende twee stappen heel eenvoudig te bereiken, en om ervoor te zorgen dat wij, als onderdeel van ons meegedeeld in de vorm van een klas van de vernietiging van eigendommen.,,, tegen onze kennis van de methoden, als de desbetreffende onderdelen vernietigd sluit de vorm.,,, om ervoor te zorgen dat We niet worden aangemeld wanneer onderdelen:,,        , procedures, tfmwavseditor. Redacteur (samenstelling: tcomponent; awavs:twavs);    , begint, moeten wij in de eerste plaats, het schrappen van de kennisgeving, ///////de component van de huidige,,,    , als fcomponent < >, nul, dan         fcomponent. Removefreenotification (zelf),    ; nu moeten we nog,, ///////de component van de huidige, kennisgeving,     vergadering. Freenotification (zelf);  ,   fcomponent:=,     fwavs onderdelen;:= awavs;,  lbitems.itemindex:= 1;,  refreshlist;,  显示;,,;,,,    ,做什么当一个组件被破坏:,,    ,程序,tfmwavseditor。通知(组成:tcomponent;手术后);,开始,  ,继承;,,  ,如果操作= opremove,然后,  ,开始,    ,,//如果业主成分被破坏,    //我们应该关闭我们的形式,,,    ,如果(一个= fcomponent),然后,      接近,    ,别的,    ,,/如果被破坏的成分,    //我们更新我们的名单只是因为它影响我们的组件,,    ,如果(一个部件,是twavsound),然后,      refreshlist;,  ,结束;结束;,,,,,,    ,总结,在这第我们冠状病毒Voor het schrijven van een redacteur, dan creëren we eenvoudige materiële uitgever, en ten slotte door meer geavanceerde eigenschap... (met inbegrip van de iformdesigner zelden gebruik van de interface).Alle Display Technology in dit document (en meer) zijn voor ik DIB (DIB) componenten die kan worden gebruikt voor het gratis downloaden van http://www.stuckindoors.com/dib (dus een bijdrage aan de ontwikkeling van open source - zou zeer gewaardeerd worden.

Caption property editor
Action property
TWavList
My collection editor



Previous:
Next Page: