Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   La Taberna (https://www.clubdelphi.com/foros/forumdisplay.php?f=40)
-   -   Hagamos entre todos un programa (No Novatos) (https://www.clubdelphi.com/foros/showthread.php?t=58467)

Caral 21-07-2008 19:35:08

Hagamos entre todos un programa (No Novatos)
 
Hola
Pues eso, hagamos entre todos un programa (no aceptemos Novatos).
Yo aporto el primer par de códigos:
Por supuesto el Acerca de:
Código Delphi [-]
uses   ShellApi;  begin   ShellAbout(Application.MainForm.Handle,           PChar('Primer Programa NO Novatos del Club#Quien sabe'),
          PChar('Super Programa, No Novatos' + #13#10 + 
                'Derechos de autor registrados.'),
          Application.Icon.Handle);
end;


Y el primer mensaje:
Código Delphi [-]
MessageBox(Handle, 
             PChar('Ha tenido el privilegio de adquirir este primer programa NO Novatos.' + #13#10 + 
                   'Welcome o lo que es lo mismo Bien Comido.' + #13#10 + 
                   'Pronto conseguirá las mas notables actualizaciones.'), 
             PChar('Programa No Novatos'),
             MB_OKCANCEL + MB_DEFBUTTON1 + MB_APPLMODAL);

Bueno, ya empece, quien aportara mas codigo??, eso si, que sea de la calidad No Novato.:D:D
Saludos

enecumene 21-07-2008 19:36:53

Ahh creo que mi vista falló porque pensé que estaba en el hilo de humor, :D:D

Caral 21-07-2008 19:47:20

Hola
Bueno, tomadlo en serio, que, acaso estamos en la Taberna.:D
Aqui va el siguiente codigo:

Código Delphi [-]
uses
  ShellAPI, ShlObj, ActiveX;

var
  pidl, pidlSelected: PItemIDList;
  BrowseInfo: TBrowseInfo;
  Directorio: string
begin
  if SHGetSpecialFolderLocation(Handle, CSIDL_DESKTOP, pidl) = NOERROR then
  begin
    with BrowseInfo do
    begin
      hwndOwner := Handle;
      pidlRoot := pidl;
      GetMem(pszDisplayName, MAX_PATH);
      lpszTitle := PChar('Busque el Programa No Novatos' + #13#10 + 
                         'Seguro estara por aqui, Si no lo encuentra, Reinstalelo.');
      ulFlags := BIF_BROWSEINCLUDEFILES;
      lpfn := nil;
      lParam := 0;
      iImage := -1;
    end;
    pidlSelected := SHBrowseForFolder(BrowseInfo);
    if pidlSelected <> nil then
    begin
      SHGetPathFromIDList(pidlSelected, BrowseInfo.pszDisplayName);
      Directorio := StrPas(BrowseInfo.pszDisplayName);
      CoTaskMemFree(pidlSelected);
    end;
    FreeMem(BrowseInfo.pszDisplayName);
    CoTaskMemFree(pidl);
  end;
end;
Saludos

JXJ 21-07-2008 19:47:53

eso no sirve caral

hagamos un peer to peer (p2p)
o un download manger, como el flashget.

ambos soporten el protocolo de bittorrent, el de emule. edonkey.
y el de limewire.

Caral 21-07-2008 19:49:42

Hola
Cita:

Empezado por JXJ (Mensaje 301990)
eso no sirve caral

hagamos un peer to peer (p2p)
o un download manger, como el flashget.

ambos soporten el protocolo de bittorrent, el de emule. edonkey.
y el de limewire.

Como que no sirve, si estamos empezando, eso del pier tu pier me parece bien, te encargo el codigo:D
Saludos

Caral 21-07-2008 19:56:49

Hola
Bueno os estoy esperando.:D:D

Código Delphi [-]
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Paint;
end;

procedure TForm1.FormPaint(Sender: TObject);
var
  buffer: tbitmap;
  h, m, s, ms: word;
begin
 decodetime(now,h,m,s,ms);
 buffer:=tbitmap.create;
 with buffer do
  begin
   Width:=200;
   height:=200;
   Canvas.Pen.Color:=color;
   canvas.Brush.Color:=color;
   canvas.Rectangle(0,0,200,200);
   Canvas.Pen.Width:=1;
   Canvas.Pen.Color:=cllime;
   canvas.Brush.Color:=rgb(150,200,255);
   Canvas.Ellipse(0,0,200,200);
   Canvas.Pen.Width:=1;
   Canvas.Pen.Color:=clred;
   Canvas.MoveTo(100+Trunc( sin(s/9.65)*100),100+Trunc(-cos(s/9.65)*100));
   Canvas.LineTo(100,100);
   Canvas.Pen.Width:=2;
   Canvas.Pen.Color:=0;
   Canvas.MoveTo(100+Trunc( sin(m/9.65)*100),100+Trunc(-cos(m/9.65)*100));
   Canvas.LineTo(100,100);
   Canvas.Pen.Width:=3;
   Canvas.Pen.Color:=0;
   Canvas.MoveTo(100+Trunc( sin(h/1.95)*50),100+Trunc(-cos(h/1.95)*50));
   Canvas.LineTo(100,100);
  end;
 canvas.Draw(0,0,buffer);
 buffer.Free;
 caption:=timetostr(now);
end;
Saludos

egostar 21-07-2008 19:58:57

Aqui mi gran aportación al programa

Código Delphi [-]
procedure TAboutBox.ContactClick(Sender: TObject);
begin
  ShellExecute(GetDesktopWindow(),nil,
               pChar('mailto:caral@sudominio.org.cr'),
               nil,nil,SW_SHOWNORMAL);
end;

:D:D:D

Salud OS

Caral 21-07-2008 20:01:39

Hola
Grande amigo, grande.:D
A ver si alguien mas aporta, que este programa lo voy a vender muy bien.:D:D:D
Saludos

Caral 21-07-2008 20:05:57

Hola
Este es muy útil, así que no puede faltar en el programa.:D

Código Delphi [-]
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, TrayIcon, ShellApi;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    TrayIcon1: TTrayIcon;
    procedure Timer1Timer(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
   IconData : TNotifyIconData;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses MMSystem;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   waveOutSetVolume(0, 0);
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
   with IconData do
    begin
      cbSize := sizeof(IconData);
      Wnd := Handle;
      uID := 100;
      uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
      uCallbackMessage := WM_USER + 1;
      hIcon := Application.Icon.Handle;
      StrPCopy(szTip, Application.Title);
    end;
    Shell_NotifyIcon(NIM_ADD, @IconData);
   Hide;
   TrayIcon1.Visible:=True;
end;

Saludos

coso 21-07-2008 20:53:52

hay algun programa que, dandole los ficheros fuente de un proyecto, te dibuje el organigrama? :D es una idea...

enecumene 21-07-2008 21:04:13

Cita:

Empezado por coso (Mensaje 302029)
hay algun programa que, dandole los ficheros fuente de un proyecto, te dibuje el organigrama? :D es una idea...

¡Claro que sí!, haciendolo a mano :D :D

egostar 21-07-2008 21:40:56

Cita:

Empezado por coso (Mensaje 302029)
hay algun programa que, dandole los ficheros fuente de un proyecto, te dibuje el organigrama? :D es una idea...

Que te parece el Model View que ya viene con Delphi :)

Salud OS

Al González 21-07-2008 22:06:03

Mi aportación:
http://www.clubdelphi.com/foros/showthread.php?t=53146
(por si llegásemos a necesitar objetos superglobales).

Saludos.

Al.

coso 21-07-2008 22:43:39

mmm no lo sabia lo del modal view (voy a actualizar ya mi delphi 5, ya me da hasta verguenza :)), igualmente mi idea era con sus rombitos, rectangulitos, comentarios, sus flechas de yes or no :D esas cosas, que a veces uno se pierde con el "codigo spaguetti"

pcicom 22-07-2008 02:34:04

Yo tambien quiero colaborar

Código Delphi [-]

       i:= 0;


Lo pueden poner antes de un ciclo for o while,, este codigo ya fue probado, y creo que no me ha fallado aun..
:) :) :)

Aunque se pued mejorar... :D

Caral 22-07-2008 02:47:15

Hola
Me gustan estos códigos tan sofisticados, pero si no funciona mejor lo verifican:

Código Delphi [-]
If i <> 0 then
Showmessage('pcicom se ha equivocado')
else
Showmessage('pcicom vas bien amigo, vas bien')
Saludos

pcicom 22-07-2008 02:56:07

Cita:

Empezado por Caral (Mensaje 302124)
Hola
Me gustan estos códigos tan sofisticados, pero si no funciona mejor lo verifican:

Código Delphi [-]
If i <> 0 then
Showmessage('pcicom se ha equivocado')
else
Showmessage('pcicom vas bien amigo, vas bien')
Saludos


Por eso dije que se podia mejorar.... en estos momentos actualizare todas mis apps... donde tengo este codigo,,, antes de que empiezen a generar la pantalla azul de ms... pa que luego no lo culpen de a gratis... jejejejej

Gracias CARAL, me ha sido de mucha ayuda tu aportacion, no la habia visto desde ese punto de vista...


Ha... otra cosa el codigo que puse marca error en Visual Studio VB, seguro hay que debuguearlo...

jejeje
:D

Neftali [Germán.Estévez] 22-07-2008 09:43:20

Cita:

Empezado por coso (Mensaje 302029)
hay algun programa que, dandole los ficheros fuente de un proyecto, te dibuje el organigrama?

O EssModel, que puedes bajar con código fuente incluído y que además está hecho en Delphi. :D:D:D


coso 22-07-2008 09:57:20

mmm, si pero no. Me referia a el recorrido del programa, vamos, algo asi:

Código Delphi [-]
     
                         _main: Activate
                                |
                      _main: Poner_labels;
                                |                                           
(rombo :D)      _main:label = 'muestra' ------F-----------------------|
                                |                                   |
                                T                                   |
                                |                                   |
                      _main: ask.ShowModal      _main:label3.Visible := false
                                                                    |
                                                 (elipse): consulta_SQL.Active := true
claro esta, que si pulsas a una linea te abriera el codigo fuente en delphi en esa linea, y te fuese alla, con la opcion del + y del - como el tree view, y si fuese integrado con el debugger ya seria la repera .

coso 22-07-2008 10:00:39

creo que le estoy desvirtuando el hilo a Caral :D a ver si encuentro algo que pueda aportar...

RolphyReyes 22-07-2008 13:47:24

Un codigo sencillo
 
Para validar Email.

Código Delphi [-]
function ValEmail(EMail: string): Boolean;
var
  s: string;
  ETpos: Integer;
begin
  if EMail<>'' then
  begin
      ETpos := pos('@', EMail);
      if ETpos > 1 then
      begin
        s := copy(EMail, ETpos + 1, Length(EMail));
        if (pos('.', s) > 1) and (pos('.', s) < length(s)) then
          Result := true
        else
          Result := false;
      end
      else
        Result := false;
    end else result:=true;
end;

donald shimoda 22-07-2008 14:32:16

Cita:

Empezado por coso (Mensaje 302178)
creo que le estoy desvirtuando el hilo a Caral :D a ver si encuentro algo que pueda aportar...

Yo veo que esto se esta transformando mas que en un programa en una librería. Podríamos llamarla CaralLib version 0.01?:D

donald shimoda 22-07-2008 14:34:25

Cita:

Empezado por Neftali (Mensaje 302175)
O EssModel, que puedes bajar con código fuente incluído y que además está hecho en Delphi. :D:D:D

Muy bueno, pero la verdad que creo que algo asi sería solo útil si discriminará los objetos de Delphi de los propios... Para que quiero otra vez ver tooodas las propiedades del tform en el diagrama?

Perdoón, otra vez le estamos desvirtuando el hilo a Caral.:o

Neftali [Germán.Estévez] 22-07-2008 15:21:51

Cita:

Empezado por donald shimoda (Mensaje 302212)
Muy bueno, pero la verdad que creo que algo asi sería solo útil si discriminará los objetos de Delphi de los propios... Para que quiero otra vez ver tooodas las propiedades del tform en el diagrama?

Bueno, eso es porque yo le he pasado como Unit para la prueba Forms.pas. Si le pasas una Unit tuya explora sólo las clases de esa unit.
También permite pasarle un directorio y explorar las clases de un directorio.

Aun así, cuando le pasas una unit y te genera el diagrama, este es modificable; De forma que en ese diagrama puedes mover y ocultar las clases. Puedes seleccionar clases por separado y copiarlas al portapapeles,...

Imagen1
Imagen2
Imagen3

Incluso te genera una espacie de documentación HTML con los gráficos, métodos, clases,... (bastante rudimentaria, eso sí). Aquí un ejemplo.

Además, como ya he dicho, el código fuente está disponible, así que puedes ampliarlo segun tus necesidades. ¡¡Qué mas se puede pedir!! :D:D:D

donald shimoda 22-07-2008 15:48:55

Cita:

Empezado por Neftali (Mensaje 302224)
Además, como ya he dicho, el código fuente está disponible, así que puedes ampliarlo segun tus necesidades. ¡¡Qué mas se puede pedir!! :D:D:D

Estando en Delphi, nada más. ;)

Caral 22-07-2008 17:15:10

Hola
Dale hombre, desvirtúa el hilo, que asi se han llegado a cosas muy interesantes, ademas no os olvidéis que estamos en la taberna.:D:D

Código Delphi [-]
If Caral.Hilo = Desvirtuado.donald shimoda  then
ShowMessage(' donald shimoda  paga la siguiente ronda ');

Saludos

coso 22-07-2008 18:52:01

Código Delphi [-]
function Maquina_canyas(num : integer; can : float; cl : TColor) : array of TCanyas;
var
       curr_camarero : integer;
       canyas : array of TCanyas;
begin
         curr_camarero := 0;
         SetLength(canyas,num);

         while (curr_camarero < num) then
         begin
                 canyas[curr_camarero].cantidad := can + random(10) - random(5);
                 canyas[curr_camarero].Tipo := cl;                
                 inc(curr_camarero);
         end;
         Maquina_canyas := canyas;
end;

esto es para la taberna, no se yo si incluirlo en el programa

PD : de verdad se pierde un poco el 'oremus' por aqui eh?:D
PDD : edito, que me dio un error de compilacion.

Al González 23-07-2008 15:53:43

Les mando saludos desde Chihuahua. :p

poliburro 23-07-2008 16:04:14

yo propongo que se proteja el código de la siguiente manera:

Código Delphi [-]
 
Try
  . ...
Except
  On Error: Exception Do 
    showMessage('Ha ocurrido un error grave, por favor envie un par de cervezas a los desarrolladores y en breve nos pondremos en contacto');
 
End;

sakuragi 23-07-2008 19:24:45

s
Cita:

Empezado por poliburro (Mensaje 302665)
yo propongo que se proteja el código de la siguiente manera:

Código Delphi [-] Try . ... Except On Error: Exception Do showMessage('Ha ocurrido un error grave, por favor envie un par de cervezas a los desarrolladores y en breve nos pondremos en contacto'); End;

poli, ese si es un buen siguimiento de errores.

salud


La franja horaria es GMT +2. Ahora son las 02:14:24.

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