elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Temas
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14
51  Programación / Programación Visual Basic / [Reto] Show My Source Code. en: 19 Febrero 2011, 09:17 am
.
Realizar un Codigo fuente que se imprima a si mismo exactamente SIN EXCEPCIÓN ALGUNA, de manera EXACTA (cadenas declaraciones procesos, etc.).

* De 1 a l 10 en conocimientos donde 1 sabe manejar y se sabe las condiciones del lenguaje, como minimo 4.
* El codigo imprimido puede ser porun msgbox impresora, por un Debugger, un archivo de texto ne fin solo que devuelva su propio codigo fuente ( Recomiendo hacerlo en el Sub main() ).
* NO VALE LEER ARCHIVOS EXTERNOS de ninguna indole.

Publicar su codigo el dia 26/02/2011 ( en este día publicare mi código ) , esto es solo para dar tiempo para que piensen como hacerlo, y que no vean otros un codigo fuente y se inspiren en el, USEN SU MATERIA GRIS!¡.

--------------------

* No vale extraer el codigo fuente de otro lado externo a el programa, recurso, etc debera ser un codigo simple.
* Si tu codigo hace mension a una dll externa igual cuenta como codigo del mismo programa, asi que cuidado con los mañosos.
* Como vez dice A SI MISMO, debera ser lo mismo si esta o no esta compilado, es decir que si funciona en el IDE pero no en un exe no vale.
* En otras palabras si haces un Addin vas a tener que mostrar el codigo fuente del Addin no hay otra. si lo compilas te devera mostrar el codigo fuente original, si lo ejecutas debera realizar lo mismo; es decir

Si tu codigo fuente es:

Código:

Código
  1.  
  2.  
  3. sub main()
  4.    codigo
  5. end sub
  6.  
  7.  

El programa al ejecutarlo debera mostrarte su mismo codigo es decir TODO Sub main() con TODO lo que haya dentro y fuera de el mismo, si metes modulo, clases, comentarios funciones procesos, de igual manera.

La cosa es pensar, en como rayos hacerlo pero de que se puede se puede NO hay que manejar APIS estructuras ni nada similar, es solo y unicamente LÓGICA.


---------------

Debido a los amigos que dieron demasiados detalles ahora el limite de tiempo ya no tiene caso.

La parte comentada es mi codigo resultante.
Código
  1.  
  2. Sub main(): Const s As String = "Sub main(): Const s As String = @: msgbox Replace$(s, Chr(64), Chr(34) & s & Chr(34)): End Sub": MsgBox Replace$(s, Chr(64), Chr(34) & s & Chr(34)): End Sub
  3. 'Sub main(): Const s As String = "Sub main(): Const s As String = @: msgbox Replace$(s, Chr(64), Chr(34) & s & Chr(34)): End Sub": MsgBox Replace$(s, Chr(64), Chr(34) & s & Chr(34)): End Sub
  4.  
  5.  

Temibles Lunas!¡.
52  Programación / Programación C/C++ / [Ayuda] Problema un poco sonso al intercambiar un puntero por otro. en: 12 Febrero 2011, 10:27 am
.
mi problema es que en TEORIA mi funcion setnewptr deberia de asignar y/o devolver en el parametro old el puntero a New, pero solo lo afecta dentro de la funcion mas cuando termina no me afecta a c_pstr... ¿Como puedo solucionar esto?...

Aquí lo que digo...

Código
  1.  
  2. #include<iostream>
  3. #include<cstdlib>
  4. #include<cstring>
  5.  
  6. using namespace std;
  7.  
  8. void* setnewptr( void *old , void *New);
  9.  
  10. int main() {
  11.    char *c_pstr = NULL;
  12.    char *c_str = (char*)malloc(sizeof(char)*10);
  13.    strcpy(c_str , (const char*)"Hola");
  14.    cout << (char*)setnewptr( c_pstr , c_str );
  15.    cout << c_pstr << endl;
  16.    return 0;
  17. }
  18.  
  19. void* setnewptr( void *old , void *New)
  20. /**
  21.     Libera a [*old] si apunta a algo y le establece [*New];
  22.     By BlackZeroX ( http://Infrangelux.sytes.net/ )
  23. **/
  24. {
  25.    if ( old != NULL )
  26.        free (old);
  27.    return old=New;
  28. }
  29.  
  30.  
53  Foros Generales / Foro Libre / Una pequeña duda ( se me olvido jaja ) en: 7 Febrero 2011, 21:39 pm
.
Como se lee e interpreta esto?



P.D.: mi problema es ese simbolo que parece M invertida, recuerdo que era una suma pero ya se me olvido el como se usa, lee e interpreta.

Dulces Lunas!¡.
54  Programación / Programación C/C++ / [Hook] WH_CBT en: 18 Enero 2011, 22:32 pm
.
Tengo un problema al realizar el hook al mensaje WH_CBT de forma global mas no por Theard y es que no se instala dicho hook, obtube el error y su descripción pero ni idea a que se refiere  :(.

Código
  1.  
  2. #include <iostream>
  3. #include <windows.h>
  4.  
  5. HHOOK hHRes;
  6.  
  7. LRESULT CALLBACK CBTProc( int , WPARAM , LPARAM );
  8. void ErrorExit(LPTSTR lpszFunction);
  9.  
  10. int main()
  11. {
  12.    char s[500] ={};
  13.    hHRes = ::SetWindowsHookExA( WH_CBT , &CBTProc , GetModuleHandle( NULL ) , 0 );
  14.    if ( hHRes == NULL ) {
  15.       /* le resto 2 para establecer un caracter nulo en formato WCHAR */
  16.       ::FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM , NULL , ::GetLastError() , NULL , (WCHAR*)&s , (DWORD) strlen(&s[0])/2 - 2 , NULL );
  17.       ::MessageBoxExW(NULL,(WCHAR*)&s,NULL,0,NULL);
  18.    }
  19.    return 0;
  20. }
  21.  
  22. LRESULT CALLBACK CBTProc( int nCode, WPARAM wParam, LPARAM lParam )
  23. {
  24.    ::UnhookWindowsHookEx( hHRes );
  25.    return ::CallNextHookEx( hHRes , nCode , wParam , lParam );
  26. }
  27.  
  28.  

