10. august 2006 - 17:39Der er
10 kommentarer og 1 løsning
bruge properties i componenter fra et TObejct klasse
hejsa
jeg har lavet en klasse der nedarver fra TObject denne klasse skal fungere som et kommunikations led mellem en masse open source komponenter der kan snakke sammen via et input property i de komponenter der kan skrive data i et nyt format.
hvordan kan jeg create komponenterne i min klasse og så få adgang til de properties jeg skal bruge uden at smidde komponenterne på min form...?
Du har en TObjekt-nedarvet klasse. Så langt hang jeg på. Hvordan bindeled? Bindeled mellem O.S. komponenter og hvad? Hvordan kommunikerer de? Indeholder den en liste af komponenter? Hvad er formålet egentligt?
Sidste afsnit om at oprette komponenterne, er der normalt ingen problemer i.
Du snakker om komponenter, men det er jo ikke det du har lavet. Når du nedarver fra TObject har du en klasse, ikke en komponent. En klasse creater du som alle andre klasser: var MinKlasse: TMinKlasse; begin MinKlasse := TMinKlasse.Create; Husk at free den når den ikke skal bruges mere. MinKlasse.Free;
alt det i har nævnt er jeg med på :) skåret ud i pap:
jeg har en række komponenter (OpenSource) som fungere som en wrapper omkring en række dll'er.
jeg har så lavet et objekt der sender filer der skal konverteres mellem de rette komponenter.
det jeg så skal have createt i mit objekt er komponenterne, så jeg kan få adgang til de properties jeg skal bruge, men efter som komponenterne skal have en AOwner parametre som normalt er Self (hvis man creater det i en unit med en form) men self virker ikke når det er et TObject... :)
Angiver du en "aOwner" (TComponent) så er det dens ansvar at frigive objekterne igen. Dette sker eksempelvis ved programslut eller når du lukker og frigiver en form.
Skriver du derimod nil så er det dit ansvar og så bør det komme ind i en try-finally eller en OnCreate/OnDestroy så du er sikker på, at de frigives igen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.