• Lunes 4 de Julio de 2022, 11:28

Mostrar Mensajes

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.


Temas - neg1414

Páginas: [1]
1
Diseño de Algoritmos / Descomponer sumatorio de un numero
« en: Jueves 20 de Mayo de 2010, 18:00 »
Buenas:

 Lo que intento es descomponer un numero en todos sus sumatorios pero siendo la primera cifra siempre la misma, es decir
por ejempol Numero 11,Primera cifra 6

 6-1-1-1-1-1
 6-1-1-1-1-2
 6-1-1-2-1
 6-1-1-3
 ......
.......
 6-2-1-1-1
 6-2-2-1
 6-2-3
 .....
 .....
6-5


He creado el siguiente algoritmo recursivo (en C)

Código: C++
  1. Principal()
  2.    {
  3.         Sumandos(11,1,6,"6 ");
  4.    }
  5.  
  6. Sumandos(int Nv,int i,int Sum,AnsiString s)
  7. {
  8.    if(Sum==Nv)
  9.     {
  10.       Mostrar(s);
  11.     }
  12.  
  13.    for (int a=Sum;a<Nv; a++)
  14.     {
  15.       Sumandos(Nv,i++,Sum+i,s+IntToStr(i)+" ");
  16.     }
  17. } 
  18.  

Pero el resultado solo es:

6 1 1 1 1 1
6 1 1 1 2
6 1 1 3
6 1 2 2
6 1 4
6 2 3
6 5

Me faltan combinaciones ejp  6-2-2-1

Alguna idea Gracias

2
C++ Builder / Paso Vector por refernecia
« en: Sábado 25 de Abril de 2009, 13:37 »
Buenas..

  MI problema es el siguiente Tengo dos clases : clase1, Clase2

  En la primera clase creo un array booleano de 3 elementos

Citar

 Clase1
 {
 bool VectorOPadre[3];
 }

  Este vector lo paso como parametro a un procedimiento de la clase2
Citar
Clase2
 {
  ProcedEnClase2(VectorPadre);
 }
 
  En la clase 2  el procedimiento recibe el vectorPadre como parametro,lo modifica y al ser un paso por referencia esos cambios se plasman en VectorPadre una vez vuelvo a Clase1;

Citar
Clase2
 {
     ProcedEnClase2(bool Vect[]);
      {
         Vect[0]=true;
         Vect[1]=true;
         Vect[2]=true;
      }
}

Hasta aqui todo bien mi problema surge cuando, En la clase2 trabajo con el vector pasado desde clase1 en otros procediminetos,Obviamente me da un error por que la variable pasada es Local,solo puedo trabajar con ella en el procedimiento que la recibe como parametro..
Como solucion pense en crear una vector booleano variable Goblal
Citar
Clase2
{
   bool VectorGlobal[3]
}

Inicializarlo  apuntando este  a la direccion de comienzo del Vector pasado como referencia (VectorPadre) con lo cual al modificar el VectorGlobal estory modificando VectorPadre.He probado con

Citar
    ProcedEnClase2(bool Vect[]);
      {
         VectorGlobal=Vect;

         VectorGlobal=&Vect

         *VectorGlobal=&Vect
      }


No hay Manera Laguna Idea  Gracias

3
C++ Builder / Problema tamaño Form
« en: Sábado 29 de Noviembre de 2008, 12:22 »
Buenas, mi problema es el siguiente:

Desde un Form1 accedo a otro Form2 mediante la forma modal:

Código: Text
  1.  
  2. TForm2 * prueba;
  3.  
  4. prueba = new TForm2(this);
  5.  
  6. //Mostramos el Formulario como modal
  7. switch (prueba->ShowModal())
  8. {
  9. case mrOk:
  10. break;
  11. }
  12.  

En el evento Activate del Form2 (dependiendo de una condicion)este debe de redimensionarse (hacerse mas pequeño),

Código: Text
  1. Form2->Height =xxx
  2.  

pero no lo hace.

Supongo que tiene que ver con el acceso modal pero no consigo solucionarlo
Alguna Idea.


Gracias

4
C++ Builder / Interrumpir que se "refresque" componente
« en: Jueves 13 de Noviembre de 2008, 12:40 »
Mi Pregunta es si es posible evitar que un elemento  "refresque" su imagen (Supongo que sera evitar que se ejecute el evento ONPaint)
 Por ejemplo creo que al salir del evento KeyDown se repinta la Imagen del componente y me gustaria evitarlo.

