Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas en funcion (https://www.clubdelphi.com/foros/showthread.php?t=82297)

KroSaver 20-02-2013 17:25:04

Problemas en funcion
 
Buenas de nuevo a todos, segunda duda por dia espero no molestar

Bueno estoy intentando pasar una funcion que hice en c++ de encontrar determinada palabra en un texto a delphi pero tengo un error muy tonto y es que no me permite hacer esto:

Código:

function EncontrarCadena(Cadena: array [0..MAX_PATH] of char): Boolean;
Osea darle directamente MAX_PATH al declarar la funcion, ¿como podria asignarselo dentro de la funcion?

gracias de antemano y saludos

maeyanes 20-02-2013 17:29:40

Hola...

En Delphi podrías usar el tipo string sin problemas:

Código Delphi [-]
function EncontrarCadena(Cadena: string): Boolean;
begin
  // Código de la función
end;

Ahora, no veo el por que crear una función si el mismo Delphi ya cuenta con funciones que te pueden ayudar para lo mismo:

Código Delphi [-]
if Pos('Subcadena', 'Esta función busca una subcadena en una cadena') > 0 then
  ShowMessage('Subcadena encontrada');


Saludos...

Al González 20-02-2013 17:31:51

¿Podrías poner el código C++ original? :)

Chris 20-02-2013 17:50:09

La sintaxis que estás utilizando "Cadena: array [0..MAX_PATH] of char" es para declarar una variable, no el parámetro de una función. En este momento no recuerdo exactamente como se definen los parámetros array en Delphi. Talvez un compañero lo pueda aclarar.

Saludos!

dec 20-02-2013 18:40:50

Cita:

Empezado por Chris (Mensaje 455265)
La sintaxis que estás utilizando "Cadena: array [0..MAX_PATH] of char" es para declarar una variable, no el parámetro de una función. En este momento no recuerdo exactamente como se definen los parámetros array en Delphi. Talvez un compañero lo pueda aclarar.

Saludos!

Sería algo más o menos como esto:

Código Delphi [-]
type
  TArrayOfChar = array [ 0 .. MAX_PATH ] of Char;

{...}

function FindString( source : TArrayOfChar ) : boolean;
begin
  result := false;
  // TODO
  raise Exception.Create( 'Function "FindString()" not yet implemented' );
end;

roman 20-02-2013 21:21:19

Cita:

Empezado por dec (Mensaje 455267)
Código Delphi [-]
  result := false;

Me parece que esto es redundante. Siendo Result una variable boolean, se inicializa a false automáticamente :p :D

// Saludos

KroSaver 20-02-2013 21:55:57

Bueno esque usar funciones propias no me mola las prefiero hacer yo y meter cuanta menos basura posible en el exe final.

el codigo de la funcion en c++ la hicimos con mi compañero TR31N0RD:
Código:

#include <stdio.h>
#include <windows.h>

bool EncontrarCadena(char *Cadena1, char *Cadena2)
{
   
    char *cadena1=(char*)malloc(strlen(Cadena1));        memset(cadena1,0,strlen(Cadena1));        strcat(cadena1,Cadena1);
    char *cadena2=(char*)malloc(strlen(Cadena2));        memset(cadena2,0,strlen(Cadena2));        strcat(cadena2,Cadena2);

    if(strlen(Cadena1) < strlen(Cadena2)){return false;} //como la cadena2 es mayor que la cadena1 es imposible que la cadena 1 contenga a la cadena2
    int c=0;
    int i=0;
    bool validate=false;
   
    //Convertimos a minusculas
    for(c=0;cadena1[c]!='\0';c++)
    {
        if((cadena1[c]>=65)&&(cadena1[c]<=90)){cadena1[c]+=32;}
    }
   
    for(c=0;cadena2[c]!='\0';c++)
    {
        if((cadena2[c]>=65)&&(cadena2[c]<=90)){cadena2[c]+=32;}
    }
   

   
    while(cadena1[c]!='\0')  // hacemos el recorrido sobre toda la cadena1 para buscar que contiene la cadena2
    {
        if(cadena1[c]==cadena2[0]) //si el caracter comparado es igual al primer caracter de cadena2 buscamos el resto de caracteres
        {
            i=1; //como ya el primer caracter es igual pasamos al segundo caracter que esta en la posicion 1
            while(Cadena2[i]!='\0') //Buscamos el resto de caracteres
            {
                if(cadena1[c+i]!=cadena2[i]){break;} //si son diferentes los caracteres salimos
                i++;           
            }

            if(cadena2[i]=='\0'){return true;}   
        }

    c++;
    }
    return false;
   
}

