|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - Deiv
51
« en: Domingo 22 de Octubre de 2006, 22:50 »
Ok, En una TIMage creo que no habría mucho problema, pero en un TPaintBox, aquel que no tiene la propiedad Strech, ¿como se encararía?
52
« en: Domingo 22 de Octubre de 2006, 16:59 »
Gracias Robokop, en realidad me dirigía más a una imagen que hacer crecer el Form (o sea debe aparecer la imagen en un determinado lugar [coordenadas] del Form y crecer) pues de lograr esto, tendría que ver las propiedades Strech imagino cada vez que crezca la imagen verdad?
53
« en: Domingo 22 de Octubre de 2006, 00:02 »
Tengo una imagen BMP grabada en el disco de 128x128, quiero ver la forma de que esta vaya apareciendo de a poco desde un tamaño 8x8 por así decirlo hasta llegar a su tamaño normal en alguna coordenada del Form (dicho punto elegido [coordenada] debe ser el centro de la imagen para que inicie la aparición) algo así mas o menos como el efecto de Power Point (u otros programas) que tienen el efecto de transición = "Recuadro Saliente", no en si el efecto mismo sino que, la imagen vaya apareciendo cual si fuera un recuadro saliente.
¿De que me valgo de un TIMage, PaintBox?
Un Gif no quiero crear para evitarme conflictos con Delphi y usar otros componentes.
¿Como encaro esta situación?
Deiv
54
« en: Sábado 21 de Octubre de 2006, 18:55 »
Después de darle tanta vuelta al asunto he alcanzado responder a mi pregunta en un 90% creando un BitMap temporal, según el código de abajo, Cuando corro la aplicación y hago click en el primer botón funciona (me muestra un elemento de la primera fila), pero el segundo botón no me muestra nada! De nuevo vuelvo a correr la aplicación y hago click pero esta vez en el segundo botón funciona (me muestra sí un elemento de la segunda fila) pero ahora el primer botón no me muestra nada! ¿A que se debe todo esto? implementation var Bitmap, tempBmp: TBitmap; DestRect, SrcRect: TRect; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin //tempBmp contiene la primera fila del Bitmap tempBmp.Width := BitMap.Width; tempBmp.Height := Bitmap.Height div 2; DestRect := RECT(0,0,tempBmp.Width-1, tempBmp.Height-1); SrcRect:=DestRect; tempBmp.Canvas.CopyRect(DestRect, BitMap.Canvas, SrcRect); ImageList1.Width:= Bitmap.Width div 10; ImageList1.Height:= tempBmp.Height; ImageList1.AddMasked(tempBmp, tempBmp.Canvas.Pixels[0,0]); ImageList1.Draw(PaintBox1.Canvas,0,0,1); end; procedure TForm1.Button2Click(Sender: TObject); begin //tempBmp contiene la segunda fila del Bitmap tempBmp.Width := BitMap.Width; tempBmp.Height := Bitmap.Height div 2; DestRect := RECT(0,0,tempBmp.Width-1, tempBmp.Height-1); SrcRect:=DestRect; SrcRect.Top := tempBmp.Height; SrcRect.Bottom := Bitmap.Height-1; tempBmp.Canvas.CopyRect(DestRect, BitMap.Canvas, SrcRect); ImageList1.Width:= Bitmap.Width div 10; ImageList1.Height:= tempBmp.Height; ImageList1.AddMasked(tempBmp, tempBmp.Canvas.Pixels[0,0]); ImageList1.Draw(PaintBox1.Canvas,0,0,2); end; procedure TForm1.FormCreate(Sender: TObject); begin Bitmap:= TBitmap.Create; tempBmp:= TBitmap.Create; BitMap.LoadFromFile(getcurrentdir+'/Doble.BMP'); ImageList1.BkColor:=clNone; ImageList1.BlendColor:= clNone; ImageList1.DrawingStyle:= dsTransparent; ImageList1.Masked:= True; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Bitmap.Free; tempBmp.Free; end; procedure TForm1.Button3Click(Sender: TObject); begin PaintBox1.Canvas.Fillrect(PaintBox1.Canvas.ClipRect); //Borra el Canvas end; end.
Luego para corregir este problema, he creado un tercer botón para el borrado del Canvas. En el código de arriba al hacer click en el primer botón dibuja bien, luego click en el tercer botón y borra el Canvas; pero cuando click en el segundo botón me vuelve a mostrar el mismo elemento de la primera fila, y no el elemento de la segunda fila. ¿Cómo corregir este problema? Por favor.
55
« en: Martes 17 de Octubre de 2006, 19:01 »
Solucioné lo del DAT con un procedimiento de cifrado y descifrado del archivo por código, luego cargo en cualquier: TImage, TPaintBox y TImageList. Gracias muy buena la sugerencia. Y bien, he dejado Delphi unos cuantos meses (como autodidacta y novato que soy) y retomando nuevamente sobre mis dudas, estoy siguiendo los consejos de todos quienes me orientaron, ahora me nace una duda: Inclusive podrias hacer algo as'i:
TElemento = record Numero: Byte; Peso: Real; NroOxidacion: ShortInt; //-127..127 Electronegatividad: ShortInt; Imagen: TBitmap; // y cargas todo aca; end; TTablaPeriodica = array[1..120] of TElemento; end;
¿Cual sería más óptimo para encarar este trabajo y sus datos de cada elemento?: 1.- ¿Crear un Record? 2.- ¿Crear una Clase? 3.- ¿Crear una Base de Datos (digamos en Access)?
56
« en: Lunes 16 de Octubre de 2006, 02:35 »
Hola de nuevo, Alguien puede decirme por favor con que Componente Barra (OutLook) está hecho en el programa de SuperUtilities ( http://www.superlogix.net/)?, con TMSInspectorBar? TmxOutLook? GXOutlook? TBXNavBar? o acaso es un Componente creado por la misma Empresa?. Me preguntaba esto porque adjunto 3 imágenes, una la de este programa y otras (como ejemplo) de TMS, pues lo que mas me intereso es la forma como selecciona (SuperLogix) los íconos de esta Barra, cargado el ícono al seleccionar aparece un rectángulo 3D, y de las Barras que les mencioné (TMSInspectorBar, TmxOutLook, GXOutlook, TBXNavBar) no tienen ese tipo de selección, y si la tienen es, al ícono completo (ver: Barra TMS2.jpeg). Por ello preguntaba, si habría alguna forma de lograr esa SELECCIÓN Rectangular 3D en los íconos de cualquiera de las Barras de OutLook que les mencioné. Un saludo
57
« en: Lunes 16 de Octubre de 2006, 02:28 »
Hola, Tengo una imágen de 128x640 pixels (donde se encuentra dibujado una Letra cada 64 pixels en 2 filas [10 letras encima y 10 letras abajo] c/64 pixels) que lo cargo con una TImageList (cual si fuera una matriz de 10x10), el código de abajo dibujándolo en un TPaintBox : ImageList1.Draw(PaintBox1.Canvas,0,0,0) me muestra el elemento [0,0] (primero de la fila 1); lo que intento es mostrar en este PaintBox el elemento [1,1] es decir por ejemplo, el SEGUNDO elemento de la Segunda Fila de mi imagen. No sé como realizarlo ya que el ImageList no tiene la propiedad TOP, entonces no avanzo.... ¿Existe alguna forma de reducir por código el tamaño de una TImageList o en su defecto del TPaintBox por encima para que me muestre los elementos de la parte inferior de mi Imagen? var Bitmap: TBitmap; begin Bitmap:= TBitmap.Create; try BitMap.LoadFromFile(getcurrentdir+'/Doble.bmp'); ImageList1.Width:= Bitmap.Width div 10; ImageList1.Height:= Bitmap.Height div 2; //Le indico mostrar la primera fila ImageList1.Masked:= FALSE; ImageList1.Add(Bitmap,nil); finally Bitmap.Free; end; end;
58
« en: Viernes 14 de Julio de 2006, 22:42 »
Haber si entendí Si el Tmediaplayer no puede reproducir algún video es o bien por que no está instalado el codec en la máquina o por falta de alguna configuración de MCI que si preparo una aplicación debo prevenir o mejor dicho estar susceptible a que si lo van a usar en Win98 u otra que tenga WinXP (como Yo) pero que no tenga instalado lo que dijiste, que el Video no funcione? He visitado muchos Foros y no me responden, será tan complicado esta pregunta: ¿Como trabajan Uds. con un Video de corto metraje (digamos un trozo de presentación o una especie de Help) en sus Programas hechos con Delphi? (que codec de AVI?)Yo tengo instalado WinXP con SP2, y lo único que hago es en la propiedad FileName del TMediaPlayer darle la dirección de un AVI cualquiera, y simplemente al Correr el programa me sale que no se puede cargar el AVI. Así de sencillo, por ello probé muchos AVIs que tengo en el disco, y algunos los abre normal, y otros no ¿Como prevengo todo esto, para el futuro Usuario?
59
« en: Martes 11 de Julio de 2006, 14:49 »
Personalmente prefiero tenerlas afuera. para engañar al usuario, Puedes cambiarles la extencion por alguna otra *.DAT por ejemplo. Cambie la extensión de BMP x DAT, y sin ningún problema pueden recuperar ALGUNOS programas manejadores de Imágenes (Paint por ejemplo) pero desde ya es una buena idea para engañar al usuario. ¿Y como lo llamo a un DAT desde Delphi? Solo probé con una TIMage y en la propiedad "Picture" no tiene la opción para cargar un DAT. ¿Como trabajo los DATs en Delphi con una TImage, TPaintBox y TImageList? Saludos!
60
« en: Martes 11 de Julio de 2006, 14:45 »
¿Con que PROGRAMAS realizan Uds. sus AVIs para recuperarlo con el TMediaPLayer de Delphi? en la propiedad FileName? O ¿Como trabajan con un Video de corto metraje (digamos un trozo de presentación o una especie de Ayuda) en sus Programas hechos con Delphi? (que codec de AVI?)
61
« en: Lunes 10 de Julio de 2006, 16:14 »
Hola, Inicialmente pensé que el componente del TMediaPlayer abría cualquier AVI, me parece que abre solo determinados formatos (es decir existen AVIs que se pueden grabar en diferentes formatos), pues tengo varios AVIs en el Disco (pequeños y grandes) algunos abre y otros no ¿a que se debe?.
Mi pregunta: ¿Con que PROGRAMAS realizan Uds. sus AVIs para recuperarlo con el TMediaPLayer de Delphi? en la propiedad FileName?
Algunos programas te permiten grabar un AVI en formato antiguo, comprimido, descomprimido, etc, etc. ¿Cual es el Codec (formato) adecuado para grabar un AVI y recuperarlo con el TMediaPLayer?
¿Tiene algún límite de tamaño el AVI para que el TMediaPLayer lo pueda recuperar?
Saludos
62
« en: Viernes 7 de Julio de 2006, 16:20 »
Enko, primero que nada muchas gracias, por responder, siempre lo has hecho a todas mis preguntas. Muy notable tu dominio en química. Tu explicación muy buena la aplicaré mas adelante, cuando termine de construir todos los íconos y de repente ahí tenga muchas preguntas.
Me parece que no planteé bien mi pregunta y no me he dejado entender.
No debí preguntar si ocupa espacio o no, debí preguntar ¿como se vuelve mi aplicación cuando engordo el ejecutable con RES que contienen varios iconos? ¿lenta, normal? ¿es beneficioso o no? ¿Cual la diferencia si guardo en un Directorio todos los iconos bajo el riesgo de ser copiado (ni modo) corre mejor mi aplicación?
- Hable también de DLLs que si tuviera en grupos de dlls los íconos o imágenes, ¿Correría más rápida mi aplicación o sería igual?
¿Cual es el camino más óptimo, o es igual guardar en un RES engordado el ejecutable que guardarlo todo en un directorio a todos los íconos e imágenes, o en dlls? . Perjudico si engordo al ejecutable?
63
« en: Viernes 7 de Julio de 2006, 01:04 »
Hola,
¿Alguien conoce alguna página donde obtener un Tutor de InstallShield? Básicamente cual es el proceso de trabajo de este programa para empaquetar mi aplicación creada en Delphi?
¿De que archivos me valgo? ¿Directorios? ¿imágenes, íconos?, etc. o InstallShield lo detecta automáticamente? Gracias
64
« en: Viernes 7 de Julio de 2006, 00:53 »
Mi duda es la siguiente, ¿Cuan bueno o No beneficioso es engordar una aplicación (ejecutable) de Delphi?, Todos sabemos, que por evitar ser pirateados algunos íconos, Imágenes, o Sonidos lo trabajamos con arcvhivos RES verdad?.
¿Cuan beneficioso sería introducir en un RES 200 íconos 32x32? ¿Cuan beneficioso sería introducir en un RES 200 imágenes BMP 64x64? Y como adimento digamos unas 5 imágenes BMP grandes (800x600) para fondos y otros.
TOTAL = 405,
Tal vez no me quedaría otra que tenerlos en un directorio y evitar engordar el Ejecutable, pero con la probabilidad que más adelante lo descarguen éstas imágenes e íconos que me costó construirlos.
Si hablé de una cantidad de 200, es por la sencilla razón de crear una Tabla Periódica Química y para otros trabajos jalándolos y mostrar después de un posterior cálculo en mi aplicación. Me sugerieron guardar en dll, pero acaso no existen programas que recuperan íconos de una dll? (pues estaríamos en lamisma situación) y si no fuera así como realizo este proceso? ¿Afecta en algo engordar el ejecutable, se vuelve lento, no pasa nada? ¿Cual sería el mejor planteamiento?
Gracias espero vuestras sugerencias
65
« en: Martes 13 de Junio de 2006, 19:44 »
Me parece que son dos cosas diferentes. Haber,
1.- BitMap. ¿Como se entiende colocar diferentes colores de transparencia? (adjunto un BitMap) verán que el fondo del mismo predomina un celeste tenue, Si coloco la transparencia en true a una TIMage que lo va a cargar, o por código: BitMap.Transparent:=true; No veo esa transparencia. Y a pesar que se puede elegir colores, como BitMap.TransparentColor:= clSkyBlue; TAMPOCO! ¿Que no entiendo? ¿que hago mal? ¿de que color debe ser el fondo para ser transparente?
2.- Iconos. Lo propio no obedece la propiedad transparencia si el Icono no es "hueco" (es decir de fondo nada) Yo construyo mis iconos con Freehand o Corel Draw, los exporto a formato a BMP (cuando los abro con el Visor de Windows noto que el fondo se quedó de color blanco) luego lo convierto con un Conversor de BMP a ICO, posteriormente utilizo MicroAngelo o IconCool para borrar ese fondo blanco (o aveces con ese Conversor dándole la opción de transparency=white) este proceso me es muy largo para lograr en Delphi que funcione la propiedad Transparent=true en el ícono. ¿Existe alguna otra forma?
66
« en: Lunes 5 de Junio de 2006, 00:42 »
Hola!
Acabo de darme cuenta que en Delphi se puede manejar trozos de un BMP (Números graficados por así decirlo=0123456789 dibujados en un solo BMP [con una determinada altura y ancho]) y que estos se puedan mostrar en un TPanel o TPaintBox, solo cierta parte. Vi esto en una Aplicación como ejemplo pero ejecutable ¿Como se realiza este proceso?
1.- Me explico: por así decirlo necesito mostrar solo el "4" y el "9" adyacentemente de la "Cadena BMP" = '0123456789' (gráficado) ¿como lo hago?
2.- De mostrarlo, ¿como simular un parpadeo (blinkado) con un trozo de BMP, el "4" (parpadeando) por así decirlo y el "9" nada que ver?
3.- ¿Donde es más adecuado (óptimo) mostrar este trozo de BMP? ¿En un TPanel? ¿En un TPaintBox? ¿En un TIMage? ¿En un TForm directamente? ¿Es indiferente según necesidades?
Saludos
67
« en: Sábado 4 de Febrero de 2006, 16:01 »
Hola, Yo también soy nuevo en el Foro (muy nuevo) y también soy Novato, pero a mi me colaboran bastante a mis preguntas, y según mis alcances de conocimiento en el caso de presentarse una ayuda, respondo. ¿Que tanto conoces a Delphi?, ¿Sabes lo que es un Componente? Demas esta decir que esta es mi primera incursion en delphi pues lo que necesitas es eso, un Componente de ese tipo. Da la casualidad que estoy trabajando con una aplicación donde requería lo que tu pides, busqué tanto y pregunté mucho en los Foros, pero al final lo conseguí. En este momento no recuerdo de que página lo puedes bajar, pero tengo justo aquel componente que mencionas en casa, si me confirmas que aún lo necesitas y me confirmas que conoces como se maneja un Componente, entonces en un par de días puedo enviarte la dirección o el Compo. Un saludo
68
« en: Domingo 29 de Enero de 2006, 16:23 »
Mi poca experiencia en gráficos no me permite entender tu explicación Amilius, he implementado el PaintBox para definir el área de movimiento de mi BMP, pero no entiendo como hacerlo mover (como invalidar el TPaintBox, como dices), en el siguiente código me sigue redibujando una y otra vez sobrepintándose: type TForm1 = class(TForm) PaintBox1: TPaintBox; BitBtn1: TBitBtn; Timer1: TTimer; procedure BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormDestroy(Sender: TObject); var Form1: TForm1; G:TBitMap; i:integer=0; implementation {$R *.dfm} procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Timer1.Enabled:=true; end; procedure TForm1.FormCreate(Sender: TObject); begin G:= TBitMap.Create; G.LoadFromFile('E:\molecule14.bmp'); end; procedure TForm1.Timer1Timer(Sender: TObject); begin PaintBox1.Canvas.Draw(10+i,10,G); i:=i+2; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Timer1.Enabled:=false; i:=0; end; procedure TForm1.FormDestroy(Sender: TObject); begin G.Free; end; end.
Agradeceré una vez mas su orientación. Saludos
69
« en: Martes 24 de Enero de 2006, 16:11 »
Deseo hacer mover una imagen de izquierda a derecha o viceversa, inicialmente intenté con un TImage, luego con un TBitMap como muestro abajo al evento de un Button OnMouseMove, el primero me parpadea la imagen, el segundo no borra el BitMap. type TForm1 = class(TForm) Button1: TButton; Image1: TImage; Timer1: TTimer; procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Timer1Timer(Sender: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Timer1.Enabled:=true; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Image1.Left:=Image1.Left + 4; if Image1.Left+Image1.width >= Form1.width then Timer1.Enabled:=false; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Timer1.Enabled:=false; end; end.
LUEGO ME RECOMENDARON UTILIZAR UN TBitMap, PARA EVITAR EL PARPADEO Y ASÍ LO HICE, PERO AQUÍ TENGO EL PROBLEMA DE QUE CONSTANTEMENTE ME REDIBUJA, NO PUEDO HACER QUE UN RATO DIBUJE y luego se Borre (MOVERSE) var Form1: TForm1; i:integer=0; implementation {$R *.dfm} procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin G:= TBitMap.Create; G.LoadFromFile('E:\molecule14.bmp'); Timer1.Enabled:=true; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Canvas.Draw(10+i,10,G); i:=i+2; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Timer1.Enabled:=false; i:=0; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin G.Free; end; end.
¿Como lo soluciono?Saludos
70
« en: Domingo 15 de Enero de 2006, 22:14 »
Hola, Una consulta, y aclaro que todo esto me está pasando por novato, ¿Como puedo colocar un texto por código en un PaintBox, donde cada letra (casi) vienen o responden a un cálculo, y además colocar con diferentes TOPs? Bueno, lo que sucede es que por ejemplo quise emplear el uso de Labels en un principio, pero me complicaba cuando el texto a escribir era ' ' (nada) y aún así Delphi me dejaba un cierto espacio. Lo que requiero es que el texto salga UNIDO y sin espacios.
Verán por ejemplo necesito mostrar (después de un cálculo) (como ejemplo) fórmulas químicas: K-2-S-O-4, Fe-''-Te-O-3, Na-''-Cl-O-'', Hice a propósito la separación con guiones para que se me entienda, pues en realidad no puedo mostrar en este post SUBÍNDICES de: K2SO4, FeTeO3 Y NaClO, notarán que en algunos no existe letras (Subíndices) y en otros el Símbolo es de dos letras (Na, Fe) a diferencia de Potasio=K.
Mi pregunta para el Foro no es "La Química", es ¿Como colocar en un PaintBox esos textos donde cada letra "K", "Fe", "Te", etc (cada uno) que vienen de un cierto cálculo, y además mostrar NÍTIDAMENTE los SUBÍNDICES que también vienen de otro cálculo, pero colocarlo en el PaintBox con diferente TOP y se note como subíndice? Gracias, estaré atento a vuestras sugerencias. Un Saludo
71
« en: Sábado 14 de Enero de 2006, 15:49 »
Hola, Participo por primera vez en el Foro, espero conocer mucha gente por aca y valorar vuestra experiencia en Delphi.
No hace mucho me preguntaba como obtener un color diferente de selección en un ListBox o ComboBox independientemente de aquel que viene por defecto en Windows-Apariencia, pero creo que debería de empezar a preguntar ¿Como puedo crear un rectángulo pequeño CON UN COLOR DEGRADADO y sin borde?, ya que obteniendo esta respuesta quizá lo pueda acomodar a la investigación de modificar la selección que presentan los componentes ListBox o ComboBox y convertirlo en degradado , no se si me estoy liando, pero la finalidad es obtener un ListBox, ComboBox o un Componente Menú tipo del Programa Super Utilities 6.0 con selecciones degradadas al mover el mouse. Alguna sugerencia? Un saludo.
|
|
|