Gracias.

5
C++ Builder / Retardo mostrar Form
« en: Martes 21 de Octubre de 2008, 15:53 »
Buenas:

  Tengo un programa que al iniciarse muestra en pantalla un menu (Form Principal),El caso es que en el evento Form Activate  el programa lee una gran cantidad de datos de un archivo, lo que le lleva un monton de tiempo.....Esto produce que del formulario menu se muestre en principio una parte (los bordes) y al rato (una vez leidos los datos del archivo) el resto del form (las opciones menu).

Es posible hacer que lea primero todos los datos y despues muestro el form completo .

Espero que me haya explicado Bien.

Gracias.

6
C++ Builder / Duda con con el evento MouseDown
« en: Domingo 5 de Octubre de 2008, 09:53 »
Buenas (Haber si me explico)

 He creado un componente Timagen.
 En este componente se cargaran tres imagenes.

  1. La imagen predeterminada.

  2. Se cargara esta imagen cuando se pulse el boton Izquierdo del boton y se mostrara mientras siga pulsado el boton    
      izquierdo del raton

 
  3. Se cargar esta imagen cuando se deje de pulsar le boton Izquierdo del Raton

 
 Lo intente con el evento  MouseDown pero al pulsar el boton izquierdo del raton me carga directamente la 3 imagen aunque mantenga el boton del raton pusado.

Alguna Idea Gracias.

7
C++ Builder / Problemas al mostrar texto
« en: Miércoles 23 de Julio de 2008, 09:08 »
Estoy mostrando texto usando el objeto TCanvas de la forma:

Canvas->TextOut(x,y,"Text").

El texto me lo muestra,el problema radica en que el texto mostrado contiene un fondo Blanco....Cada letra esta rodeada de un contorno cuadrado blanco.
(Las letras no tienen fondo transparente)
Como puedo solucionarlo....

Gracias.

PosdTdata: el tipo letra que uso es Arial..

8
C++ Builder / Tamaño Tedit
« en: Miércoles 18 de Junio de 2008, 18:05 »
En  fase e diseño eh colocado varios tedit con un tamaño bastante pequeño
(13x14).Una vez colocados todos Guardo y salgo.
Cuando viuelvo a carga el programa, el tamaño de los TEdits me ha cambiado son mas grandes
Alguna Idea.......

Gracias

Nota: Si copio un Tedit con el tamaño pequeño y lo pego en el form el nuevo se muestra con un tamaño mayor (justamente el tamaño en el que me aparecen todos al cargar de nuevo el programa)

9
C++ Builder / Problemas Con Listbox
« en: Jueves 29 de Mayo de 2008, 19:08 »
Buenas:

Dentro de un Listbox cuyos elementos estan ordenados alfabeticamente al pulsar una tecla alfanumerica el item que me selecciona es siempre el segundo del grupo de items que empiezen por la tecla pulsada..nunca el primero (a mi os aseguro que me pasa) .

Alguien sabe porque y como puedo hacer que la posicion sea el primeros del grupo de items que empiezen por la tecla pulsada.


Código: Text
  1.  
  2.  
  3. TStringList  *Lista  = New TStringList
  4.  
  5.      Lista-&#62;Add(&#34;A&#34;)
  6.      Lista-&#62;Add(&#34;AB&#34;)  
  7.      Lista-&#62;Add(&#34;AC&#34;)
  8.      Lista-&#62;Add(&#34;B&#34;)
  9.      Lista-&#62;Add(&#34;BA&#34;)
  10.      Lista-&#62;Add(&#34;C&#34;)
  11.      ...
  12.  
  13.      Lista-&#62;Sorted;
  14.  
  15.  
  16.      for (int i=0;i&#60;Lista&#62;Count;i++)
  17.        {
  18.            ListBox1 -&#62;Items-&#62;Text = Lista-&#62;Text
  19.        }
  20.  
  21.  


Gracias.

10
C++ Builder / Algoritmo Calcular Combinaciones
« en: Jueves 6 de Marzo de 2008, 20:33 »
Buenas, Haber si me explico:

 
Tengo una serie de datos que he guardado de la forma siguiente

Código: Text
  1.  
  2.  
  3.   struct Datos{
  4.      short Dato1;
  5.      short Dato2;
  6.      short Dato3;
  7.      short Dato4;
  8.   }
  9.  
  10.   Datos Coleccion[5];
  11.  
  12. ]
  13.  

 con ella debo de calcular todas la combianciones posibles entre sus datos
