Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Qué le añaden a sus programas? (https://www.clubdelphi.com/foros/showthread.php?t=83479)

José Luis Garcí 22-06-2013 15:03:12

¿Qué le añaden a sus programas?
 
Hola compañeros tengo una inquietud por saber que digamos extras le añaden a sus programas y con que combinación de colores suelen jugar, como el tema de los colores de mis programas los pueden ver en este hilo http://www.clubdelphi.com/foros/show...t=83457&page=5 pongo a continuación algo suelo añadir normalmente en el módulo del menú del programa, se trata de lo siguiente:

Pongo normal mente un botón, con el siguiente código
Código Delphi [-]
//------------------------------------------------------------------------------
//**************************************************[ Corrector Ortográfico ]****
//------------------------------------------------------------------------------
begin
   ShellExecute(FMenuPrincipal.Handle, nil, PChar('http://www.correctorortografico.com'),'','',SW_SHOWNORMAL);
end;

permitiendo corregir la ortografía de un texto por el método claro copiar y pegar a través de Internet

Pongo normal mente otro botón, con el siguiente código
[DELPHI[/delphi]

Llamando al traductor de google, por el método claro copiar y pegar a través de Internet

Suelo añadir el siguiente código que ha ido evolucionando con los años que me permite crear anotaciones en fechas y marcarlas en el calendario



Código Delphi [-]

//haycambios:Boolean;   //Variable pública

//------------------------------------------------------------------------------
//*************************************[ MonthCalendar Click (ANOTACIONES) ]****
//------------------------------------------------------------------------------
var a,m,d:word;
begin      //Falta descodificar y comprobar el nivel de usuario
        if haycambios then
        begin
           if (MessageBox(0, 'Hay una anotación nueva o modificada, '+#13+#10+ '¿Desea grabarla?',   // Aqui no se porque me manda la última comilla simple y la coma a la linea de abajo,
                                                                                       //  por favor subir al final de la linea anterior
                              'Atención', MB_ICONSTOP or MB_YESNO or MB_DEFBUTTON2) = ID_No) then abort
           else memo3.Lines.SaveToFile(fechaactual);
           haycambios:=False;
        end;
        DecodeDate(MonthCalendar3.Date, a, m,d);
        fechaactual:=IntToStr(d)+'_'+IntToStr(m)+'_'+IntToStr(a);
        memo3.Lines.Clear;
        if FileExists(fechaactual) then memo3.Lines.LoadFromFile(fechaactual);
        haycambios:=false;
        PAnel13.caption:='Anotaciones para el '+ DateTostr(MonthCalendar3.Date);
        mesx:=m;
        Diax:=D
end;


procedure TFMenuPrincipal.MonthCalendar3GetMonthInfo(Sender: TObject;
  Month: Cardinal; var MonthBoldInfo: Cardinal);
//------------------------------------------------------------------------------
//*******************************[ MonthCalendar (anotaciones)  preparamos ]****
// MArcamos lod ías para los que hay notas y coloreamos
//------------------------------------------------------------------------------
var a,m,d:Word;
    i,cont, Mes:integer;
    dia:array[1..365] of cardinal;
    varNDias:Double;
    varFinicio,varfFin,varFactual:TDate;
begin
   uxtheme.SetWindowTheme(MonthCalendar3.Handle, '', '');  //Desactiva los temas usar uses UxTheme
   DecodeDate(Now, a, m ,d);
   fechaactual:=IntToStr(d)+'_'+IntToStr(m)+'_'+IntToStr(a);
   cont:=0;
   varFinicio:=strtodate('01/01/'+IntToStr(a));
   varffin:=strtodate('01/01/'+inttostr(a+1));
   varndias:=varffin-varfinicio;
   varfactual:=varfinicio;
   Mes:=1;
   for I := 1 to strtoint(FloatToStr(varndias)) do
   begin
      DecodeDate(varFactual, a, m ,d);
      fechaactual:=IntToStr(d)+'_'+IntToStr(m)+'_'+IntToStr(a);
      if (Mes<>M) then
      begin
         if Month=mes then MonthCalendar3.BoldDays(dia,MonthBoldInfo);
         ZeroMemory(@Dia,SizeOf(Dia));    //PAra vaciar el array
         Mes:=M;
         cont:=0;
      end;
      if FileExists(fechaactual) then
      begin
        cont:=cont+1;
        dia[Cont]:=strtoint(FloatToStr(d));
      end;
      if ((M=12) and (D=31)) then
      begin
        if Month=12 then MonthCalendar3.BoldDays(dia,MonthBoldInfo);
         ZeroMemory(@Dia,SizeOf(Dia));    //PAra vaciar el array
         Mes:=M;
         cont:=0;
      end;
      varFactual:=varFactual+1;
   end;
end;


procedure TFMenuPrincipal.SpeedButton30Click(Sender: TObject);
//------------------------------------------------------------------------------
//*****************************************************[ Crea la anotación ]****
//------------------------------------------------------------------------------
begin
    if haycambios then memo3.Lines.SaveToFile(fechaactual);
    MonthCalendar3.Date:= MonthCalendar3.Date+365;
    MonthCalendar3.Date:= MonthCalendar3.Date-365;
    Memo3.Lines.Clear;
    haycambios:=False;
end;

procedure TFMenuPrincipal.SpeedButton31Click(Sender: TObject);
//------------------------------------------------------------------------------
//****************************************************[ Borra la anotación ]****
//------------------------------------------------------------------------------
function BorrarArchivo(Ruta:string):boolean;
begin   //bajado de http://www.creatusoftware.com/index....d=85&Itemid=41
    //Borrar archivo
    if (DeleteFile(PChar(Ruta))) then
    begin
        //Archivo borrado
        Result:=true;
    end
    else
    begin
        //Archivo no borrado
       Result:=false;
    end;
end;
begin
   Memo3.Lines.Clear;
   haycambios:=False;
   BorrarArchivo(fechaactual);
   MonthCalendar3.Date:= MonthCalendar3.Date+365;
   MonthCalendar3.Date:= MonthCalendar3.Date-365;
end;

procedure TFMenuPrincipal.Memo3Change(Sender: TObject);
//------------------------------------------------------------------------------
//************************************************[ Cambios en anotaciones ]****
//------------------------------------------------------------------------------
begin
        haycambios:=true;
end;

Además suelo poner una agenda para los contactos, que se pueda abrir la calculadora y que recuerde poco más.

Espero participeis y con vuestras aportaciones, generar cada vez ejecutables más completos y atractivos.

Casimiro Notevi 22-06-2013 19:34:45

Una utilidad para enviar mensajes a otros usuarios, es una tabla en la BD con los usuarios origen y destino, la fecha, leido s/n, el texto y poco más.
Cuando se conecta un usuario se verifica si hay algún mensaje para él. También se comprueban cada x minutos, es una especie de "email" interno en el programa:

Paco, avísame cuando llegues.
Federico, si vienes para el almacén, no olvides traer el pedido de ayer.
etc.

fjcg02 22-06-2013 22:52:12

Iba a comentar lo mismo que Casimiro, pero añadiendo sí se necesita un enlace a un registro de una entidad. Por ejemplo a un albaran o a una factura...

paco, revisa esta factura que tengo alguna duda, y referenciarla. Que la creación del mensaje se pueda hacer desde las propias facturas, albaran es, pedidos,...

Saludos

José Luis Garcí 23-06-2013 09:25:46

Os refieres a mensajes internos o emails?

Casimiro Notevi 23-06-2013 10:22:21

Mensajes internos y sólo entre los usuarios del programa.
Aunque si existen varias sucursales conectadas al mismo servidor central, obviamente, serán mensajes "externos" :)

newtron 23-06-2013 11:11:29

Aunque igual no es exactamente lo que preguntas yo en mi programa de gestión tengo 4 teclas de acceso en cualquier sitio de la aplicación para acceder con un F.. a una Calculadora, Clientes, Proveedores y a poder ver el precio de un artículo para un cliente. Es muy habitual en la mayoría de las empresas que alguien llegue y te pregunte...."¿oye, qué cuesta esto? ¿tienes existencias?", de esta manera estés donde estés pulsas el F.. y se abre una ventana en la que te pregunta el artículo y el cliente y te da el PVP del artículo y las existencias en cada uno de los almacenes y si ese cliente tiene condiciones especiales de descuentos, precio especial, etc. te lo pone también, de esta forma puedes dar un precio exacto a un cliente sin tener que irte a la opción de Ventas o presupuestos. El acceso a clientes o proveedores lo tengo por si en cualquier momento necesitan consultar algún dato tenerlo más a mano.



Saludos

José Luis Garcí 23-06-2013 11:24:49

Gracias Casimiro, lo que haces es entonces a través de la red, se que existía una utilidad, que trae el windows, para comunicarse entre puestos dentro de una red y una vez mire algo en programación de una especie de mesenger para redes, pero ni recuerdo el sistema ni la página.

Newtron, la verdad que es una muy buena idea, claro que yo le añadiría la opción sobre cliente o proveedor, por que también es típico que el jefe te pregunte "Oye cuanto cuesta tal xxxx de Fulanito(Proveedor)"

Casimiro Notevi 23-06-2013 13:21:48

Cita:

Empezado por José Luis Garcí (Mensaje 462647)
Gracias Casimiro, lo que haces es entonces a través de la red, se que existía una utilidad, que trae el windows, para comunicarse entre puestos dentro de una red y una vez mire algo en programación de una especie de mesenger para redes, pero ni recuerdo el sistema ni la página.

Desconozco eso, lo que hago es una simple mensajería dentro del programa, los datos (mensajes) se guardan en una tabla.

fjcg02 23-06-2013 15:33:40

Cita:

Empezado por Casimiro Notevi (Mensaje 462650)
Desconozco eso, lo que hago es una simple mensajería dentro del programa, los datos (mensajes) se guardan en una tabla.


Igualito igualito...
Saludos

newtron 24-06-2013 12:14:46

Cita:

Empezado por José Luis Garcí (Mensaje 462647)
Newtron, la verdad que es una muy buena idea, claro que yo le añadiría la opción sobre cliente o proveedor, por que también es típico que el jefe te pregunte "Oye cuanto cuesta tal xxxx de Fulanito(Proveedor)"

"Pos" ya sabes. :D

TiammatMX 24-06-2013 18:12:36

Feo, fuerte y formal
 
Cuando me toca ver un sistema o programa o aplicación o como quieran decirle, hecha para Windows y que parece carpa de circo de pueblo con tantos colores, monerías, iconos animados, imágenes y así SIN QUE LAS NECESITE, de inmediato pienso en una modelo de pasarela, alta, rubia, anoréxica..., y bonita pero sin cerebro.

Yo soy programador con ideas muy arraigadas acerca de la interfaz del usuario: Microsoft diseñó un estándard gráfico y de presentación visual para los programas destinados a trabajar con Winbugs al cual TODOS deberíamos apegarnos, y yo ni nadie somos quién para decir "voy a hacer algo original, que se vea bonito y que no parezca Windows", por que entonces se está desvirtuando el uso de la plataforma.

Optaré siempre por un programa feo, fuerte y formal, aunque no tenga muchas imágenes bonitas ni florituras que no sirven para nada.

MAXIUM 24-06-2013 21:03:21

Existio un momento que se me ocurrio inscrustar el código fuente comprimido dentro del ejecutable y una vez dentro del menú ayuda > acerca de... realizar una serie de combinaciones de teclas para recuperarlo.

La idea era tener el código fuente siempre disponible en caso de perdida.

Casimiro Notevi 24-06-2013 21:30:08

Yo simplemente lo añado en un directorio dentro del programa, en un zip :)

newtron 25-06-2013 09:44:10

Cita:

Empezado por Casimiro Notevi (Mensaje 462714)
Yo simplemente lo añado en un directorio dentro del programa, en un zip :)

¿el fuente del programa? :eek::eek:

Casimiro Notevi 25-06-2013 11:01:34

Cita:

Empezado por newtron (Mensaje 462746)
¿el fuente del programa? :eek::eek:

jeje... pues sí, si alguna empresa me encarga un programa, siempre adjunto el fuente aunque no lo haya pedido.
Claro, en las empresas donde he trabajado no hacía eso, no era "mi" programa, ni me lo habían encargado a mi.

Julián 25-06-2013 18:55:37

Yo hago lo mismo que Casimiro.

Es una ventaja para el cliente, y tambien para mí.

Un saludo!

mamcx 25-06-2013 19:01:36

Logs!!!!!

Logs por todos lados.

Logeo tambien los SQL, las entradas y salidas de procesos, llamadas a cosas importantes, etc.

Y ahora con servicios como http://loggr.net/ es posible ver el log y demás datos remotamente (ahora estoy pensando en poner metricas y otras cosas. Estoy es mirando como anonimizar de forma correcta)

De todo lo que se puede hacer, tener logs de las apps es lo que mas me ha salvado.

MAXIUM 26-06-2013 03:19:13

¿En verdad entregar el código fuente?. Por estos lugares eso es un "producto" a parte con un valor incluso superior al compilado...

mamcx 26-06-2013 03:40:08

Cita:

Empezado por MAXIUM (Mensaje 462788)
¿En verdad entregar el código fuente?. Por estos lugares eso es un "producto" a parte con un valor incluso superior al compilado...

Eso depende del enfoque del negocio. Es servicios o productos? Si es servicios, el producto (codigo) es un añadido. Si es producto, el servicio es un añadido.

newtron 26-06-2013 10:13:44

Cita:

Empezado por MAXIUM (Mensaje 462788)
¿En verdad entregar el código fuente?. Por estos lugares eso es un "producto" a parte con un valor incluso superior al compilado...

Si vendes un programa estandarizado no vas a entregar los fuentes, otra cosa es que hagas un proyecto a medida a un cliente y se pacte previamente el entregarlo.


La franja horaria es GMT +2. Ahora son las 14:26:39.

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