Edito: Lei por hay que se debe hacer esto en una dll, que tan cierto es?...

Temibles Lunas!¡.
.
55  Programación / Programación C/C++ / [Duda] CallBack en: 15 Enero 2011, 01:43 am
.
Puedo redirigir un proceso por medio de funciones normales, pero lo que realmente quiero es redirrecionar a un miembro (una funcion) dentro de la clase, pero me marca error.

Como se puede hacer un CallBack a un miembro( Funcion ) de una clase?.

Código
  1. /* Con y sin & me marca error */
  2. /* Intento cambiar el proceso que resive los mensajes de "this->v_hWinSock" a otro proceso/mienbro de una clase */
  3. this->v_PrevProc = SetWindowLongA( this->v_hWinSock , GWL_WNDPROC, (DWORD)&this->WndProc);
  4.  

Dulces Lunas!¡.
.
56  Programación / Programación C/C++ / [Duda] Punteros a Funciones. en: 14 Enero 2011, 02:12 am
.
¿Siempre se debe declarar int a un puntero de una funcion/proceso?, me estoy leyendo un articulo al respecto que es de C++, pero quisiera saber si en ANSI C es lo mismo o si los punteros a funciones ANSI C son de otra forma.

[congetura]
    * Creo y supongo que se declara con el tipo que devuelve la funcion, similar a la declaracion de un prototipo pero difiriendo de esta.
[/congetura]

Dulces Lunas!¡.
57  Programación / Programación C/C++ / [ANSI C] Split(), strlen(), mid(), Instr(), strcpy(). en: 12 Enero 2011, 22:55 pm
.
Esta es la version de split() ya esta corregida debugeada y sirve en todo caso.

Quien no sepa usar Vectores en C esta muerto ( ** ), es decir Puntero a Puntero.

Corregido por segunda vez:

Código
  1.  
  2. #include<stdlib.h>
  3. #include<stdio.h>
  4.  
  5. #ifndef bool
  6. typedef enum bool { false, true } bool;
  7. #endif
  8.  
  9. unsigned int rectific_num(unsigned int vval,unsigned int vmin,unsigned int vmax);
  10. bool fix_numbers_range(unsigned int* vIndexIni,unsigned int* vIndexEnd, unsigned int* vLen, unsigned int vMin, unsigned int vMax);
  11. unsigned long strlen(char* string);
  12. unsigned long instr(unsigned long start,char* string1,char* string2);
  13. char* mid(char* str, unsigned int start, unsigned int len);
  14. char* strcpy(char* str_dest,char* str_src);
  15. char** split(char* str, char* delimiter, long* limit);
  16.  
  17. int main()
  18. {
  19.  
  20.    long lim=-1;
  21.    long i=0;
  22.    char **array = split((char*)".Este.es.Hola.Mundo.Hola.mundo.",(char*)".",&lim);
  23.  
  24.    if ( array != 0 )
  25.    {
  26.        printf("Index\tValue\n",lim);
  27.        for ( i=0 ; i <= lim ;i++ )
  28.        {
  29.            printf("%d\t%s\n",i,array[i]);
  30.            free (array[i]);
  31.        }
  32.        free(array);
  33.    }
  34.    getchar();
  35.    return 0;
  36. }
  37.  
  38. unsigned int rectific_num(unsigned int vval,unsigned int vmin,unsigned int vmax)
  39. /**
  40.     Corrige [vVal] con respecto a un minimo y a un maximo valor.
  41.     By BlackZeroX ( http://Infrangelux.sytes.net/ )
  42. **/
  43. {
  44.    if (vval < vmin)
  45.        return vmin;
  46.    else if ( vval > vmax )
  47.        return vmax;
  48.    else
  49.        return vval;
  50. }
  51.  
  52. bool fix_numbers_range(unsigned int* vIndexIni,unsigned int* vIndexEnd, unsigned int* vLen, unsigned int vMin, unsigned int vMax)
  53. /**
  54.     Corrige los rangos de [vIndexIni],[vIndexEnd], [vLen] con respecto a un minimo y a un maximo valor.
  55.     [vLen] corresponde a la distancia entre [vIndexIni] y [vIndexEnd].
  56.     Se retorna false solo si [vMax] es menor que que [vIndexIni] o que [*vLen] es igual o menor a [0]
  57.     By BlackZeroX ( http://Infrangelux.sytes.net/ )
  58. **/
  59. {
  60.    if ( vMax >= *vIndexIni && *vLen != 0 )
  61.    {
  62.        *vIndexIni = rectific_num(*vIndexIni,vMin,vMax);
  63.        *vIndexEnd = rectific_num(*vIndexIni + *vLen,*vIndexIni,vMax);
  64.        *vLen= *vIndexEnd - *vIndexIni+1;
  65.        return ( (*vLen > 0) ? true: false);
  66.    } else {
  67.        return false;
  68.    }
  69. }
  70.  
  71. unsigned long strlen(char* string)
  72. /**
  73.     Retorna la longitud de [string]
  74.     By BlackZeroX ( http://Infrangelux.sytes.net/ )
  75. **/
  76. {
  77.    unsigned long i=0;
  78.    while (*(string++)) i++;
  79.    return i;
  80. }
  81.  
  82. char* strcpy(char* str_dest,char* str_src)
  83. /**
  84.     Copia [*str_src] a [*str_dest].
  85.     Retorna el puntero a [str_dest]
  86.     By BlackZeroX ( http://Infrangelux.sytes.net/ )
  87. **/
  88. {
  89.    char *copyreturn = str_dest;
  90.    while(*(str_dest++)=*(str_src++));
  91.    return copyreturn;
  92. }
  93.  
  94. unsigned long instr(unsigned long start,char* string1,char* string2)
  95. /**
  96.     [Start] indica la posicion inicial donde se empesara a buscar en [string1]
  97.     Retorna la posicion de [*string2] en [*string1].
  98.     By BlackZeroX ( http://Infrangelux.sytes.net/ )
  99. **/
  100. {
  101.    unsigned long  q,c,limit;
  102.    q=c=limit=0;
  103.    long ls2len=0;
  104.  
  105.    ls2len = strlen(string2) - 1;
  106.  
  107.    if ( ls2len >= 0 )
  108.    {
  109.        limit = strlen(string1)-ls2len;
  110.  
  111.        if ( limit > 1 )
  112.        {
  113.            q = start-1;
  114.            while ( q < limit )
  115.            {
  116.                while ( string1[q+c] == string2[c] )
  117.                    if ( (c++) == (unsigned long)ls2len )
  118.                        return q+1;
  119.                q+=c+1;
  120.                c=0;
  121.            }
  122.        }
  123.    } else if (*string1 > '\0') {
  124.        return 1;
  125.    }
  126.    return 0;
  127. }
  128. char* mid(char* str, unsigned int start, unsigned int len)
  129. /**
  130.     Se obtiene el fragmento deseado de [*str]
  131.     [Start] Indica desde donde se empesara
  132.     [Len] Indica la distancia.
  133.     Retorna el puntero al clon del fragmento deseado de [*str]
  134.     By BlackZeroX ( http://Infrangelux.sytes.net/ )
  135. **/
  136. {
  137.    char* pch_t = 0;
  138.    unsigned int ul_str=strlen(str);
  139.    unsigned int ul_end=start+len;
  140.    start--;
  141.    if ( fix_numbers_range(&start,&ul_end,&len,0,ul_str) == true )
  142.    {
  143.        if ( (pch_t = (char*)malloc(sizeof(char)*len)) != 0 )
  144.        {
  145.            for (ul_str=0;ul_str < (len-1) ;start++,ul_str++ )
  146.                pch_t[ul_str] = str[start];
  147.            pch_t[len-1]='\0';
  148.        }
  149.    } else {
  150.        if ( (pch_t = (char*)malloc(sizeof(char))) != 0 )
  151.            pch_t[0]='\0';
  152.    }
  153.    return pch_t;
  154. }
  155.  
  156. char** split(char* str, char* delimiter, long* limit)
  157. /**
  158.     Separa a [*str] cada vez que se encuentre a [*delimiter] con un limite definido en [*limit]
  159.     Si [*limit] = -1 se crea un Maximo mayor a [-1] en el indice del vector retornado
  160.     Si [*limit] > -1 Se indica y establece un indice mayor [pero no fijo] del indice mayor del vector retornado
  161.     En ambos casos [*limit] retorna el Indice maximo del vector retornado por la funcion y la funcion retorna el puntero a el vector retultante.
  162.     En casos contrarios no crea un vector y retorna 0 y [*limit] = [-1]
  163.     By BlackZeroX ( http://Infrangelux.sytes.net/ )
  164. **/
  165. {
  166.    unsigned int ui_lp  =1;
  167.    unsigned int ui_inc =1;
  168.    unsigned int ui_lns =0;
  169.    unsigned int ui_del =0;
  170.    unsigned long ui_ub =0;
  171.    char **pi_out       =0;
  172.  
  173.    if ( *limit >= -1 )
  174.    {
  175.        if ( strlen(delimiter) == 0 )
  176.            delimiter = (char*)" ";
  177.        ui_lns = strlen(str);
  178.        ui_del = strlen(delimiter);
  179.        pi_out = (char**)malloc(sizeof(char*));
  180.        for(;pi_out!=0;)
  181.        {
  182.            if ( ui_ub == *limit )
  183.            {
  184.                pi_out[ui_ub] = mid(str, ui_lp,ui_lns);
  185.                ui_ub = *limit;
  186.                break;
  187.            }
  188.            ui_inc = instr(ui_inc, str, delimiter);
  189.            if ( ui_inc == 0 )
  190.            {
  191.                pi_out[ui_ub] = mid(str, ui_lp,ui_lns);
  192.                break;
  193.            }
  194.            pi_out[ui_ub] = mid(str, ui_lp, ui_inc - ui_lp);
  195.            pi_out = (char**)realloc(pi_out,sizeof(char*)*(++ui_ub+1));
  196.            ui_lp = ui_inc + ui_del;
  197.            ui_inc = ui_lp;
  198.        }
  199.        *limit = ui_ub;
  200.        return pi_out;
  201.    }
  202.    *limit=-1;
  203.    return 0;
  204. }
  205.  
  206.  

Nota.: Si alguien ve algun fallo por favor de no golpearme gracias!¡.

Temibles Lunas!¡.
58  Programación / Programación Visual Basic / [SRC][UC] ListViewEx 2.0 Reprogramado ( 05/01/2011 ) No Skiner en: 5 Enero 2011, 11:09 am
.
Version Anterior Go To ListView 1.0

  • Este Control Esta Re-Programado al 100% ademas de que el codigo esta 100% mas legible que el anterior.
  • Iconos Independientes en cada Celda, o Columnas ( Alineacion Izquierda Derecha )
  • Agregado Multiseleccion Con Shift y Control
  • Agregado FullRowSelection
  • Los Iconos se Pueden reajustar sus dimensiones sin que se reasigne la Coleccion de imagenes
  • Las celdas que no contengan Icono asignado no tienen espaciado inensesario
  • Texto En Negrita de forma independiente apra cada celda/Header
  • Texto En Cursiva de forma independiente apra cada celda/Header
  • Texto En Sub-raya dode forma independiente apra cada celda/Header
  • Font Name exclusivo para los TODOS los Header
  • Font Name exclusivo Para TODAS las Filas
  • Tag Independiente apra cada Fila
  • Tag independiente para cada Header
  • Eventos Por Regiones ( Zona Header, Zona Filas )
  • Eventos Habituales y Comunes
  • ToolTip para cada Fila de forma independiente
  • ToolTip para cada Header de forma independiente
  • Texto En Negrita de forma independiente apra cada celda/Header
  • Texto Colorido para cada celda de forma Independiente
  • Texto Alineado para cada celda de forma Independiente ( Izquierda Derecha o Centrado )
  • Texto Colorido para cada Header de forma Independiente
  • Texto Alineado para cada Header de forma Independiente( Izquierda Derecha o Centrado )
  • A Cada header sele puede asignar un color de forma independiente
  • Color Independiente a la Seleccion de Filas
  • Depende Solo de la Clase Cls_Imagelist 2.0 o superior ( Viene incluida en la descarga )
  • Dezplazamiento de una Cantidad Dada de columnas a una posicion X
  • Dezplazamiento de una Cantidad Dada de filas a una posicion X







<Download>

Dulces Lunas!¡.
.
59  Programación / Programación Visual Basic / [Reto] Zig Zag (OJO ANALISIS) en: 2 Enero 2011, 09:53 am
.
El Reto es el siguiente consiste en generar un proceso que al ingresar un Numero (en el Ejemplo es 64) Retorne un Array() BIDIMENSIONAL que al imprimir contenga el siguiente codigo, (donde el 4280 se encuentre en el primer indice),

Código:

4280 4315 4355 4398 4442 4485 4525 4560 2080
1 2 4 7 11 16 22 29 92
3 5 8 12 17 23 30 37 135
6 9 13 18 24 31 38 44 183
10 14 19 25 32 39 45 50 234
15 20 26 33 40 46 51 55 286
21 27 34 41 47 52 56 59 337
28 35 42 48 53 57 60 62 385
36 43 49 54 58 61 63 64 428
120 155 195 238 282 325 365 400 2080


  • Donde empiesa a llenarse desde el Numero 1 (Sigan la secuencia numerica...).
  • Suma Vertical.
  • Suma Horizontal
  • El Resto es un Analisis Numerico... No es dificil (Numeros de la 1ra fila Superior y esquina Inferior Derecha).
Debe Hacer y Procesar numeros Con Punto Decimal y Negativos (Ignoren los Negativos). Solo del 0 en adelante.

  • IMPORTANTE: Si la tabla no se acompleta por ejemplo si se ingresa el numero 10... se queda hasta q sea un cuadrado la parte interna Pero sin superar a dicho numero... en este caso termina en el numero 9 dicha secuencia, y de forma posterior se calculan los demas valores...

Corregido este ejemplo... Disculpen los hice a mano ¬¬"

Código:

100 105 110 45
1 2 4 7
3 5 7 15
6 8 9 23
10 15 20 45


  • El codigo debera de ser legible, lo mas corto y con velocidad en su procesar.
  • Pueden usarse APIS.

Ejemplos:



Ejmplo con el Numero 0
Código:

0
0

Ejmplo con el Numero 1
Código:

3 1
1 1
1 1

Ejmplo con el Numero 4
Código:

24 26 10
1 2 3
3 4 7
4 6 10

Ejmplo con el Numero 9
Código:

100 105 110 45
1 2 4 7
3 5 7 15
6 8 9 23
10 15 20 45

Ejmplo con el Numero 16
Código:

292 301 311 320 136
1 2 4 7 14
3 5 8 11 27
6 9 12 14 41
10 13 15 16 54
20 29 39 48 136

Ejmplo con el Numero 25
Código:

685 699 715 731 745 325
1 2 4 7 11 25
3 5 8 12 16 44
6 9 13 17 20 65
10 14 18 21 23 86
15 19 22 24 25 105
35 49 65 81 95 325

Ejmplo con el Numero 36
Código:

1388 1408 1431 1455 1478 1498 666
1 2 4 7 11 16 41
3 5 8 12 17 22 67
6 9 13 18 23 27 96
10 14 19 24 28 31 126
15 20 25 29 32 34 155
21 26 30 33 35 36 181
56 76 99 123 146 166 666

