.
Demian, Realmente eu errei no meu primeiro exemplo, mas no segundo... 1o. fiz: (TEdit)@obj ...pq no próprio código da unit de TObjectList, Contnrs, o retorno é feito assim. A TObjectList é herança de TList q é lista de ponteiros, a TObjectList retorna os objetos da seguinte forma: (TObject)pointer 2o. mesmo assim, não é possível fazer o q vc sugeriu por causa da hierarquia das classes.. TEdit --> TObjec ...isso é possível! TObject --> TEdit ...isso NÃO! --- Em delphi-br@yahoogrupos.com.br, Demian Lessa <[EMAIL PROTECTED]> escreveu > Filipe, > > TObjectList guarda uma lista de objetos quaisquer mas permite o acesso > apenas como TObject. Assim, para recuperar o objeto com a referência > correta da classe à qual ele pertence (que você sabe qual é) será sempre > preciso fazer um typecast. Somente quando você manipular os elementos > como TObject é que você não precisará fazer isso. > > for i := 0 to MyObjectList.Count - 1 do > if MyObjectList.Objects[i] is TEdit then > begin > edit1 := TEdit(MyObjectList.Objects[i]); > Break; > end; > > Pelo seu primeiro exemplo abaixo, acho que seu problema foi apenas > sintaxe. Acredito que o cast resolve para a referência da lista de > objetos e não ao item 0 da lista. Assim, bastaria fazer: > > TEdit(objectLista1[0]); > > No seu segundo exemplo, você atribui o cast ao endereço do objeto e não > ao objeto propriamente dito. Em Object Pascal, as referências entre > ponteiro e objeto são automaticamente resolvidas para você. Dessa forma, > bastaria fazer: > > obj1 := objectLista[0]; edit1 := (TEdit)obj1; > > Atenciosamente, > > Demian Lessa > Salvador - Brasil > > Filipe Belchior wrote: > > Olá! paz! > > > > Estou usando pela 1a. vez a classe TObjectList, pelo nome da classe é > > possível > > imaginar para q serve! > > Esta classe é semelhante a TStringList... minha difuldade está em > > resgatar os > > objetos da lista, pois como se sabe, ou deveria se saber, não é possível > > "converter" > > (perdão, esqueci o termo propício) uma classe por uma de "hierarquia > > abaixo". > > Como obviamente todos os objetos da lista estão como TObject, não é possível > > o seguinte: > > > > ex.: (TEdit)objectLista1[0]; > > > > ...tentei também o seguinte: > > > > ex.: obj1 := objectLista[0]; edit1 := (TEdit)@obj1; > > > > ...também não. Até compila, mas na linha da atribuição ao "edit1", > > ocorre "access violation" > > > > Agradeço a ajuda... > > > > > > Filipe Belchior > > ICQ 283735340 > > MSNM [EMAIL PROTECTED] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html