Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

signori

DirectCast ?

Recommended Posts

Olá pessoal,

 

Estou tentando converter um código feito em C# para delphi.NET, e me deparei com uma função chamada DirectCast, esta localiza um componente em um ItemTemplate de um dataGrid e diz qual o tipo de objeto que ele é, veja:

 

DirectCast(e.Item.FindControl("dropdowlist"), DropDownList)

 

Gostaria de sabei se existe algo parecido em Delphi!! Ou qual é o verdadeiro objetivo desta função?

Help!!

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não é C# né? Me parece VB.NET.

 

Em C# você pode fazer cast de duas maneiras:

1) e.Item.FindControl("dropdownlist") as DropDrownList;

2) (DropDrownList)e.Item.FindControl("dropdownlist");

 

A diferença é que o primeiro exemplo retorna null se o cast for inválido, já o segundo lança a InvalidCastException.

 

Agora em Delphi eu não sei, tenta dessa maneira acima, vai que funciona :D

 

Att,

Guilherme Oenning.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda Guilherme,

 

Sim, realmente esse código é VB.NET.

 

Ainda não consegui resolver meu problema, esse é o código que tenho como exemplo:

With DirectCast(e.Item.FindControl("DropDowTal"), DropDownList)
				.DataTextField = "NOME"
				.DataValueField = "CODIGO"
				.DataSource = sqlDataReader
				.DataBind()
			End With

no Delphi, primeiramente fiz da seguinte maneira:

with e.Item.FindControl('DropDowTal') as DropDownList do // ATÉ AKI OK...
		  begin
			DataTextField := 'NOME';	  //ESTAS LINHAS QUE DÃO ERRO   
			DataValueField := 'CODIGO'
	end;

Dá erro de "Referencia de Objeto não definida para uma estância de Objeto"

 

depois tentei desta forma:

with DropDownList(e.Item.FindControl('ddlDpto')) do 
		  begin
			DataTextField := 'NOME';	  //ESTAS LINHAS QUE DÃO ERRO   
			DataValueField := 'CODIGO'
	end;

Acontece o mesmo erro, o FindControl parece ter funcionado, somente não consigo acessar as propriedades do DropDow.

 

Alguém pode me ajudar?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Referencia de Objeto não definida para uma estância de Objeto."

Significa que ele não encontrou o objeto com ID = "DropDowTal" e que seja do tipo dropdownlist, existe um dropdownlist com esse ID?

 

Esse ";" depois do "NOME" está correto? Não sei Delphi.NET.

 

Att,

Guilherme Oenning.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, existe um componente com este nome, mas náo é nesta linha que acontece o erro, oque não consigo é acessar as propriedades do componente.

 

O ";" está certo sim, este vai a cada final de linha de código.

 

Tanto faz a propriedade que coloco, continua dando este erro.

 

Ainda não consegui resolver.... <_<

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.