int main(int argc, char *argv[]) {
   
    char *Cadena1 = "asdjaksxnkasjLoldsfhsdncmsd";
    char *Cadena2 = "loL";
   
    if(EncontrarCadena(Cadena1,Cadena2)==true)
    {
        printf("Cadena encontrada!\n");
    }
    else
    {
        printf("Cadena no encontrada!\n");
    }
    system("PAUSE");
    return 0;
}

Prove lo que respondio dec pero da error en esa linea del type que la verdad en delphi algunos errores no loes explica el compilador.

gracias y saludos

maeyanes 20-02-2013 22:13:13

Hola...

No veo por que sea meter basura al exe el usar una función incluida en el mismo lenguaje sobre el cual estás desarrollando.


Saludos...

KroSaver 20-02-2013 22:21:42

Bueno cada uno lo ve a su manera no?

Yo solo pregunte como hacer eso que tiene que ser lo mas simple pero que no me sale cada uno escrivimos aplicaciones como queremos.

saludos

ecfisa 20-02-2013 22:44:25

Hola KroSaver.

Creo que la forma mas simple es la que te sugiere maeyanes en el segundo mensaje.

Ejemplo Delphi:
Código Delphi [-]
function EncontrarCadena(cad, sub: string): Integer;
begin
  cad:= LowerCase(cad);
  sub:= LowerCase(sub);
  Result:= Pos(sub, cad);
end;
Equivalente C++:
Código:

#include <ctype>
#include <iostream>

int EncontrarCadena(std::string sub, std::string cad)
{
  for(int i=0;cad[i];i++) cad[i] = tolower(cad[i]);
  for(int i=0;sub[i];i++) sub[i] = tolower(sub[i]);
  return cad.find(sub);
}

Equivalente C:
Código:

#include <string.h>
int EncontrarCadena(char *sub, char *cad)
{
  char *d;
  int i;
  for(i=0;cad[i];i++) cad[i] = tolower(cad[i]);
  for(i=0;sub[i];i++) sub[i] = tolower(sub[i]);
  d = strstr(cad, sub);
  if (d) return  d - cad; // Posición de cadena hallada
  return -1;
}

Con la salvedad que en C/C++ se referencia al primer caracter por el índice 0 (en Delphi es 1), por lo que las funciones devolverán el valor de la posición disminuido en uno.

Saludos.

KroSaver 20-02-2013 22:56:45

Si bueno pero si te fijas metes string.h y no ablemos de iostream porque esa libreria sique te agrega basura si compilas en Dev c++ una aplicacion de consola nada mas que tenga iostream y el peso del exe es exagerado pero a lo bestia.

El caso es que yo intento programar y aprender a programar asi porque asi me libero de codigo basura y las aplicaciones irian mas fluidas, rapidas y claro esta sin ensuciar la memoria que es algo a mi parecer que hoy en dia casi nadie intenta optimizar imaginad una aplicacion de dimensiones mucho mayores que necesitaria memoria y encima meteriamos basura.

He que con esto no intento influir mi opinion es eso solo mi opinion.

gracias y saludos

Al González 20-02-2013 23:31:40

Cita:

Empezado por roman (Mensaje 455275)
Siendo Result una variable boolean, se inicializa a false automáticamente :p :D

Eso no es verdad, Román. Así sería si se tratara de un campo en una clase, pero, como seguramente recordarás, las variables que no usan contadores de referencias (aun siendo Result) no se inicializan en automático y pueden traer cualquier cosa de inicio.

Por cierto, a mí y a muchos otros nos alegra verte de nuevo en la palestra. :)

¡Un abrazo!

roman 20-02-2013 23:37:50

Bueno, no tenía (ni tengo :() delphi a mano. Pero mi aseveración la basé en el hecho de que el compilador no protesta ni advierte cuando una función de resultado entero no devuelve un valor, mientras que sí lo hace, por ejemplo, con funciones que devuelven cadenas de caracteres.

¿O es alrevés? :o

En fin, de todas maneras, admito que mi argumento no es muy cinetífico que digamos :)

// Saludos

Al González 21-02-2013 00:08:11

Cita:

Empezado por roman (Mensaje 455302)
Bueno, no tenía (ni tengo :() delphi a mano. Pero mi aseveración la basé en el hecho de que el compilador no protesta ni advierte cuando una función de resultado entero no devuelve un valor, mientras que sí lo hace, por ejemplo, con funciones que devuelven cadenas de caracteres.

¿O es alrevés? :o

Sí, es al revés. Ya que las cadenas de caracteres sí usan contadores de referencias. :)

Aunque, tratándose de la variable Result, en lugar de inicializarse el String como cadena vacía, entra a la función como si fuera un parámetro:
Código Delphi [-]
Function F :String;
Begin
  ShowMessage (Result);
End;

procedure TForm1.Button1Click(Sender: TObject);
Var
  S :String;
begin
  S := 'Las bibliotecas de programación son de gran ayuda.';
  S := F;
end;

No se me ocurre una forma de ayudarte a solucionar lo que pasa actualmente con tu instalación de Delphi, pero si al menos de incentivo científico puede servir el código anterior... ;)

Mucha suerte Román. :)

roman 21-02-2013 00:12:54

Cita:

Empezado por Al González (Mensaje 455305)
pero si al menos de incentivo científico puede servir el código anterior... ;)

Ja, ja. Sí claro, pero sólo como algo meramente teórico, ¡vaya! un ejercicio mental, porque sin delphi no es mucho lo que puedo investigar :D

// Saludos

ecfisa 21-02-2013 04:48:02

Cita:

Empezado por KroSaver (Mensaje 455290)
Si bueno pero si te fijas metes string.h y no ablemos de iostream porque esa libreria sique te agrega basura si compilas en Dev c++ una aplicacion de consola nada mas que tenga iostream y el peso del exe es exagerado pero a lo bestia.

El caso es que yo intento programar y aprender a programar asi porque asi me libero de codigo basura y las aplicaciones irian mas fluidas, rapidas y claro esta sin ensuciar la memoria que es algo a mi parecer que hoy en dia casi nadie intenta optimizar imaginad una aplicacion de dimensiones mucho mayores que necesitaria memoria y encima meteriamos basura.

He que con esto no intento influir mi opinion es eso solo mi opinion.

gracias y saludos

Hola KroSaver.

No estoy de acuerdo con que el utilizar bibliotecas sea incluir basura. Con dicos rígidos de 1TB y 4, 8, 16 Gb de RAM corriendo en varios núcleos a velocidades que meten miedo, hoy por hoy (y tenes razón) espacio y velocidad no son aspectos que preocupen a muchos. Ni comparar cuando en asm mezquinabamos bits de nuestros 64Kb para el Z-80, TSM9900, VIC-V20,... y funcionando de 1 a 3 Mhz!!!... :rolleyes:

Mi experiencia dice que en el reemplazo por rutinas propia la ganancia de velocidad será: La mayoría de las veces ninguna, muy pocas veces será nula y en contados casos alguna. (No vamos a creer que los que diseñan las bibliotecas son flojos de entendederas... :))

Si tus metas son la velocidad y tamaño, te recomendaría usar C, Pascal o Assembler (ningún código será mas compacto, veloz y eficiente que el generado por un buén programador de assembler).

Delphi y Builder C++ generarán ejecutables más voluminosos pero superan con creces esos detalles con una drástica disminución del tiempo de desarrollo, gran facilidad de mantenimiento, sencillez en la conexión con bases de datos, etc, etc.

Lo anterior dicho desde la vereda profesional con las exigencias y presiones que eso supone, pero como nos comentas que estás aprendiendo, es excelente que te intereses por intentar comprender, reemplazar e incluso mejorar las funciones de biblioteca.
Es la actitud que hace falta, no me cabe duda que llegarás ser un buén programador en menos tiempo de lo que supones.

Saludos.

KroSaver 21-02-2013 11:37:44

Cita:

Empezado por ecfisa (Mensaje 455314)
Hola KroSaver.

No estoy de acuerdo con que el utilizar bibliotecas sea incluir basura. Con dicos rígidos de 1TB y 4, 8, 16 Gb de RAM corriendo en varios núcleos a velocidades que meten miedo, hoy por hoy (y tenes razón) espacio y velocidad no son aspectos que preocupen a muchos. Ni comparar cuando en asm mezquinabamos bits de nuestros 64Kb para el Z-80, TSM9900, VIC-V20,... y funcionando de 1 a 3 Mhz!!!...

Mi experiencia dice que en el reemplazo por rutinas propia la ganancia de velocidad será: La mayoría de las veces ninguna, muy pocas veces será nula y en contados casos alguna. (No vamos a creer que los que diseñan las bibliotecas son flojos de entendederas... )

Si tus metas son la velocidad y tamaño, te recomendaría usar C, Pascal o Assembler (ningún código será mas compacto, veloz y eficiente que el generado por un buén programador de assembler).

Delphi y Builder C++ generarán ejecutables más voluminosos pero superan con creces esos detalles con una drástica disminución del tiempo de desarrollo, gran facilidad de mantenimiento, sencillez en la conexión con bases de datos, etc, etc.

Lo anterior dicho desde la vereda profesional con las exigencias y presiones que eso supone, pero como nos comentas que estás aprendiendo, es excelente que te intereses por intentar comprender, reemplazar e incluso mejorar las funciones de biblioteca.
Es la actitud que hace falta, no me cabe duda que llegarás ser un buén programador en menos tiempo de lo que supones.

Saludos.

Estoy totalmente deacuerdo contigo pero es eso que cada uno pensamos de una manera, la verdad ahora mismo como tu as dicho preocupa poco el tamaño del ejecutable y su velocidad pero segun para que cosas.

Y bueno nada sigo con esa duda como ago para declarar una max_path char eso es lo unico que necesito porque lo que es la funcion de busqueda me la haria yo sin problema, es un problema bastante tonto pero nada no veo como declarar asi la char.

saludos y buena comunidad teneis la verdad!

dec 21-02-2013 11:50:08

Cita:

Empezado por roman (Mensaje 455275)
Me parece que esto es redundante. Siendo Result una variable boolean, se inicializa a false automáticamente :p :D

// Saludos

Conviene dejar las cosas claras. :D

Casimiro Noteví 21-02-2013 11:51:14

Cita:

Empezado por KroSaver (Mensaje 455290)
El caso es que yo intento programar y aprender a programar...

Cita:

Empezado por KroSaver (Mensaje 455316)
Estoy totalmente deacuerdo contigo pero es eso que cada uno pensamos de una manera...

Hola, si intentas aprender a programar, entonces deberías de hacer caso a las personas que te están ayudando, todos ellos llevaban años programando antes de que tú nacieras :D, realmente, además de otros compañeros de clubdelphi, están en la lista (*) de los mejores programadores del mundo, no es broma.
Ellos dirán que no es cierto, por humildad, pero lo son.


(*) suponiendo que exista esa lista ;)

.

KroSaver 21-02-2013 12:37:55

Casimiro tranqui tio que no digo que no sepais no seas ingnorante y lee bien lo que escribi tengo esa duda y yasta como digo en todos los mensages cada uno programa como quiere ok?

Asique si vas a decirme esas tonterias creo que te equivocastes de sitio.

Un moderador deveria de leer y no acomodar las frases de otro antes de contestar de esa manera:

Cita:

El caso es que yo intento programar y aprender a programar asi porque asi me libero de codigo basura y las aplicaciones irian mas fluidas, rapidas y claro esta sin ensuciar la memoria
saludos, sigo con esa duda

Casimiro Noteví 21-02-2013 12:52:58

Cita:

Empezado por KroSaver (Mensaje 455327)
Casimiro tranqui tio que no digo que no sepais no seas ingnorante y lee bien lo que escribi tengo esa duda y yasta como digo en todos los mensages cada uno programa como quiere ok?
Asique si vas a decirme esas tonterias creo que te equivocastes de sitio.
saludos, sigo con esa duda

Cierto, cada uno programa como quiere y sabe. Algunos bien y otros mal.
Por cierto, lo que dije antes no es ninguna tontería. Eres nuevo aquí y no puedes opinar correctamente sobre eso.

KroSaver 21-02-2013 13:07:19

Como asi? no puedo opinar?

Aver no intento "INFLUIR MI OPINION ES SOLO MI OPINION" letras mayus por si te lo saltas y no lo lees.

1º ¿Cual es mi duda?

Como declaro la char con MAX_PATH al declarar la funcion.

2º ¿He pedido yo que me den uan funcion que me encuentre una cadena en texto?

No.

3º No quiero hacer de una duda una discusion encima con un moderador que no lee antes de escribir ¿Vale?

saludos y cerrad el tema porque creo que no se me entendio en mi duda dadlo por solucionado.

Casimiro Noteví 21-02-2013 14:26:32

No te sulfures, amigo, creo que el que no ha leído bien has sido tú, yo no he dicho que no puedas opinar, por favor. Lo que he puesto ha sido: no puedes opinar correctamente, sobre si son buenos o malos programadores, porque no los conoces.

Tan sólo trataba de darte a entender que siguieras los consejos de personas que saben y tienen muchísima experiencia.
Pero si no te gusta, no hay problema, como bien dices tú: cada uno programa como quiere.

Desde luego que no voy a iniciar ninguna discusión, tengo otras cosas mejores que hacer, y tú también, seguro ;)

movorack 21-02-2013 14:50:17

Hola KroSaver,

Con todo respeto y también al igual que casimiro (Que en otras, tiene mas paciencia que muchos... por lo menos que yo) opino que debido a tu inexperiencia y desconocimiento. Estás intentando cosas que si escucharas a quienes te están prestando la ayuda, solventarías de una manera mas sencilla.

Y pues, como te dijeron ya. Delphi, te ofrece no solo un buen IDE, sino un framework (VCL) catalogado como uno de los mejores

Que si quieres puedes obviarlo y volver a pascal puro (puedes usar free pascal), pero si instalas Delphi es porque quieres usar las bondades del mismo, como son acceso rápido a datos, el diseño rápido de aplicaciones y la cantidad de funciones que vas a encontrar.

Mira, en DelphiBasics, puedes encontrar referencias y ejemplos de como usar muchísimas funciones de Delphi que te ayudarán a no reinventar la rueda.

Con respecto a tu duda, puedes declarar un arreglo dinámico como parámetro de una función

Código Delphi [-]
function EncontrarCadena(Cadena : array of char) : boolean
begin
end;

//Ejemplo de uso
if EncontrarCadena(['H','a','s','t','a',' ','l','a',' ','v','i','s','t','a',' ','b','a','b','y']) then
  ShowMessage('Terminator');

KroSaver 21-02-2013 15:22:48

Gracias mavorack!

Casimiro donde ves tu que aya dicho yo que alguien sea mal programador? Alguien como yo que se esta inciando no se permitiria eso pero de algo se y lo digo y yasta es mi manera de hacer als cosas y punto no digo que si alguien lo aga de otra manera sea mal programador porque es ridiculo decir algo asi xD

gracias a todos y saludos SOLUCIONADO

Casimiro Noteví 21-02-2013 16:03:55

Cita:

Empezado por KroSaver (Mensaje 455340)
Casimiro donde ves tu que aya dicho yo que alguien sea mal programador? Alguien como yo que se esta inciando no se permitiria eso pero de algo se y lo digo y yasta es mi manera de hacer als cosas y punto no digo que si alguien lo aga de otra manera sea mal programador porque es ridiculo decir algo asi xD

Siento no entender correctamente lo que has escrito, con tantas faltas de ortografía, signos de puntuación, acentos, falta de puntos y comas, etc. es difícil entenderte.
De todas formas, me alegro de que lo hayas solucionado.

KroSaver 21-02-2013 16:17:40

Un moderador muy maduro xD no detico tiempo para escribir bien agente asi xD

deja de discutir inmaduro

movorack 21-02-2013 16:21:08

Te recomiendo leas un poco de la guía de estilo
Cita:

Empezado por Guia de Estilo
La lengua de Cervantes, García Márquez ...

Aunque no te pedimos que escribas como los ya mencionados (la mayoría somos de ciencias y no de letras) sí un mínimo de elegancia literaria. Es decir, revisa tus mensajes y corrige faltas de ortografía. El mensaje y lo que escribes son indirectamente tus representantes ante el resto de usuarios. Además, no tengas miedo en escribir que el espacio no se acaba. Intenta expresar lo más detalladamente posible tus problemas; cuanta más información des a los demás, antes podrás encontrar la solución exacta a tu duda.

Como consejo, una segunda lectura de lo que has escrito ayuda bastante.

En cuanto a los modismos propios de cada país, pedimos que no hagas uso de ellos, ten en cuenta que es posible que sólo te entiendan los de tu país y la ayuda que buscas puede venir de cualquier otro.

La lengua oficial de los foros es el castellano, si necesitas hablar en otro idioma seguro que en Internet encuentras otro lugar más adecuado a tus necesidades.


KroSaver 21-02-2013 16:41:13

Si movorack lo siento por los otros usuarios pero vino provocando por que es un ignorante, dio muy mal ejemplo del foro.

movorack gracias de nuevo porque solucione eso con tu ayuda.



Y cierren el tema ya porque acabare con un ban de casimiro que es lo que intenta conseguir con sus provocaciones.

saludos

Casimiro Noteví 21-02-2013 16:54:10

Cita:

Empezado por KroSaver (Mensaje 455349)
Y cierren el tema ya porque acabare con un ban de casimiro que es lo que intenta conseguir con sus provocaciones.

¿Provocaciones? :confused:

roman 21-02-2013 16:55:41

Cita:

Empezado por ecfisa (Mensaje 455314)
[...] en el reemplazo por rutinas propia la ganancia de velocidad será: La mayoría de las veces ninguna, muy pocas veces será nula y en contados casos alguna. (No vamos a creer que los que diseñan las bibliotecas son flojos de entendederas... :))

Yo añadiría que en muchos casos no sólo no hay ganancia sino al contrario, pérdida.

// Saludos

KroSaver 21-02-2013 17:07:03

Cita:

Empezado por roman (Mensaje 455351)
Yo añadiría que en muchos casos no sólo no hay ganancia sino al contrario, pérdida.

// Saludos

Vale :) yo prefiero hacer las cosas con mis manos no tenerlas echas no entiendo porque la tomaron conmigo por querer hacer una funcion de nuevo pero a mi manera.

Y siempre abra perdida porque esa libreria seguro tiene mas que esa funcion y es algo que se compila y esta ahi inutilmente, pero buelvo a decir cada uno hace como el quiere y opina como quiere.

Si tomais asi las opiniones de otros muy bien por vosotros :D.

saludos

roman 21-02-2013 17:32:55

No lo tomes a mal. Entiendo ese gusto de querer hacerlo uno mismo y no está mal. No te estoy criticando y no creo que los demás compañeros lo estén haciendo. Simplemente son puntos de vista que puedes o no tomar en cuenta y no pasa nada.

Por ejemplo, no sé si lo sepas o si ya lo mencionaron aquí, pero una de las grandes virtudes de delphi es que su enlazador hace un excelente trabajo quitando toda la "basura" al momento de construir el ejecutable. Es decir, aunque incluyas muchas bibliotecas en el código fuente, el enlazador toma de ellas sólo lo estrictamente necesario omitiendo código que no se usa. De manera que esto:

Cita:

Empezado por KroSaver
porque esa libreria seguro tiene mas que esa funcion y es algo que se compila y esta ahi inutilmente

no es cierto.

Entonces, es algo que no sabías y ahora lo sabes y puede o no cambiar tu punto de vista. Por eso te lo decimos, no por criticar sino por ampliar tu panorama.

// Saludos

movorack 21-02-2013 17:37:32

Y además que en delphi puedes usar paquetes dinámicos, lo que reducirá notablemente el tamaño de los ejecutables.

Cita:

Empezado por Neftali
Cuando uno empieza a conocer Delphi (al menos a mi me pasó) y dependiendo de si “viene” de otros lenguajes, se hace un lío con las diferentes formas en que podemos generar un programa; Con la forma de trabajar con packages o sin packages, con los ficheros a distribuir,… Y le empiezan a surgir diferentes preguntas:

¿Porqué mi ejecutabe ocupa tanto si sólo he puesto un botón?
¿Qué son los packages de liberías? ¿Los debo copiar con mi aplicación?
¿Porque si marco “Build with runtime packages” mi programa ocupa tampoco?
¿Porque si marco “Build with runtime packages” mi programa no funciona en otras máquinas?
¿Como trabajar con DLL’s? ¿Y con BPL’s? ¿Cual es mejor? ¿Es lo mismo?


Y muchas otras relacionadas...


KroSaver 21-02-2013 17:44:05

Cita:

Empezado por roman (Mensaje 455358)
No lo tomes a mal. Entiendo ese gusto de querer hacerlo uno mismo y no está mal. No te estoy criticando y no creo que los demás compañeros lo estén haciendo. Simplemente son puntos de vista que puedes o no tomar en cuenta y no pasa nada.

Por ejemplo, no sé si lo sepas o si ya lo mencionaron aquí, pero una de las grandes virtudes de delphi es que su enlazador hace un excelente trabajo quitando toda la "basura" al momento de construir el ejecutable. Es decir, aunque incluyas muchas bibliotecas en el código fuente, el enlazador toma de ellas sólo lo estrictamente necesario omitiendo código que no se usa. De manera que esto:



no es cierto.

Entonces, es algo que no sabías y ahora lo sabes y puede o no cambiar tu punto de vista. Por eso te lo decimos, no por criticar sino por ampliar tu panorama.

// Saludos

No savia eso amigo, otra razon para seguir viendo delphi!

Si ofendi a alguien pido disculpas!

Y si me gusta hacer la cosas yo asi se aprende mejor y mas rapido porque a la final esas funciones siempre podras usarlas cuando quieras.

saludos y gracias


La franja horaria es GMT +2. Ahora son las 18:38:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi