miércoles, 25 de noviembre de 2015

fechas delphi dia mes año

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, DateUtils;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
diadelasemana: integer;
wAnyo, wMes, wDia: Word;
begin

  DecodeDate( now(), wAnyo, wMes, wDia );

  diadelasemana:=DayOfWeek(now);

 // if ((diadelasemana=7) or (diadelasemana=1)) then



 ShowMessage(datetostr(EndOfTheMonth(now())));


  if (wMes=10) then
  begin

    if (wDia>=25) then
    begin
      ShowMessage(inttostr(wDia));
      ShowMessage(inttostr(wMes));
      ShowMessage(inttostr(wAnyo));
    end;

  end;


end;

end.




//*********
procedure TForm1.Button1Click(Sender: TObject);
var
wHor, wMin, wSeg, wMSeg, wAnyo, wMes, wDia: Word;
begin

DecodeDate( now(), wAnyo, wMes, wDia );
DecodeTime( now(), wHor, wMin, wSeg, wMSeg);

ShowMessage(inttostr(wHor)+inttostr(wMin)+inttostr(wSeg)+inttostr(wMSeg));

end;
 



.
 

martes, 24 de noviembre de 2015

saber si esta dentro de una zona GPS

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, strutils;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

  rectas: array[1..4] of string;

  puntosX: array[1..4] of integer;
  puntosY: array[1..4] of integer;

implementation

{$R *.dfm}


//********************************************************
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
pX, pY: real;

desde, hasta: integer;

puntoOrdenado1, puntoOrdenado2: real;
denominador1, denominador2: real;
numerador, total: real;

corta: integer;

begin

  pX:=4;
  pY:=38.5596881;

  corta:=0;    // las veces que corta por arriba un punto dado
  desde:=1;    // los segmentos de la zona el primero
  hasta:=4;    //
los segmentos de la zona el ultimo (en este ej.)
  //***
  for i := desde to hasta do
  begin

    if i<>4 then
    begin

        puntoOrdenado1:=puntosX[i];
        puntoOrdenado2:=puntosX[i+1];
       
        if (puntoOrdenado1>puntosX[i+1]) then
        begin
          puntoOrdenado1:=puntosX[i+1];
          puntoOrdenado2:=puntosX[i];
        end;

        if ((puntoOrdenado1<=pX) and (puntoOrdenado2>=pX)) then
        begin
          




    // ecuaciones de la recta  ((X - Xa) / (Xb - Xa)) = ((Y - Ya) / (Yb - Ya))


          numerador:=pX - puntosX[i+1];


          denominador1:= puntosX[i+1] - puntosX[i];
          denominador2:= puntosY[i+1] - puntosY[i];

          total:= (numerador * denominador2 / denominador1) +  puntosY[i+1];

          if total >= pY then
          begin
            corta:=corta+1;
          end;

          //showmessage(floattostr(total));

        end;

    end
    else
    begin

        puntoOrdenado1:=puntosX[desde];
        puntoOrdenado2:=puntosX[hasta];

        if (puntoOrdenado1>puntosX[hasta]) then
        begin
          puntoOrdenado1:=puntosX[hasta];
          puntoOrdenado2:=puntosX[desde];
        end;

        if ((puntoOrdenado1<=pX) and (puntoOrdenado2>=pX)) then
        begin

          numerador:=pX - puntosX[hasta];

          denominador1:= puntosX[hasta] - puntosX[desde];
          denominador2:= puntosY[hasta] - puntosY[desde];

          total:= (numerador * denominador2 / denominador1) +  puntosY[hasta];

          if total >= pY then
          begin
            corta:=corta+1;
          end;

          //showmessage(floattostr(total));

        end;

    end;

  end;


//  ShowMessage(inttostr(corta));

  if (corta mod 2 <> 0)  then
  begin
    ShowMessage('Dentro');
  end
  else
  begin
    ShowMessage('Fuera');
  end;


//  ShowMessage(floattostr(corta mod 2));


end;





//********************************************************
procedure TForm1.FormCreate(Sender: TObject);
begin


// vertices de la zona  (-5,3)   (6,9)   (3,5)   (9,-3)


puntosX[1]:=-5;
puntosX[2]:=6;
puntosX[3]:=3;
puntosX[4]:=9;


puntosY[1]:=3;
puntosY[2]:=9;
puntosY[3]:=5;
puntosY[4]:=-3;

end;




end.










http://es.onlinemschool.com/math/assistance/cartesian_coordinate/p_to_line/
http://fooplot.com



.

unir variable concatenar variable

cont:=listagrupos.Items.Count; // lineas de un lisbox


for i:=0 to listbox1.Items.Count-1 do
begin

if(listbox1.Selected[i]) then
begin
showmessage(inttostr(i));
end;
end;






sincronizar 4 listbox
/******************

procedure TForm1.ListBox1Click(Sender: TObject);
var
n:byte;
begin
for n:=2 to 4 do
begin
(FindComponent('ListBox'+IntToStr(n))as TListBox).ItemIndex:=
(Sender as TListBox).ItemIndex;
end;
end;


/****************



sincronizar 2 listbox
/******************

procedure TForm1.ListBox1Click(Sender: TObject);
var
n:byte;
begin
for n:=1 to 2 do
begin
(FindComponent('ListBox'+IntToStr(n))as TListBox).ItemIndex:=
(Sender as TListBox).ItemIndex;
end;
end;


/****************