Ejmplo con el Numero 49
Código:

2534 2561 2592 2625 2658 2689 2716 1225
1 2 4 7 11 16 22 63
3 5 8 12 17 23 29 97
6 9 13 18 24 30 35 135
10 14 19 25 31 36 40 175
15 20 26 32 37 41 44 215
21 27 33 38 42 45 47 253
28 34 39 43 46 48 49 287
84 111 142 175 208 239 266 1225

Ejmplo con el Numero 64
Código:

4280 4315 4355 4398 4442 4485 4525 4560 2080
1 2 4 7 11 16 22 29 92
3 5 8 12 17 23 30 37 135
6 9 13 18 24 31 38 44 183
10 14 19 25 32 39 45 50 234
15 20 26 33 40 46 51 55 286
21 27 34 41 47 52 56 59 337
28 35 42 48 53 57 60 62 385
36 43 49 54 58 61 63 64 428
120 155 195 238 282 325 365 400 2080

Ejmplo con el Numero 81
Código:

6807 6851 6901 6955 7011 7067 7121 7171 7215 3321
1 2 4 7 11 16 22 29 37 129
3 5 8 12 17 23 30 38 46 182
6 9 13 18 24 31 39 47 54 241
10 14 19 25 32 40 48 55 61 304
15 20 26 33 41 49 56 62 67 369
21 27 34 42 50 57 63 68 72 434
28 35 43 51 58 64 69 73 76 497
36 44 52 59 65 70 74 77 79 556
45 53 60 66 71 75 78 80 81 609
165 209 259 313 369 425 479 529 573 3321

Ejmplo con el Numero 100
Código:

10320 10374 10435 10501 10570 10640 10709 10775 10836 10890 5050
1 2 4 7 11 16 22 29 37 46 175
3 5 8 12 17 23 30 38 47 56 239
6 9 13 18 24 31 39 48 57 65 310
10 14 19 25 32 40 49 58 66 73 386
15 20 26 33 41 50 59 67 74 80 465
21 27 34 42 51 60 68 75 81 86 545
28 35 43 52 61 69 76 82 87 91 624
36 44 53 62 70 77 83 88 92 95 700
45 54 63 71 78 84 89 93 96 98 771
55 64 72 79 85 90 94 97 99 100 835
220 274 335 401 470 540 609 675 736 790 5050

Ejmplo con el Numero 121
Código:

15048 15113 15186 15265 15348 15433 15518 15601 15680 15753 15818 7381
1 2 4 7 11 16 22 29 37 46 56 231
3 5 8 12 17 23 30 38 47 57 67 307
6 9 13 18 24 31 39 48 58 68 77 391
10 14 19 25 32 40 49 59 69 78 86 481
15 20 26 33 41 50 60 70 79 87 94 575
21 27 34 42 51 61 71 80 88 95 101 671
28 35 43 52 62 72 81 89 96 102 107 767
36 44 53 63 73 82 90 97 103 108 112 861
45 54 64 74 83 91 98 104 109 113 116 951
55 65 75 84 92 99 105 110 114 117 119 1035
66 76 85 93 100 106 111 115 118 120 121 1111
286 351 424 503 586 671 756 839 918 991 1056 7381

Ejmplo con el Numero 144
Código:

21244 21321 21407 21500 21598 21699 21801 21902 22000 22093 22179 22256 10440
1 2 4 7 11 16 22 29 37 46 56 67 298
3 5 8 12 17 23 30 38 47 57 68 79 387
6 9 13 18 24 31 39 48 58 69 80 90 485
10 14 19 25 32 40 49 59 70 81 91 100 590
15 20 26 33 41 50 60 71 82 92 101 109 700
21 27 34 42 51 61 72 83 93 102 110 117 813
28 35 43 52 62 73 84 94 103 111 118 124 927
36 44 53 63 74 85 95 104 112 119 125 130 1040
45 54 64 75 86 96 105 113 120 126 131 135 1150
55 65 76 87 97 106 114 121 127 132 136 139 1255
66 77 88 98 107 115 122 128 133 137 140 142 1353
78 89 99 108 116 123 129 134 138 141 143 144 1442
364 441 527 620 718 819 921 1022 1120 1213 1299 1376 10440

Ejmplo con el Numero 169
Código:

29185 29275 29375 29483 29597 29715 29835 29955 30073 30187 30295 30395 30485 14365
1 2 4 7 11 16 22 29 37 46 56 67 79 377
3 5 8 12 17 23 30 38 47 57 68 80 92 480
6 9 13 18 24 31 39 48 58 69 81 93 104 593
10 14 19 25 32 40 49 59 70 82 94 105 115 714
15 20 26 33 41 50 60 71 83 95 106 116 125 841
21 27 34 42 51 61 72 84 96 107 117 126 134 972
28 35 43 52 62 73 85 97 108 118 127 135 142 1105
36 44 53 63 74 86 98 109 119 128 136 143 149 1238
45 54 64 75 87 99 110 120 129 137 144 150 155 1369
55 65 76 88 100 111 121 130 138 145 151 156 160 1496
66 77 89 101 112 122 131 139 146 152 157 161 164 1617
78 90 102 113 123 132 140 147 153 158 162 165 167 1730
91 103 114 124 133 141 148 154 159 163 166 168 169 1833
455 545 645 753 867 985 1105 1225 1343 1457 1565 1665 1755 14365

Ejmplo con el Numero 196
Código:

39172 39276 39391 39515 39646 39782 39921 40061 40200 40336 40467 40591 40706 40810 19306
1 2 4 7 11 16 22 29 37 46 56 67 79 92 469
3 5 8 12 17 23 30 38 47 57 68 80 93 106 587
6 9 13 18 24 31 39 48 58 69 81 94 107 119 716
10 14 19 25 32 40 49 59 70 82 95 108 120 131 854
15 20 26 33 41 50 60 71 83 96 109 121 132 142 999
21 27 34 42 51 61 72 84 97 110 122 133 143 152 1149
28 35 43 52 62 73 85 98 111 123 134 144 153 161 1302
36 44 53 63 74 86 99 112 124 135 145 154 162 169 1456
45 54 64 75 87 100 113 125 136 146 155 163 170 176 1609
55 65 76 88 101 114 126 137 147 156 164 171 177 182 1759
66 77 89 102 115 127 138 148 157 165 172 178 183 187 1904
78 90 103 116 128 139 149 158 166 173 179 184 188 191 2042
91 104 117 129 140 150 159 167 174 180 185 189 192 194 2171
105 118 130 141 151 160 168 175 181 186 190 193 195 196 2289
560 664 779 903 1034 1170 1309 1449 1588 1724 1855 1979 2094 2198 19306

Ejmplo con el Numero 225
Código:

51530 51649 51780 51921 52070 52225 52384 52545 52706 52865 53020 53169 53310 53441 53560 25425
1 2 4 7 11 16 22 29 37 46 56 67 79 92 106 575
3 5 8 12 17 23 30 38 47 57 68 80 93 107 121 709
6 9 13 18 24 31 39 48 58 69 81 94 108 122 135 855
10 14 19 25 32 40 49 59 70 82 95 109 123 136 148 1011
15 20 26 33 41 50 60 71 83 96 110 124 137 149 160 1175
21 27 34 42 51 61 72 84 97 111 125 138 150 161 171 1345
28 35 43 52 62 73 85 98 112 126 139 151 162 172 181 1519
36 44 53 63 74 86 99 113 127 140 152 163 173 182 190 1695
45 54 64 75 87 100 114 128 141 153 164 174 183 191 198 1871
55 65 76 88 101 115 129 142 154 165 175 184 192 199 205 2045
66 77 89 102 116 130 143 155 166 176 185 193 200 206 211 2215
78 90 103 117 131 144 156 167 177 186 194 201 207 212 216 2379
91 104 118 132 145 157 168 178 187 195 202 208 213 217 220 2535
105 119 133 146 158 169 179 188 196 203 209 214 218 221 223 2681
120 134 147 159 170 180 189 197 204 210 215 219 222 224 225 2815
680 799 930 1071 1220 1375 1534 1695 1856 2015 2170 2319 2460 2591 2710 25425

Ejmplo con el Numero 256
Código:

66608 66743 66891 67050 67218 67393 67573 67756 67940 68123 68303 68478 68646 68805 68953 69088 32896
1 2 4 7 11 16 22 29 37 46 56 67 79 92 106 121 696
3 5 8 12 17 23 30 38 47 57 68 80 93 107 122 137 847
6 9 13 18 24 31 39 48 58 69 81 94 108 123 138 152 1011
10 14 19 25 32 40 49 59 70 82 95 109 124 139 153 166 1186
15 20 26 33 41 50 60 71 83 96 110 125 140 154 167 179 1370
21 27 34 42 51 61 72 84 97 111 126 141 155 168 180 191 1561
28 35 43 52 62 73 85 98 112 127 142 156 169 181 192 202 1757
36 44 53 63 74 86 99 113 128 143 157 170 182 193 203 212 1956
45 54 64 75 87 100 114 129 144 158 171 183 194 204 213 221 2156
55 65 76 88 101 115 130 145 159 172 184 195 205 214 222 229 2355
66 77 89 102 116 131 146 160 173 185 196 206 215 223 230 236 2551
78 90 103 117 132 147 161 174 186 197 207 216 224 231 237 242 2742
91 104 118 133 148 162 175 187 198 208 217 225 232 238 243 247 2926
105 119 134 149 163 176 188 199 209 218 226 233 239 244 248 251 3101
120 135 150 164 177 189 200 210 219 227 234 240 245 249 252 254 3265
136 151 165 178 190 201 211 220 228 235 241 246 250 253 255 256 3416
816 951 1099 1258 1426 1601 1781 1964 2148 2331 2511 2686 2854 3013 3161 3296 32896

Ejmplo con el Numero 289
Código:

