Avatar billede psycosoft-funware Nybegynder
10. august 2006 - 17:39 Der 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...?

/p-f :)
Avatar billede psycosoft-funware Nybegynder
10. august 2006 - 17:48 #1
har prøvet med Self, men det virker ikke :(
Avatar billede hrc Mester
10. august 2006 - 20:40 #2
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.

Kan du prøve at forklare det på en anden måde?
Avatar billede tolderlund Nybegynder
11. august 2006 - 09:38 #3
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;
Avatar billede martinlind Nybegynder
11. august 2006 - 09:44 #4
var
  MinKlasse: TMinKlasse;
begin
  MinKlasse := TMinKlasse.Create;
  try
    MinKlasse.Proprerty := 'Noget';
    MinKlasse.Nr := 117;
  finally
    MinKlasse.Free;
  end;
Avatar billede psycosoft-funware Nybegynder
14. august 2006 - 16:29 #5
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... :)
Avatar billede martinlind Nybegynder
14. august 2006 - 17:25 #6
Du smider bare en NIL med istedet for Owner :

MyComp := TMyComp.Create(NIL);

Owner bliver kun brugt af Delphi til at "ryde op" i de comp. der er ejet af din Form osv., så det burde ikke være noget problem at bruge NIL
Avatar billede martinlind Nybegynder
14. august 2006 - 17:27 #7
og nej, Owner er en TWincontrol så "hut jeg hvisker" husker, så TObject virker ikke :)
Avatar billede psycosoft-funware Nybegynder
15. august 2006 - 15:38 #8
det vil jeg da lige kigge på... :)
Avatar billede hrc Mester
15. august 2006 - 16:40 #9
Uddybende til Martins forklaring:

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.
Avatar billede psycosoft-funware Nybegynder
15. august 2006 - 21:24 #10
>> hrc: kan du ikke lægge et svar? både martinlind og du havde nogle gode informationer :)
Avatar billede psycosoft-funware Nybegynder
15. august 2006 - 21:25 #11
i fortjener begge to point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester