Custom Containere Pack (CCPACK 5)

Gjennomgang av dette freeware ekspert som hjelper deg visuelt bygge komposittkomponenter CUSTOM CONTAINERS PACK (CCPACK 5)
Hva er Custom Containere Pack?
CCPack 5 er et freeware pakke som lar deg visuelt kombinere, utvide og arve VCL beholdere. Pakken ble utviklet av Sergey Orlik, produktsjef for Inprise kontor i Moskva (Russland, CIS og Baltikum) .CCPack 5 arbeider med Delphi /C ++ Builder 5, og er utviklingen av to eksisterende Delphi /C ++ Builder 3, 4 add-ins: Egendefinerte skjemaer Pack (CFPack) og komposittkomponenter Pack (CCPack 4) .En av de vanlige bruk av CCPack 5 er å lage komponenter laget av ulike komponenter: * CCPack Introduksjon film (~ 337K) Nedlastinger
* Custom Containere Pack (CCPack 5) for Delphi /C ++ Builder 5 (~ 695K) * CCPack 4.5 for Delphi /C ++ Builder 3 og 4 (~ 591K) * CFPack 4.3 for Delphi /C ++ Builder 4 (~ 129K) * CFPack 1.01 for Delphi /C ++ Builder 3 (gamle og ikke-modifisert versjon) (~ 45K) Full kildekode er inkludert og du kan endre den uten begrensning for alle ikke-kommersielle prosjekter. La forfatteren vite om du ønsker å bruke denne programvaren i kommersielle prosjekter via e-post til [email protected]~~V angivelse av verktøyet navn i emnefeltet. En prøve sammensatt komponent
Etter at du har installert CCPack, du er klar for den første example.Close alle Delphi prosjekter. I "Fil" menyen velger du "Ny ...", velg "Custom Container" (eller "Composite Control" i Delphi 3/4) i "Nye elementer" dialog, og klikk "OK". I "New Container" dialogen velg "TFrame", skriv "TFileComposite" i "Ny klasse name" feltet og klikk "Finish" .En vises form. Overflaten er overflaten av den nye Delphi komponent. Angi følgende egenskaper i Object Inspector: Bredde = 281 height = 164This vil være standardstørrelsen av komponenten. Drop en Panel på skjemaet, og angi egenskapene: Align = alLeft Bredde = 130 BevelOuter = bvNone Caption = Constraints.MinWidth = 110Drop en Splitter til høyre i panelet. Det skal justeres automatisk til den side av panelet. Drop en DriveComboBox og en DirectoryListBox på panelet og sette deres egenskaper: DriveComboBox: Venstre = 0 Top = 0 width = 130 height = 19 Anchors = [akLeft, akTop, akRight] DirectoryListBox: Venstre = 0 Top = 19 width = 130 height = 145 Anchors = [akLeft, akTop, akRight, akBottom] Klikk på høyre side av skjemaet, og slippe en FileListBox: align = alClient TabOrder = 0With dette har vi gjennomført det visuelle grensesnittet til vår kompositt komponent. Nå er det på tide å legge noen kode til "link" komponentene. Dobbeltklikk på DriveComboBox og i Endre hendelsesbehandling skrive: prosedyre TFileComposite.DriveComboBox1Change (Sender: TObject); begynne DirectoryListBox1.Drive: = DriveComboBox1.Drive; enden, Dobbeltklikk på DirectoryListBox og i Endre hendelsesbehandling skrive: prosedyre TFileComposite.DirectoryListBox1Change (Sender: TObject); begynne FileListBox1.Directory: = DirectoryListBox1.Directory; ende; Med dette har vi gjennomført den grunnleggende virkemåten til vår kompositt komponent, som for programmeringsgrensesnittet vil arve de metoder og egenskaper fra TFrame (base klassen vi valgte da vi laget komponenten). La oss legge til et par av offentlige eiendommer: filnavn og katalog. I erklæringen av klassen add: type TFileComposite = klasse (TFrame):: beskyttet {Beskyttede erklæringer} funksjon GetFileName: string; Prosedyren SetFileName (Filename: string); funksjon GetDirectory: string; Prosedyren SetDirectory (Directory: string); offentlige {offentlige erklæringer} eiendom Filename: string lese GetFileName skrive SetFileName; Eiendommen Directory: string lese GetDirectory skrive SetDirectory; :: Gjennomføringen er ganske enkel. I utgangspunktet får vi og angi filnavnet for FileListBox og Directory eiendommen av DirectoryListBox: function TFileComposite.GetFileName: string; begynne Resultat: = FileListBox1.FileName; slutt; Prosedyren TFileComposite.SetFileName (Filename: string); begynne FileListBox1.FileName: = Filename; slutt; funksjon TFileComposite.GetDirectory: string; begynne Resultat: = DirectoryListBox1.Directory; slutt; Prosedyren TFileComposite.SetDirectory (Directory: string); begynne DirectoryListBox1.Directory: = Directory; end; Nå la oss legge til tre hendelser: Endre, klikk og DblClick. I erklæringen av klassen add: type TFileComposite = klasse (TFrame):: private {felleserklæringer} FOnChange: TNotifyEvent; FOnClick: TNotifyEvent; FOnDblClick: TNotifyEvent; beskyttet: public: publisert {Publisert erklæringer} eiendom OnChange: TNotifyEvent lese FOnChange skrive FOnChange; Eiendommen onclick: TNotifyEvent lese FOnClick skrive FOnClick; Eiendommen OnDblClick: TNotifyEvent lese FOnDblClick skrive FOnDblClick; enden, som du kan gjette, vil disse hendelsene skal utløses av endringen, klikker og DblClick hendelsene i FileListBox, så genererer de tilsvarende hendelsesbehandlinger og skrive følgende: prosedyre TFileComposite.FileListBox1Change (Sender: TObject); begynne hvis Assigned (FOnChange) så FOnChange (Selv); slutt; Prosedyren TFileComposite.FileListBox1Click (Sender: TObject); begynne hvis Assigned (FOnClick) så FOnClick (Selv); slutt; Prosedyren TFileComposite.FileListBox1DblClick (Sender: TObject); begynne hvis Assigned (FOnDblClick) så FOnDblClick (Selv); ende; Hvis du lurer på om den tilordnede funksjonen, kan du tillate meg å forklare. FOnChange er et felt av typen TNotifyEvent, og dette betyr at det kan holde adressen til en prosedyre objekt som tar en "Avsender: TObject" parameter ... eller det kan være Nil, så vi bør sørge for at FOnChange er ikke Nil før du ringer "FOnChange (Selv)". Imidlertid vil følgende ikke: hvis FOnChange < > nil så ... Grunnen er at henviser FOnChange er tatt av kompilatoren som en påkallelse av prosedyren den peker til. Siden det er en prosedyre, betyr det ikke tilbake en verditype-kompatibel med en peker (slik at vi ikke kan sammenligne det med Nil), men før realisere dette, kompilatoren vil finne at vi glemte parameter (Sender) i samtalen til FOnChange ... Vår intensjon er ikke å kalle prosedyren FOnChange peker på, men å vite om verdien av FOnChange er ikke Nil. Det er hensikten med den innebygde Tilordnet funksjonen til above.For formålet med eksempel er det. Du kan installere denne enheten og deretter bruke komponenten fra Components Palette, eller du kan ta med enheten i et prøveprosjekt og opprette komponenten med kode som vi gjorde i testen program for å redde deg fra å måtte installere en ubrukelig component.As du kan se, med CCPack noen med litt erfaring i komponent skriving kan bygge komposittkomponenter raskt og enkelt. mer informasjon
du finner mer informasjon om CCPack, og finne andre komponenter ved Sergey Orlik hjemmeside site.You kan finne hele kildekoden til denne artikkelen i arkivet som følger med Pascal Nyhetsbrev # 24



Next Page: