|
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 - neg1414
1
« 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) Principal() { Sumandos(11,1,6,"6 "); } Sumandos(int Nv,int i,int Sum,AnsiString s) { if(Sum==Nv) { Mostrar(s); } for (int a=Sum;a<Nv; a++) { Sumandos(Nv,i++,Sum+i,s+IntToStr(i)+" "); } }
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
« en: Sábado 25 de Abril de 2009, 17:39 »
Gracias por Contestar.... Al final lo He Hecho de la siguiente manera Clase1 { bool VectorPadre[3] ProcedEnClase2(VectorPadre);
} Código: Clase2 { //Declaro Variable Global
bool* VectorPuntero[3] ......................................
ProcedEnClase2(bool Vect[]) { *VectorPuntero = &Vect[0]; }
Sea donde sea en la Clase2 si asigno datos a la matriz VectorPuntero de la forma: Código: (*VectorPuntero)[0]=true; Estas Modificaciones se veran relflejadas en VectorPadre de la clase1 PosData: No creo que sea " hacer tantas Historias"
3
« 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 Clase1 { bool VectorOPadre[3]; }
Este vector lo paso como parametro a un procedimiento de la clase2 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; 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 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 ProcedEnClase2(bool Vect[]); { VectorGlobal=Vect;
VectorGlobal=&Vect
*VectorGlobal=&Vect } No hay Manera Laguna Idea Gracias
4
« 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: TForm2 * prueba; prueba = new TForm2(this); //Mostramos el Formulario como modal switch (prueba->ShowModal()) { case mrOk: break; }
En el evento Activate del Form2 (dependiendo de una condicion)este debe de redimensionarse (hacerse mas pequeño), pero no lo hace. Supongo que tiene que ver con el acceso modal pero no consigo solucionarlo Alguna Idea. Gracias
5
« 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.
6
« 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.
7
« 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.
8
« 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..
9
« 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)
10
« en: Viernes 30 de Mayo de 2008, 18:35 »
En primer lugar gracias por atenderme. He corregido el codigo.... Código: void __fastcall TForm1::FormActivate(TObject *Sender) { TStringList *Lista = new TStringList; Lista->Add("A"); Lista->Add("AB"); Lista->Add("AC"); Lista->Add("B"); Lista->Add("BA"); Lista->Add("C"); Lista->Sorted=true; for (int i=0;i<Lista->Count;i++) { ListBox1 ->Items->Text = Lista->Text; } } Lo he pegado,Te juro que sigue Haciendo lo mismo: Pulso la tecla A: salta a AB Pulso la tecla B: salta a BA (quiero que salte a Pulso la tecla c : Salta a C Pulso la tecla a : Salta a AB (quiero que salte a A) Alguna idea: Gracias otra vez
11
« 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. TStringList *Lista = New TStringList Lista->Add("A") Lista->Add("AB") Lista->Add("AC") Lista->Add("B") Lista->Add("BA") Lista->Add("C") ... Lista->Sorted; for (int i=0;i<Lista>Count;i++) { ListBox1 ->Items->Text = Lista->Text }
Gracias.
12
« en: Viernes 7 de Marzo de 2008, 17:19 »
Tienes toda la razon
Gracias
13
« 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 struct Datos{ short Dato1; short Dato2; short Dato3; short Dato4; } Datos Coleccion[5]; ]
con ella debo de calcular todas la combianciones posibles entre sus datos de la forma short Combinaciones[NumCombinaciones][5] //Subgeneris Combinaciones[0].[0] = Coleccion[0].Dato1; Combinaciones[0].[1] = Coleccion[1].Dato1; Combinaciones[0].[2] = Coleccion[2].Dato1; Combinaciones[0].[3] = Coleccion[3].Dato1; Combinaciones[0].[4] = Coleccion[4].Dato1; Combinaciones[1].[0] = Coleccion[0].Dato1; Combinaciones[1].[1] = Coleccion[1].Dato1; Combinaciones[1].[2] = Coleccion[2].Dato1; Combinaciones[1].[3] = Coleccion[3].Dato1; Combinaciones[1].[4] = Coleccion[4].[b]Dato2;[/b] Combinaciones[2].[0] = Coleccion[0].Dato1; Combinaciones[2].[1] = Coleccion[1].Dato1; Combinaciones[2].[2] = Coleccion[2].Dato1; Combinaciones[2].[3] = Coleccion[3].Dato1; Combinaciones[2].[4] = Coleccion[4].[b]Dato3;[/b] Asi Sucesivamente hasta completar todas las Combinaciones Combinaciones[1024].[0] = Coleccion[0].[b]Dato4;[/b] Combinaciones[1024].[1] = Coleccion[1].[b]Dato4;[/b] Combinaciones[1024].[2] = Coleccion[2].[b]Dato4;[/b] Combinaciones[1024].[3] = Coleccion[3].[b]Dato4;[/b] Combinaciones[1024].[4] = Coleccion[4].[b]Dato4;[/b]
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.
14
« en: Sábado 15 de Diciembre de 2007, 14:26 »
He encontardo el problema (Gracias Leo)
La declaracion correcta al ser un tipo definido es
MiTabla::TTabla* MiTabla::LeerTabla() { }
nota El valor retornara de la forma :
return &("Variable del tipo TTabla");
Y ya que estamos me ha surgido otro problema:
Quier usar el tipo definido en esa clase (MITabla) en otras clases sin tener que volver a definirlo
¿Se puede?
Gracias
15
« 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
16
« en: Jueves 6 de Diciembre de 2007, 19:56 »
Hola denuevo
Añado esto para que se entienda mejor
Supongamos que al pulsar un boton accedemos a un metodo donde cambiamos una propiedad del los componentes accediendo a un metodo que possen
void __fastcall TForm1::Button1Click(TObject *Sender) {
ModificarPropiedades(); }
void ModificarPropiedades() {
TComponent1->Modificar(); TComponent2->Modificar(); TComponent3->Modificar(); ........................ ..... TComponent40->Modificar(); }
17
« en: Jueves 6 de Diciembre de 2007, 19:44 »
son todos el mismo componente vcl creado por mi (40 iguales)
18
« en: Jueves 6 de Diciembre de 2007, 14:44 »
En primer lugar gracias por contestarme.
He probado tu solucion pero me ha surgido un problema:
El componente (Componentes: TComponent1, Tcomponent2...) lo he creado yo y el metodo al que llaman el grupo de componentes no es reconocido cuando realizo la llamada, de la misma forma que si reconoze el metodo clear() del TEdit del ejemplo.
((TComponentePropio*)Components)->MetodoPropio(); NO FUNCIONA
Espero Habeme explicado bien
Gracias Otra VEz
19
« 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
20
« 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
21
« 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
22
« 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
23
« en: Viernes 17 de Agosto de 2007, 16:20 »
El siguiente codigo han de agradecerselo a Cesar C. Salazar Gonzalez (Al Cesar lo que es del Cesar)
Esta es una forma de hacer un boton redondo.... saludos...
ARCHIVO BOTON.CPP Código:
//--------------------------------------------------------------------------- #include <vcl\vcl.h> #pragma hdrstop
#include "RoundButton.h" //--------------------------------------------------------------------------- static inline TRoundButton *ValidCtrCheck() { return new TRoundButton(NULL); } //--------------------------------------------------------------------------- __fastcall TRoundButton::TRoundButton(TComponent* Owner) : TButton(Owner) { FCanvas = new TCanvas; // creamos el objeto Canvas }
__fastcall TRoundButton::~TRoundButton() { delete FCanvas; // Liberamos el Canvas }
// Antes de crear el control se fijan una serie de parámetros, // entre los cuales está el estilo del botón void __fastcall TRoundButton::CreateParams(TCreateParams &Params) { TButton::CreateParams(Params); // La clase ascendiente se ocupará de establecer los parámetros generales Params.Style = Params.Style | BS_OWNERDRAW; // Nosotros indicamos que el control va a ser no estándar }
// Cada vez que Windows necesita dibujar un botón con el estilo // BS_OWNERDRAW envía este mensaje, solicitando las dimensiones void __fastcall TRoundButton::CNMeasureItem(TWMMeasureItem& Mensaje) { // Facilitamos la anchura y altura del control Mensaje.MeasureItemStruct->itemWidth = Width; Mensaje.MeasureItemStruct->itemHeight = Height; }
// Cada vez que haya que dibujar el control se llamará a este método void __fastcall TRoundButton::CNDrawItem(TWMDrawItem& Mensaje) { RECT Area; char Texto[256];
strncpy(Texto, Caption.c_str(), 255); // Copiamos el título del botón Area = ClientRect; // y obtenemos el área que tenemos de trabajo
// En el parámetro Mensaje existe una estructura DrawItemStruct, en // cuyo interior encontraremos el campo ItemState, que nos permitirá // conocer el estado del botón if (Mensaje.DrawItemStruct->itemState & ODS_SELECTED) // El botón está pulsado FCanvas->Pen->Color = clBtnHighlight; // Tomar el color destacado primero else FCanvas->Pen->Color = clWindowFrame; // en caso contrario tomar el color normal de borde
// El Handle de FCanvas será el Hdc enviado en Mensaje.DrawItemStruct, // lo que nos permitirá dibujar en la superficie del botón FCanvas->Handle = Mensaje.DrawItemStruct->hDC;
FCanvas->Pen->Width = 1; // Anchura del lapiz FCanvas->Pen->Style = psSolid; // estilo continuo FCanvas->Brush->Style = bsSolid; // Relleno sólido FCanvas->Brush->Color = clBtnFace; // con el color de los botones
// Dibujamos un contorno FCanvas->RoundRect(Area.left, Area.top, Area.right, Area.bottom, (Area.right-Area.left) * 2, (Area.bottom-Area.top) * 2);
// Intercambiar el color del lápiz FCanvas->Pen->Color = FCanvas->Pen->Color == clWindowFrame ? clBtnHighlight : clWindowFrame;
// Y dibujar la sombra interior FCanvas->RoundRect(Area.left, Area.top, Area.right-1, Area.bottom-1, (Area.right-Area.left) * 2 -2, (Area.bottom-Area.top) * 2 -2);
if (Mensaje.DrawItemStruct->itemState & ODS_FOCUS) { // Si el botón es el control actual InflateRect(&Area, -4, -4); // En el interior del área
FCanvas->Pen->Color = // Y según que esté pulsado o no Mensaje.DrawItemStruct->itemState & ODS_SELECTED ? clBtnShadow : clWindowFrame;
FCanvas->Pen->Style = psDot; // Dibujaremos una línea punteada FCanvas->Brush->Style = bsClear; // sin rellenar
// también con forma de elipse FCanvas->RoundRect(Area.left, Area.top, Area.right, Area.bottom, (Area.right-Area.left)*2, (Area.bottom-Area.top)*2);
InflateRect(&Area, 4, 4); // Devolvemos a área su valor original } // Si el botón está pulsado if (Mensaje.DrawItemStruct->itemState & ODS_SELECTED) OffsetRect(&Area, 1, 1); // Desplazar un punto el área
InflateRect(&Area, -5, -5); // Reducirla FCanvas->Font = Font; // tomar el tipo de letra seleccionado en el botón // Si el botón está desactivado y no éstá en modo de diseño if (! Enabled && ! ComponentState.Contains(csDesigning)) FCanvas->Font->Color = clBtnShadow; // utilizar el color difuminado
// y escribir el título DrawText(FCanvas->Handle, Texto, strlen(Texto), &Area, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
FCanvas->Handle = 0; // Cuando hayamos terminado Handle debe ser cero }
// Al cambiar el estado del botón void __fastcall TRoundButton::SetButtonStyle(bool ADefault) { Refresh(); // simplemente redibujar }
//--------------------------------------------------------------------------- namespace Roundbutton { void __fastcall Register() { TComponentClass classes[1] = {__classid(TRoundButton)}; RegisterComponents("Programacion C++ Builder", classes, 0); } } //---------------------------------------------------------------------------
ARCHIVO BOTON.H Código:
//--------------------------------------------------------------------------- #ifndef RoundButtonH #define RoundButtonH //--------------------------------------------------------------------------- #include <vcl\SysUtils.hpp> #include <vcl\Controls.hpp> #include <vcl\Classes.hpp> #include <vcl\Forms.hpp> #include <vcl\StdCtrls.hpp> //--------------------------------------------------------------------------- class TRoundButton : public TButton { private: TCanvas * FCanvas; // Para dibujar // Mensaje de Windows solicitando el tamaño del control void __fastcall CNMeasureItem(TWMMeasureItem& Mensaje); // Mensaje de Windows solicitando que el control sea dibujado void __fastcall CNDrawItem(TWMDrawItem& Mensaje); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(CN_MEASUREITEM, TWMMeasureItem, CNMeasureItem); MESSAGE_HANDLER(CN_DRAWITEM, TWMDrawItem, CNDrawItem); END_MESSAGE_MAP(TButton); protected: // Parámetros para la creación del control void __fastcall CreateParams(TCreateParams &Params); // Cambio del estado del botón void __fastcall SetButtonStyle(bool ADefault); public: __fastcall TRoundButton(TComponent* Owner); // Redefinimos también el el destructor __fastcall ~TRoundButton(); __published: }; //--------------------------------------------------------------------------- #endif
24
« 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
25
« 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
|
|
|