Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   crear MaterialLibrary dinamicamente (https://www.clubdelphi.com/foros/showthread.php?t=64815)

Isuri 21-04-2009 09:16:56

crear MaterialLibrary dinamicamente
 
Hola,

Quiero crear una biblioteca de materiales, para dar texturas y demas, en tiempo de ejecucion. hacer esto en tiempo de diseño es muy simple con la ayuda de object inspector, pero no se cual seria su código correspondiente.
haber si alguien me puede echar una mano.

gracias.

Neftali [Germán.Estévez] 21-04-2009 09:54:22

No se los demás, pero yo no he entendido nada. :(:(:confused::confused:

¿Necesitas un componente tipo "Inspector de Objetos"?
Puedes explicar mejor lo que estás haciendo.

Isuri 21-04-2009 10:16:03

haber, cuando creas una MaterialLibrary en tiempo de diseño, lo haces a traves del object inspector, no escribes codio. yo quiero saber cual es ese código para poder crear esa biblioteca en tiempo de ejecucion. espero haber aclarado algo

gracias

Neftali [Germán.Estévez] 21-04-2009 10:21:55

Pues debe ser similar a cuando creas un TRectangularObject; Crear y luego asignar las propiedades.

Isuri 21-04-2009 11:23:49

Si, eso si, pero el problemas es q no se q propiedades hay q asignarle

Neftali [Germán.Estévez] 21-04-2009 11:30:18

Sí, el problema es que yo tampoco sé que es un "MaterialLibrary", que es lo que intentaba decirte que explicaras. :confused::confused:

Supongo que si alguien lo conoce te podrá ayudar.

diegofhernando 21-04-2009 14:48:32

A mi me suena más como a una caja de herramientas, de esas que usan las aplicaciones de edición de imágenes... no se si por ahí sea la cosa... :rolleyes:

Isuri 21-04-2009 15:58:41

Es una biblioteca de materiales, luego se usa para dar texturas a objetos. algo muy importante, todo esto es en glscene!!

casacham 22-04-2009 04:53:44

Dado Por Supuesto:= Error!!!;
 
Claro que no se entiende nada, ni siquiera se tomo el tiempo de analizar lo que iba a escribir en el hilo.

Amigo Isuri debes buscar todos los medios necesarios para que te ayuden. Pega parte del codigo en problema que no entiendas, lee antes de iniciar un hilo, estudia el tema de varias fuentes. El foro responde preguntas en concreto, no dicta clases magistrales sobre un tema en particular. Espero que entiendas el mensaje.

Isuri 22-04-2009 08:55:24

No he puesto ningun código porque el problema es que no se cual es el código correspondiente a la creacion de el MaterialLibrary. no se como explicar mejor mi duda; haber, estoy haciendo un programa en glscene, aqui puedo crear un MaterialLibrary donde dar texturas, color... a cada objeto de mi programa. Ésto, normalmente siempre lo he hecho a traves del object inspector (igual que cuando creas un cadencer o un timer), es decir, lo he creado en tiempo de diseño. Al igual que un cadencer, un timer, un objeto 3D...se puede crear en tiempo de ejecucion, es decir, escribiendo yo el código, quisiera saber cual es el código para crear ese MaterialLibrary. Un ejemplo de codigo para usar el MaterialLibrary (habiendolo creado en tiempo de diseño) es el siguiente:

Código Delphi [-]
Bola.Material.MaterialLibrary := BiblioMateriales;
Bola.Material.LibMaterialName := 'MaterialBola';
BiblioMateriales.Materials[0].Material.Texture.Image.LoadFromFile('imagebola.jpg');
BiBlioMateriales.Materials[0].Material.Texture.Disabled := false;

Con esto consigo dar al objeto bola, el material llamado 'MaterialBola', creado en la biblioMateriales en la posición 0, en tiempo de diseño. Ademas a ese material le asigno una imagen como textura. Lo que quiero saber el es código que me falta antes de eso, es decir, el crear el MaterialLibrary, que supongo será algo asi:

Código Delphi [-]
BiblioMateriales := MaterialLibrary.Create;

Y como ir añadiendo materiales a esa biblioteca.

Espero haber aclarado algo, para que me podais ayudar.

Gracias.

roman 22-04-2009 17:46:47

Lo que a ti te falta saber es como se crean los objetos en delphi y eso lo puedes buscar en el manual, en el apartado

Programming with Delphi|Using the object model|Creating, instantiating, and destroying objects

// Saludos

Isuri 22-04-2009 19:42:41

Bueno quiero decir que si se crear y destruir objetos en delphi; lo que no se es que propiedades tengo asignar al MaterialLibrary despues de crearlo.

bueno gracias de todos modos

roman 22-04-2009 21:18:53

Cuando creas por código un objeto, cualquiera que éste sea, cada una de sus propiedades tendrá un valor por defecto (implícito o explícito) que, por lo general, coincidirá con el que le "asigna" el inspector de objetos cuando lo creas durante el diseño. Un par de excepciones a esto sucede con los componentes (TComponent) y los controles (TControl) ya que tienes que asignar el Owner (en el constructor) y el Parent, pero salvo esto, no debería haber gran diferencia entre crear un objeto por código o en diseño y no tendrías que preocuparte en asignar tales o cuales propiedades.

Entonces, si tú sabes crear objetos y has tenido problemas con éste en particular, deberías decirnos con mayor claridad cuáles son estos problemas, de lo contrario no hay mucho que pueda decirse, a menos claro, que llegue alguien que haya trabajado con GlScene y sepa de algún problema específico.

// Saludos

rgstuamigo 22-04-2009 21:42:33

Cita:

Empezado por Isuri (Mensaje 345759)
No he puesto ningun código porque el problema es que no se cual es el código correspondiente a la creacion de el MaterialLibrary. no se como explicar mejor mi duda; haber, estoy haciendo un programa en glscene, aqui puedo crear un MaterialLibrary donde dar texturas, color... a cada objeto de mi programa. Ésto, normalmente siempre lo he hecho a traves del object inspector (igual que cuando creas un cadencer o un timer), es decir, lo he creado en tiempo de diseño. Al igual que un cadencer, un timer, un objeto 3D...se puede crear en tiempo de ejecucion, es decir, escribiendo yo el código, quisiera saber cual es el código para crear ese MaterialLibrary. Un ejemplo de codigo para usar el MaterialLibrary (habiendolo creado en tiempo de diseño) es el siguiente:

Código Delphi [-]Bola.Material.MaterialLibrary := BiblioMateriales; Bola.Material.LibMaterialName := 'MaterialBola'; BiblioMateriales.Materials[0].Material.Texture.Image.LoadFromFile('imagebola.jpg'); BiBlioMateriales.Materials[0].Material.Texture.Disabled := false;


Con esto consigo dar al objeto bola, el material llamado 'MaterialBola', creado en la biblioMateriales en la posición 0, en tiempo de diseño. Ademas a ese material le asigno una imagen como textura. Lo que quiero saber el es código que me falta antes de eso, es decir, el crear el MaterialLibrary, que supongo será algo asi:

Código Delphi [-]BiblioMateriales := MaterialLibrary.Create;


Y como ir añadiendo materiales a esa biblioteca.

Espero haber aclarado algo, para que me podais ayudar.

Gracias.

Pues creo que debes ejecutar ese codigo que has puesto en tiempo de ejecucion y nada mas,podrias ponerlo dentro del evento de un boton,etc...algo asi:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
//claro que tu objeto Bola ya debe estar creado
//en todo caso tu mismo dijiste que sabias crearlo
//lo podrias hacer aqui;)
Bola.Material.MaterialLibrary := BiblioMateriales;
Bola.Material.LibMaterialName := 'MaterialBola';
BiblioMateriales.Materials[0].Material.Texture.Image.LoadFromFile('imagebola.jpg');
BiBlioMateriales.Materials[0].Material.Texture.Disabled := false;
end;
Saludos....


La franja horaria es GMT +2. Ahora son las 18:20:09.

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