Toster Napisano Maj 7, 2008 Zgłoś Share Napisano Maj 7, 2008 Witam, Oto kolejne cudo na ktorym dalem sie zrobic w jajo mamy takie cos type IMyInterface = Interface procedure cosTam; end; TMojaKlasa = class(TInterfacedObject, IMyInterface) procedure MojeCos; procedure CosTam; end; var a: TMojaKlasa; begin a := TMojaKlasa.Create; IMyInterface(a).CosTam; end; 2Vk7Łzhm'Ł)gz &jlŁ -x$'ęixvf0Ą0 i)yŁyfxŚJśghO)^vŹ7v0gęh(n'iłVrŁz\"r3(jĆŁjJ))z*H3\"'ęię,g2Z'q^' %jqnŻ'(ą6Ś)dĘ#x*,n'ś7Ź+{9h3ĘvŁjrZM0#<\"zlłzx^*n'-jH0jx#z^lŻ<ł'3j79%jĆŚ')óy-źś''Vv'jl^hrz'&s7rĘk9z(ł7ŚjlYĄ0LĘ#hZąŻ<ŚjlŁ{ bąLŹ6''jlxv'3k)Zui' var List: TList; begin List := TList.Create; List.Add( TMojaKlasa.Create); (List[0] as IMyInterface).cosTam; end; gzG\"zĘhśFŚĘvŹ(vŁgM3ĘXN꜌Xi^śaĘ)zśvzśz\"'fóiŹrVŹą)jłiŹq&3'!jŚnWŁ-kjWŚĘ^zxy)ljG^bppDFW&f6VD&ŚV7BĆ7Eł2FW&f6Rć65FÓ i co ? I Bingo, jak narazie wszystko wyglada niezle. Jak sie znowu cos posypie nieomieszkam was poinformowac Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
HNB Napisano Maj 7, 2008 Zgłoś Share Napisano Maj 7, 2008 I co w tym dziwnego? Operator "as" i GetInterface z TObject działają poprawnie jeśli zadeklarujesz interfejsy z GUIDem... Ale kto by o tym pamiętał ... I tak na przyszłość: Igrasz z ogniem... Zwłaszcza jeśli nie masz swojej implementacji TInterfacedObject. Jak wczoraj pamiętam jaka była czasem jazda w Ambition z interfejsami... soon Delphi will be only for veterans and finally we all will die at the end… delphi.dathox.com - nowinki z świata Delphi/Pascala only programmers and drug dealers call their customers "users" Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą. Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Maj 7, 2008 Autor Zgłoś Share Napisano Maj 7, 2008 GUID nic nie zmienia. W moich interfejsach sa zdefiniowane GUIDy i nie mozna ich zrzutowac na nic co nie dziedziczy po IUnknown. Co ciekawe w helphie do Delphi nie ma slowa o tym pisze sobie ze uzywa sie o tak: Object as Interface Mam swoja implementacje InterfacedObject juz od dawna EDIT: Co wicej nie polecam as, QueryInterface jest chyba jedyna cywilizowana droga. Przy takim czyms TUpdatableObj = class abstract(TUIDObject); TMultiLinkableObj = class abstract(TUpdatableObj); TMovePath = class(TMultiLinkableObj, IMultiParent, IShapeMonitor); x[Łz\"yĘ,ui' (TMovePath(fMonitors[t]) as IShapeMonitor).PointChanged(index, item.x, item.Y); ([Ły^'&iŚ(ĄQ%Ń=Ą5ŃmŃt%MĄ5ŃAŃ ĄĄŃŃd( i zapis sie komplikuje :/ Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
HNB Napisano Maj 7, 2008 Zgłoś Share Napisano Maj 7, 2008 Wszystkie interfejsy dziedziczą po IUnknown. Pewnie gdzieś masz mały błąd. soon Delphi will be only for veterans and finally we all will die at the end… delphi.dathox.com - nowinki z świata Delphi/Pascala only programmers and drug dealers call their customers "users" Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą. Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Maj 7, 2008 Zgłoś Share Napisano Maj 7, 2008 Nie można po prostu używać QueryInterface? Kiedyś się pytałem z tym jak rzutować to chyba Toster powiedział jak a teraz się dziwuje Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Maj 7, 2008 Autor Zgłoś Share Napisano Maj 7, 2008 Bo widze tu mega niekompetencje w Borlandzie powinna byc za to chlosta publiczna. Jesli kogos wprowadzilem w blad to sorry posypuje glowe popiolem Anyway pisze na bierzaco co odkrywam i co poprawiam, zmieniam... Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
HNB Napisano Maj 7, 2008 Zgłoś Share Napisano Maj 7, 2008 Raczej wątpię w niekompetencję bo interfejsy zostały stworzone do dużo bardziej zaawansowanych rzeczy niż takie "maluczkie" sprawy. Nawet miałem okazję czytać jak to powstawało - chylcie głowy narody świata. Brak dokumentacji o COMach i praca od rana do nocy... Robota cięższa niż wydobywanie węgla. btw. moje marzenie - praca w CodeGear nad Delphi . soon Delphi will be only for veterans and finally we all will die at the end… delphi.dathox.com - nowinki z świata Delphi/Pascala only programmers and drug dealers call their customers "users" Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą. Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Maj 7, 2008 Autor Zgłoś Share Napisano Maj 7, 2008 Nie zgadzam sie z toba. W Delphi.net dziala to ok w Delphi.win32 jest zbugowane. Compilator powinien rzucac conajmniej warningiem ze robisz bzdure, zwlaszcza ze rzutowanie na interface w Javie wyglada zupelnie jak rzutowanie na klase i dziala poprawnie. Zeby nie bylo ze tylko ja natknalem sie na to: http://hallvards.blogspot.com/2005/01/inte...face-casts.html Pozatym mylisz 2 rzeczy: 1) Interfejsy z punktu widzenia Obiektowosci 2) Interfejsy COM Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
HNB Napisano Maj 7, 2008 Zgłoś Share Napisano Maj 7, 2008 Nigdzie nie pisałem że COM to to samo co interfejsy w Delphi jako element składni. Brakuje tam jednego zdania , ale myślałem, że kontekst jest oczywisty (: ale cieszę się, że znasz różnicę. Co do linka to czytałem już wcześniej : "this is not a bug, but a consequence of Win32 hard-cast semantics." no a to plus )) btw. ten blog wyniszcza soon Delphi will be only for veterans and finally we all will die at the end… delphi.dathox.com - nowinki z świata Delphi/Pascala only programmers and drug dealers call their customers "users" Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą. Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Maj 7, 2008 Autor Zgłoś Share Napisano Maj 7, 2008 A jednak daje warrningi tylko ze na kazdym castowniu na untyped pointer, pewnie dlatego mam tego wara odlaczonego Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.