de la forma


Código: Text
  1.  
  2.  
  3.   short Combinaciones[NumCombinaciones][5]  //Subgeneris
  4.  
  5.  
  6.   Combinaciones[0].[0] =  Coleccion[0].Dato1;
  7.   Combinaciones[0].[1] =  Coleccion[1].Dato1;
  8.   Combinaciones[0].[2] =  Coleccion[2].Dato1;
  9.   Combinaciones[0].[3] =  Coleccion[3].Dato1;
  10.   Combinaciones[0].[4] =  Coleccion[4].Dato1;
  11.  
  12.   Combinaciones[1].[0] =  Coleccion[0].Dato1;
  13.   Combinaciones[1].[1] =  Coleccion[1].Dato1;
  14.   Combinaciones[1].[2] =  Coleccion[2].Dato1;
  15.   Combinaciones[1].[3] =  Coleccion[3].Dato1;
  16.   Combinaciones[1].[4] =  Coleccion[4].[b]Dato2;[/b]
  17.                  
  18.  
  19.   Combinaciones[2].[0] =  Coleccion[0].Dato1;
  20.   Combinaciones[2].[1] =  Coleccion[1].Dato1;
  21.   Combinaciones[2].[2] =  Coleccion[2].Dato1;
  22.   Combinaciones[2].[3] =  Coleccion[3].Dato1;
  23.   Combinaciones[2].[4] =  Coleccion[4].[b]Dato3;[/b]
  24.                  
  25.  
  26.   Asi Sucesivamente hasta completar todas las  Combinaciones
  27.  
  28.  
  29.   Combinaciones[1024].[0] =  Coleccion[0].[b]Dato4;[/b]
  30.   Combinaciones[1024].[1] =  Coleccion[1].[b]Dato4;[/b]
  31.   Combinaciones[1024].[2] =  Coleccion[2].[b]Dato4;[/b]
  32.   Combinaciones[1024].[3] =  Coleccion[3].[b]Dato4;[/b]
  33.   Combinaciones[1024].[4] =  Coleccion[4].[b]Dato4;[/b]
  34.  
  35.  
  36.  
  37.  



Para realizar estas operaciones solo se me ocurre mediante bucles Anidados (uno por cada coleccion en total 5) pero surge aqui un problema:

 No se APRIORI  cuantas colecciones tendran datos por lo cual  puede que no necesitare los 5 bucles anidados: Si solo hay tres colecciones la dimension Combinaciones es: Combinaciones[64][5] y solo necesitare 3 bucles.
 

Hay algun algoritmo que solucione este problema

Gracias espero haberme explicado bien.

11
C++ Builder / Problemas Con Parametro Funcion
« en: Jueves 13 de Diciembre de 2007, 16:00 »
Buenas

Dentro de una Calse dreado un tipo que viene a ser una Tabla de enteros  de la forma

class MiTabla;

private:

typedef  int TTabla[14][14];

He  creado una funcion que me devolvera  un dato de este tipo

public:

TTabla  *LeerTabla()

Hata Aqui todo bien.....

El problema surge a la hora de implementar la funcion

TTabla *MiTabla::LeerTabla()
{
}

Me da error "Declaration syntax error"

He probado con
TTabla  **LeerTabla()
TTabla **MiTabla::LeerTabla()
idem

Alguna Idea

Gracias

12
C++ Builder / Cambiar Propiedad De Varios Componentes
« en: Miércoles 5 de Diciembre de 2007, 15:43 »
Buenas

  El caso es que tengo varios Componentes del mismo tipo a los que he denominado de la forma:

  TComponent1
  TComponent2
  TComponent3
  .......
  TComponent40

  Segun la eleccion del usuario se ejecuta un metodo "CambiarCaption" en la que  se llama a un procedimiento propio del Componente  (la mima llamada para cada componente)


  CambiarCaption()
  {
  TComponent1->Procedimiento();
  TComponent2->Procedimiento();
  TComponent3->Procedimiento();
     .............................
  TComponent40->Procedimiento();

   }
 
  Mi pregunta es la siguiente: Al ser el procedimiento a ejecutar igual para todos los
Componentes seria posible Evitar la tediosa operacion de ir enumerando uno a uno todos los componentes con su respectiva llamada y hacerlo de una manera mas comoda


Gracias

13
C++ Builder / Crear Nuevo Componente Vcl Visual
« en: Miércoles 24 de Octubre de 2007, 17:14 »
Buenas :

  Estoy intentando crear mi primer componente VCL (VISUAL) lo derivo de la clase customControl (sera interactivo con el usuario)
  El caso es que lo "creo" logrando que me aparezca en la paleta Standard el icono correspondiente. se supone que al anadirlo en un form en principio deberia de aparecer un rectangulo (de 100x150) con borde "ES SOLO UNA PRUEBA " pero na de na.

os dejo el codigo del componente haber si me podeis ayudar

#ifndef ComponenteH
#define ComponenteH
//---------------------------------------------------------------------------
#include <SysUtils.hpp>
#include <Classes.hpp>
#include <Controls.hpp>
#include <Forms.hpp>
#include <StdCtrls.hpp>


//---------------------------------------------------------------------------
class PACKAGE TComponente : public TCustomControl
{

private:

 TCanvas *FCanvas; //Para Dibujar

 //Mensaje de Windows solicitando el Tamano del control
 void __fastcall CNMeasureItem(TWMMeasureItem& Mensaje);

 //Mensaje de Windows solicitando el tamano del control
 void __fastcall CNDrawItem(TWMDrawItem& Mensaje);

 BEGIN_MESSAGE_MAP
   MESSAGE_HANDLER(CN_MEASUREITEM,TWMMeasureItem,CNMeasureItem);
   MESSAGE_HANDLER(CN_DRAWITEM,TWMDrawItem,CNDrawItem);
 END_MESSAGE_MAP(TCustomControl);

protected:

 //Parametros para la creacion del Compnente
 void __fastcall Parametros (TCreateParams &Parametro);

 //Cambio el estado del Componente
 void __fastcall EstadComponent (bool ADefault);

 public:
        __fastcall TCeldaResultados(TComponent* Owner);


__published:

};
//---------------------------------------------------------------------------





#include <vcl.h>

#pragma hdrstop

#include "Componente.h"
#pragma package(smart_init)

static inline void ValidCtrCheck(TComponente *)
{
        new TCeldaResultados(NULL);
}



//---------------------------------------------------------------------------
__fastcall TComponente ::TComponente (TComponent* Owner)
        : TCustomControl(Owner)
{
    FCanvas = new TCanvas; //Creamos el objeto camvas
}



//---------------------------------------------------------------------------
//Fijamos una serie de parametros antes de crear el componente

void __fastcall TComponente ::Parametros (TCreateParams &Parametro)
{
  Parametro.Width  =100;
  Parametro.Height =150;
  //Indicamos que el control va a ser definido por el rogramador
  Parametro.Style = Parametro.Style | BS_OWNERDRAW;
}


//---------------------------------------------------------------------------
//Cada vez que Windows necesita dibujar el componente
//BS_OWNERDRAW envia este mensaje,solicitando las dimensiones

void __fastcall TComponente ::CNMeasureItem(TWMMeasureItem& Mensaje)
{
  //Facilitamos la anchura y altura del control
  Mensaje.MeasureItemStruct->itemWidth  = Width;
  Mensaje.MeasureItemStruct->itemHeight = Height;
}


//---------------------------------------------------------------------------
//Cada vez que halla que dibujar el control se llamara a este metodo

 void __fastcall TComponente ::CNDrawItem(TWMDrawItem& Mensaje)
{

   RECT Area;
   char Texto[256];
   strncpy(Texto,Caption.c_str(),255); //Copiamos el titulo del boton
   Area = ClientRect; //Obtenemos el area de Trabajo

   // Tomar el color normal del borde
   FCanvas->Pen->Color = clWindowFrame;

   //El Handle de FCanvas sera el que nos permita dibujar
   FCanvas->Handle = Mensaje.DrawItemStruct->hDC;

   //Anchura del Lapiz
   FCanvas->Pen->Width =2;

   //Estilo lapiz continuo
   FCanvas->Pen->Style = psSolid;

   //Relleno solido
   FCanvas->Brush->Style = bsSolid;

   //color
   FCanvas->Brush->Color=clBtnFace;

   //Dibujamos un contorno
   FCanvas->Rectangle(10,10,20,20);

   //Cuando Hallamos terminado Handle debe de ser cero
   FCanvas->Handle = 0;
}



//---------------------------------------------------------------------------
//Al cambiar el estado del componente

void __fastcall TComponente ::EstadComponent (bool ADefault);
{
  Refresh(); //Redibujar
}

//---------------------------------------------------------------------------
namespace Componente
{
        void __fastcall PACKAGE Register()
        {
                 TComponentClass classes[1] = {__classid(TCeldaResultados)};
                 RegisterComponents("Standard", classes, 0);
        }
}


Gracias

14
C++ Builder / Duda Componente Updown
« en: Lunes 17 de Septiembre de 2007, 11:51 »
Como puedo saber  si en un componente UpDown se ha pulsado la flecha arriba o la flecha abajo

Gracias

15
C++ Builder / Tstringlist : Modificar Un Item En Particular
« en: Sábado 25 de Agosto de 2007, 19:06 »
Buenas

 Como puedo modificar por elemplo el tercer item de un TstringList (modificar su texto)

Gracias

16
C++ Builder / Alinear El Texto De Un Tedit A La Derecha
« en: Martes 14 de Agosto de 2007, 18:13 »
Buenas:

   Como se puede alinear el Texto de un Edit a la derecha en tiempo de Ejecucion

   Gracias

17
C++ Builder / Puedo Cambiar La Imagen De Un Componente Vcl ??
« en: Viernes 10 de Agosto de 2007, 18:14 »
Buenas :
   
 Al  crear un nuevo Componenente VCL tomando como base otro ya existente se puede modificar tanto sus propiedades como eventos, mi pregunta es si ademas se puede cambiar su aspecto visual.
Por ejemplo el tipico cuadrado de un CheckBox convertirlo en un circulo......

Si es posible me gustaria saber como


Gracias

18
C++ Builder / Cambiar El Color De Un Item En Un Listbox
« en: Domingo 15 de Julio de 2007, 10:43 »
Buenas

LLevo cierto tiempo queriendo cambiar el color de un item de un listbox en tiempo de ejecucion y no lo logro

La idea es que al selecionar un item de un ListBox este se "Inhabilita" una de las consecuencias es que cambie de color..

Para ello he creado un vector booleano con numero de elmentos igual al de items asi cada vez que se selecciona un Item pongo la posicion que se corresponde en el vector a false. (Hata aqui todo bien)

En el Evento DrawItem he puesto la siguiente condicion:

if (VectorSeleccionados[Listbox1->ItemIndex] = false)
{
Listbox1->Canvas->Brush->Color = static_cast(....);
}

Al compilar pone error : Style of funtion definition is now obsolete

He probado con:

Listbox1->Canvas->Font->color = clGreen ;

no me da error pero no hace nada de nada.

Espero que me podais ayudar
Gracias.

Responder Con Cita

19
C++ Builder / Ansistring Y Archivos Binarios
« en: Viernes 8 de Junio de 2007, 17:02 »
Buenas:

Tengo una Estructura (en realidad es un Objeto pero para el caso es lo mismo ) de la forma

struct ejemplo
{
AnsiString Nombre;
short edad;
int dni;
............................
................

}

El caso es que creo un archivo binario para guardar los datos.
Los guardo no me da nigun error.

Mi problema es cuando quiero leer los datos del archivo, todos me los lee perfectamente(los ha guardado correctamente) excepto los declarados con el tipo AnsiString que me devuelve  "" (nulo)

Cual es el problema: No puedo guardar un dato del tipo AnsiString directamente en un archivo binario?

Si es asi que debo hacer si no quiero cambiar el tipo.

Espero Haberme explicado bien

gracias

20
C++ Builder / Posicion Tmainmenu
« en: Lunes 7 de Mayo de 2007, 17:47 »
Hola

Quiero crear un form que tiene un MainMenu tipico: Archivo,Editar,Ver....Al crearlo la posicion del menu es siempre (o eso creo) en la misma posicion: cordenada origen (0,0)
del Form.
Yo como soy un poco raro lo que quiero es que sobre el MainMenu esten una serie de opciones (botton,Label...).
Mi pregunta es la siguiente Es posible Hacer lo que deseo (Posicionar el Main Menu donde yo quiero)

Espero haberme explicado bien

Gracias

Páginas: [1]