84779 84931 85097 85275 85463 85659 85861 86067 86275 86483 86689 86891 87087 87275 87453 87619 87771 41905
1 2 4 7 11 16 22 29 37 46 56 67 79 92 106 121 137 833
3 5 8 12 17 23 30 38 47 57 68 80 93 107 122 138 154 1002
6 9 13 18 24 31 39 48 58 69 81 94 108 123 139 155 170 1185
10 14 19 25 32 40 49 59 70 82 95 109 124 140 156 171 185 1380
15 20 26 33 41 50 60 71 83 96 110 125 141 157 172 186 199 1585
21 27 34 42 51 61 72 84 97 111 126 142 158 173 187 200 212 1798
28 35 43 52 62 73 85 98 112 127 143 159 174 188 201 213 224 2017
36 44 53 63 74 86 99 113 128 144 160 175 189 202 214 225 235 2240
45 54 64 75 87 100 114 129 145 161 176 190 203 215 226 236 245 2465
55 65 76 88 101 115 130 146 162 177 191 204 216 227 237 246 254 2690
66 77 89 102 116 131 147 163 178 192 205 217 228 238 247 255 262 2913
78 90 103 117 132 148 164 179 193 206 218 229 239 248 256 263 269 3132
91 104 118 133 149 165 180 194 207 219 230 240 249 257 264 270 275 3345
105 119 134 150 166 181 195 208 220 231 241 250 258 265 271 276 280 3550
120 135 151 167 182 196 209 221 232 242 251 259 266 272 277 281 284 3745
136 152 168 183 197 210 222 233 243 252 260 267 273 278 282 285 287 3928
153 169 184 198 211 223 234 244 253 261 268 274 279 283 286 288 289 4097
969 1121 1287 1465 1653 1849 2051 2257 2465 2673 2879 3081 3277 3465 3643 3809 3961 41905

Ejmplo con el Numero 324
Código:

106440 106610 106795 106993 107202 107420 107645 107875 108108 108342 108575 108805 109030 109248 109457 109655 109840 110010 52650
1 2 4 7 11 16 22 29 37 46 56 67 79 92 106 121 137 154 987
3 5 8 12 17 23 30 38 47 57 68 80 93 107 122 138 155 172 1175
6 9 13 18 24 31 39 48 58 69 81 94 108 123 139 156 173 189 1378
10 14 19 25 32 40 49 59 70 82 95 109 124 140 157 174 190 205 1594
15 20 26 33 41 50 60 71 83 96 110 125 141 158 175 191 206 220 1821
21 27 34 42 51 61 72 84 97 111 126 142 159 176 192 207 221 234 2057
28 35 43 52 62 73 85 98 112 127 143 160 177 193 208 222 235 247 2300
36 44 53 63 74 86 99 113 128 144 161 178 194 209 223 236 248 259 2548
45 54 64 75 87 100 114 129 145 162 179 195 210 224 237 249 260 270 2799
55 65 76 88 101 115 130 146 163 180 196 211 225 238 250 261 271 280 3051
66 77 89 102 116 131 147 164 181 197 212 226 239 251 262 272 281 289 3302
78 90 103 117 132 148 165 182 198 213 227 240 252 263 273 282 290 297 3550
91 104 118 133 149 166 183 199 214 228 241 253 264 274 283 291 298 304 3793
105 119 134 150 167 184 200 215 229 242 254 265 275 284 292 299 305 310 4029
120 135 151 168 185 201 216 230 243 255 266 276 285 293 300 306 311 315 4256
136 152 169 186 202 217 231 244 256 267 277 286 294 301 307 312 316 319 4472
153 170 187 203 218 232 245 257 268 278 287 295 302 308 313 317 320 322 4675
171 188 204 219 233 246 258 269 279 288 296 303 309 314 318 321 323 324 4863
1140 1310 1495 1693 1902 2120 2345 2575 2808 3042 3275 3505 3730 3948 4157 4355 4540 4710 52650

Ejmplo con el Numero 361
Código:

132012 132201 132406 132625 132856 133097 133346 133601 133860 134121 134382 134641 134896 135145 135386 135617 135836 136041 136230 65341
1 2 4 7 11 16 22 29 37 46 56 67 79 92 106 121 137 154 172 1159
3 5 8 12 17 23 30 38 47 57 68 80 93 107 122 138 155 173 191 1367
6 9 13 18 24 31 39 48 58 69 81 94 108 123 139 156 174 192 209 1591
10 14 19 25 32 40 49 59 70 82 95 109 124 140 157 175 193 210 226 1829
15 20 26 33 41 50 60 71 83 96 110 125 141 158 176 194 211 227 242 2079
21 27 34 42 51 61 72 84 97 111 126 142 159 177 195 212 228 243 257 2339
28 35 43 52 62 73 85 98 112 127 143 160 178 196 213 229 244 258 271 2607
36 44 53 63 74 86 99 113 128 144 161 179 197 214 230 245 259 272 284 2881
45 54 64 75 87 100 114 129 145 162 180 198 215 231 246 260 273 285 296 3159
55 65 76 88 101 115 130 146 163 181 199 216 232 247 261 274 286 297 307 3439
66 77 89 102 116 131 147 164 182 200 217 233 248 262 275 287 298 308 317 3719
78 90 103 117 132 148 165 183 201 218 234 249 263 276 288 299 309 318 326 3997
91 104 118 133 149 166 184 202 219 235 250 264 277 289 300 310 319 327 334 4271
105 119 134 150 167 185 203 220 236 251 265 278 290 301 311 320 328 335 341 4539
120 135 151 168 186 204 221 237 252 266 279 291 302 312 321 329 336 342 347 4799
136 152 169 187 205 222 238 253 267 280 292 303 313 322 330 337 343 348 352 5049
153 170 188 206 223 239 254 268 281 293 304 314 323 331 338 344 349 353 356 5287
171 189 207 224 240 255 269 282 294 305 315 324 332 339 345 350 354 357 359 5511
190 208 225 241 256 270 283 295 306 316 325 333 340 346 351 355 358 360 361 5719
1330 1519 1724 1943 2174 2415 2664 2919 3178 3439 3700 3959 4214 4463 4704 4935 5154 5359 5548 65341

Ejmplo con el Numero 400
Código:

161940 162149 162375 162616 162870 163135 163409 163690 163976 164265 164555 164844 165130 165411 165685 165950 166204 166445 166671 166880 80200
1 2 4 7 11 16 22 29 37 46 56 67 79 92 106 121 137 154 172 191 1350
3 5 8 12 17 23 30 38 47 57 68 80 93 107 122 138 155 173 192 211 1579
6 9 13 18 24 31 39 48 58 69 81 94 108 123 139 156 174 193 212 230 1825
10 14 19 25 32 40 49 59 70 82 95 109 124 140 157 175 194 213 231 248 2086
15 20 26 33 41 50 60 71 83 96 110 125 141 158 176 195 214 232 249 265 2360
21 27 34 42 51 61 72 84 97 111 126 142 159 177 196 215 233 250 266 281 2645
28 35 43 52 62 73 85 98 112 127 143 160 178 197 216 234 251 267 282 296 2939
36 44 53 63 74 86 99 113 128 144 161 179 198 217 235 252 268 283 297 310 3240
45 54 64 75 87 100 114 129 145 162 180 199 218 236 253 269 284 298 311 323 3546
55 65 76 88 101 115 130 146 163 181 200 219 237 254 270 285 299 312 324 335 3855
66 77 89 102 116 131 147 164 182 201 220 238 255 271 286 300 313 325 336 346 4165
78 90 103 117 132 148 165 183 202 221 239 256 272 287 301 314 326 337 347 356 4474
91 104 118 133 149 166 184 203 222 240 257 273 288 302 315 327 338 348 357 365 4780
105 119 134 150 167 185 204 223 241 258 274 289 303 316 328 339 349 358 366 373 5081
120 135 151 168 186 205 224 242 259 275 290 304 317 329 340 350 359 367 374 380 5375
136 152 169 187 206 225 243 260 276 291 305 318 330 341 351 360 368 375 381 386 5660
153 170 188 207 226 244 261 277 292 306 319 331 342 352 361 369 376 382 387 391 5934
171 189 208 227 245 262 278 293 307 320 332 343 353 362 370 377 383 388 392 395 6195
190 209 228 246 263 279 294 308 321 333 344 354 363 371 378 384 389 393 396 398 6441
210 229 247 264 280 295 309 322 334 345 355 364 372 379 385 390 394 397 399 400 6670
1540 1749 1975 2216 2470 2735 3009 3290 3576 3865 4155 4444 4730 5011 5285 5550 5804 6045 6271 6480 80200

Temibles Lunas!¡.
.
60  Programación / Programación Visual Basic / [Src][ Update 03/Ene/2011 ] 2.0 Cls_ImageList (Coleccion de imagenes) en: 1 Enero 2011, 00:07 am
.

http://infrangelux.hostei.com/index.php?option=com_content&view=article&id=25:20-clsimagelist&catid=15:catmoduloscls&Itemid=24


Este Modulo de Clase es solo una pequeña sustitucion al ImageList, no tiene gran cosa y no se parece en lo absoluto a los de Cobein, ya que este solo esta diseñado para que trabaje con iconos, aun que puede cargar BMP, Cursores e Iconos obviamente.

1.0 Cls_ImageList
1.2 Cls_ImageList

1.3 Cls_ImageList

2.0 Cls_ImageList

Código:

'   /////////////////////////////////////////////////////////////
'   //                  ImageList.Cls   2.0                    //
'   // *    ADD Events                                         //
'   // *    ADD Convert Icons To Picture                       //
'   // *    Fix Swap                                           //
'   // *    Fix Duplicate                                      //
'   /////////////////////////////////////////////////////////////


EDITO: --> Subi Nuevamente el Archivo ya que era una version Anterior.

Edito: ---> Agrego solo un ejemplo Basico...

Código
  1.  
  2. Private Sub Form_Load()
  3. AutoRedraw = True
  4. Dim a                   As Cls_ImageList
  5. Const Str_BMP           As String = "Angeles"         '   //  Aqui guardamos imagenes Grandes
  6. Const Str_BMP2          As String = "AngelesMinis"    '   //  Nos servira solo para Redidibujar e mini
  7. Dim lng_Index           As Long
  8.  
  9.    Set a = New Cls_ImageList
  10.    With a
  11.  
  12.        If Not .ImageListCreate(Str_BMP, 512, 512) = 0 Then ' // Nos devuelve el Handle de la coleccion de imagenes.
  13.            lng_Index = .ImageList_ADDLoadFromFile(Str_BMP, App.Path & "\img\a1.bmp", IMAGE_BITMAP)
  14.            If .ImageListDuplicate(Str_BMP, Str_BMP2) Then
  15.                .ImageListDraw Str_BMP2, lng_Index, Me.hDC, 20, 50
  16.                If .ImageListSetSize(Str_BMP, 32, 32) Then
  17.                    .ImageListDraw Str_BMP, lng_Index, Me.hDC, 20, 50
  18.                End If
  19.                .ImageListDestroy Str_BMP2 ' // Eliminamos la Coleccion de imagenes
  20.                .ImageListDraw Str_BMP2, lng_Index, Me.hDC, 20, 50 ' // esta linea ya no pictara nada ya que la coleccion ya esta destruida.
  21.            End If
  22.        End If
  23.  
  24.    End With
  25.    Set a = Nothing
  26.  
  27. Refresh
  28. End Sub
  29.  
  30.  


Temibles Lunas!¡.
.
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines