Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   VCLComponentConverter Error (https://www.clubdelphi.com/foros/showthread.php?t=48147)

Crandel 17-09-2007 12:30:14

VCLComponentConverter Error
 
Hola amigos, estaba interesado en usar los compontes PlotLab (componetes de graficacion escritos en delphi) en VisualStudio.

Me baje e instale la version .NET de ellos y funciona bien.

El problema es cuando quiero crear un componente derivado de Scope (el nombre de uno de los componentes que trae).

Lo escribo, me aparece en la aparece en la paleta de componentes, pero cuando ejecuto el programa me da un error que dice:

Cita:

'VCLComponentConverter' is unable to converter 'MiComponente' to System.ComponentModel.Design.Serialization.InstanceDescriptor
Alguna idea de cual puede ser el problema? debere tener que implementar algo especifico?

Gracias de antemano por la ayuda

__hector 17-09-2007 19:47:00

Creo que el error es muy especifico de un producto en el que quizas no muchos aqui tengamos experiencia (en mi caso, acabo de conocerlo). Intentaste consultar sobre el error en los foros o ayuda del fabricante?

Crandel 18-09-2007 09:50:30

Hola Hector,

no consegui mucha info, pero en la pagina de MS sobre la clase System.ComponentModel.Design.Serialization.InstanceDescriptor daba un poco de info:

escribi el ejemplo que daban con pequeñas modificaciones y funciono. Aca dejo el código por si alguien tiene el mismo problema:
Código PHP:

 [TypeConverter(typeof(PlotLabConverter))]
    public class 
MyScopeClass Scope
    
{

        
internal class PlotLabConverter TypeConverter
        
{
            
// This method overrides CanConvertTo from TypeConverter. This is called when someone
            //  wants to convert an instance of Triangle to another type.  Here,
            //  only conversion to an InstanceDescriptor is supported.
            
public override bool CanConvertTo(ITypeDescriptorContext contextType destinationType)
            {
                if (
destinationType == typeof(InstanceDescriptor))
                {
                    return 
true;
                }

                
// Always call the base to see if it can perform the conversion.
                
return base.CanConvertTo(contextdestinationType);
            }

            
// This code performs the actual conversion from a Triangle to an InstanceDescriptor.
            
public override object ConvertTo(ITypeDescriptorContext contextCultureInfo cultureobject valueType destinationType)
            {
                if (
destinationType == typeof(InstanceDescriptor))
                {
                    
ConstructorInfo ci typeof(MyScopeClass).GetConstructor(new Type[]{});
                    return new 
InstanceDescriptor(ci, new object[]{});
                }

                
// Always call base, even if you can't convert.
                
return base.ConvertTo(contextculturevaluedestinationType);
            }
        }
    } 


Crandel 18-09-2007 10:01:26

Cita:

Empezado por hector (Mensaje 231680)
Creo que el error es muy especifico de un producto en el que quizas no muchos aqui tengamos experiencia (en mi caso, acabo de conocerlo)

yo empece a trabajar con el hace unos 6-7 meses en mi nuevo trabajo. Asi que ahora le dedico casi todo el dia a él. Programar con C# es tan lindo como pascal (con C++ ya pasaron 6 años y todavia no lo termino de dijerir :p)

Van avanzado rapido y las diferencias con el IDE de Delphi cada vez disminuyen mas. Al punto que ya encontre varias cosas que me son mas sencillas como hacer aplicaciones multilenguaje.

Pero igual la realidad dice que vuelvo a mi casa y sigo escribiendo mis programas con mi querido Delphi7 :D


La franja horaria es GMT +2. Ahora son las 08:37:38.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi