• Lunes 20 de Mayo de 2024, 03:33

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 - takyo

Páginas: [1]
1
C/C++ / portapapeles de windows
« en: Sábado 5 de Septiembre de 2009, 23:01 »
muy buenas ando bastante perdido con el portapapeles de windows
tengo la funcion getPortapapeles y setPortapapeles.

el get funciona correctisimo pero en cambio el set no me funciona del todo bien, me explico:
aqui intento copiar y pegar lo que tenemos en el portapapeles
Código: C++
  1. main()    {
  2.     char *buffer = new char[1024];
  3.  
  4.     buffer = getPortapapeles();
  5.     setPortapapeles(buffer);// no me funciona el set
  6. }
  7.  

en cambio si solo queremos pegar al portapapeles todo va correcto
Código: C++
  1. main()    {
  2.     char *buffer = new char[1024];
  3.  
  4. //    buffer = getPortapapeles();
  5.     strcpy(buffer,"esto si que funciona");
  6.     setPortapapeles(buffer);// inserta correctamente
  7. }
  8.  

aqui las dos funciones get & set que por separado funcionan a la perfeccion pero juntas dejan mucho que desear
Código: C++
  1. char * getPortapapeles()    {
  2.        char buffer[1024];
  3.     if ( OpenClipboard(NULL) )
  4.     {
  5.         HANDLE hData = GetClipboardData( CF_TEXT );
  6.         if (!hData) return 0;
  7.         char * buffer = (char*)GlobalLock( hData );
  8.  
  9.         GlobalUnlock( hData );
  10.         CloseClipboard();
  11.         return buffer;
  12.     }
  13. return 0;
  14. }
  15.  

Código: C++
  1. setPortapapeles(char *str)    {
  2.     if (OpenClipboard(NULL))
  3.     {
  4.         HGLOBAL hClipboardData;
  5.         char * pchData;
  6.  
  7.         EmptyClipboard();
  8.         hClipboardData = GlobalAlloc(GMEM_DDESHARE, strlen(str)+1);
  9.         pchData = (char*)GlobalLock(hClipboardData);
  10.         strcpy(pchData, str);
  11.         GlobalUnlock(hClipboardData);
  12.         SetClipboardData( CF_TEXT,hClipboardData); //CF_TEXT  CF_HDROP
  13.         CloseClipboard();
  14.     }
  15. }
  16.  

alguien es tan amable de decirme porque me fallan?
gracias!!!

2
C++ Builder / Error al compilar
« en: Lunes 27 de Julio de 2009, 21:02 »
Buenas

Cuando desactivo "build with runtine packages" y "use dynamic RTL" para que mi proyecto sea portable en windows, me salta el error 1410 "esta clase ya existe" y no funciona el ejecutable
la cosa es muy rara porque cuando creo un nuevo proyecto y pongo por ejemplo dos combobox me salta el mismo error, claro esta que cuando vuelvo a marcar lo antes mencionado funciona perfectamente

alguien tiene alguna idea de porque me podria dar este problema, he buscado por la red y no he encontrado ningun caso parecido al mio :brickwall:

un saludo y gracias por atenderme

3
C++ Builder / Cambiar el nombre de la clase de un formulario
« en: Miércoles 22 de Julio de 2009, 13:43 »
Buenas

Cuando creamos un nuevo formulario los nombres de las clases que nos crea el builder son TForm1,TForm2...
algo asi
Código: C++
  1. class TForm2  : public TForm
  2. {
  3.     __fastcall TForm2  (TComponent* Owner);
  4. }
  5. extern PACKAGE TForm2  *Form2;
  6.  
Lo que busco es cambiarle el nombre a la clase para que deje llamarse TFormX y asi poder darle un poco de organización cuando tenga muchos formularios a la hora de llamarlos.

he probado sustituyendo TForm2 por TFnombre tanto en el .h como en el .cpp pero me da "error en modulo Tform: la declaracion de la clase TForm2 se ha perdido o es incorrecta"

Alguien es tan amable de decirme alguna manera de cambiar esto?
Gracias!!!

EDITO:
lapidarme, era tan sencillo como cambiarle el nombre en las propiedades del form  :brickwall:

4
C/C++ / alguna forma de saber si una variable ha sido eliminada?
« en: Martes 14 de Julio de 2009, 17:33 »
la pregunta creo que es sencilla

¿existe alguna forma de saber si alguna variable/objeto creada con new ha sido eliminada?
busco algo asi
Código: C++
  1.  
  2. Tobjeto obj = new Tobjeto
  3. ....
  4. if (obj)
  5.     delete obj
  6.  
  7.  

gracias!!!

5
C++ Builder / sobrecargas y tal
« en: Lunes 17 de Noviembre de 2008, 00:02 »
buenas

supongamos que tenemos el metodo
Código: Text
  1. CHAR * IMPRIMIR()
  2.  
que simplemente quiero que me muestre por pantalla el string y me lo devuelva por referencia hasta aqui facil con esto
Código: Text
  1. ARRAY = OBJETO.IMPRIMIR() // muestra y asigna
  2.  

pero ahora si ago esto por ejemplo
Código: Text
  1. OBJETO.IMPRIMIR() // solo muestra
  2.  
asi a secas el programa me dice que no he liberado memoria como es normal

y digo yo, hay alguna manera de arreglar esto con el mismo metodo IMPRIMIR
hay alguna forma de sobrecargar el metodo para que cuando se le asigna a otro array que imprime y asigne, y cuando se le llame sin motivo que llame a la otra funcion IMPRIMIR que solo imprima por pantalla y no devuelva nada
usease
Código: Text
  1. void IMPRIMIR()
  2. char * IMPRIMIR()
  3.  
yei gracias de antemano

Páginas: [1]