quinta-feira, 19 de janeiro de 2023

SurvivoM2 é Meleb, Meleb é SurvivoM2

É isso mesmo...

O saudosismo tomou conta dos Admins do Meleb de 2003! oh! bons tempos... um server sem frescurites, sem novidades exageradas e com o cuidado ao comércio. E claro, sem pay2win, mas... com pay2survivo, ou seja, precisamos sim coletar recursos pra manter o server on, então como sempre, os itens em jogo também serão encontrados em cash para que quiser ajudar o projeto.

Vamos lá, vamos jogar, sei que todos trabalham, provavelmente têm filhos, esposas e maridos... tragam todos! venham mostrar sua força e habilidades para a nova geração. 

Aguardamos vocês!

Acessem: survivom2.net



terça-feira, 12 de março de 2013

Tratamento com Datas


Irá determinar o dado como Ex: " 01.02.2013 00:00:00 "


procedure TForm.GerarClick(Sender: TObject);
var
    Data1    : String[19];
    Data2    : String[19];
 
Begin

           Data1 := Copy( DataInicio.Text,1,2 ) + '.' +
                         Copy( DataInicio.Text,4,2 ) + '.' +
                         Copy( DataInicio.Text,7,4 ) + ' 00:00:00';

           Data2 :=  Copy( DataFim.Text,1,2 ) + '.' +
                          Copy( DataFim.Text,4,2 ) + '.' +
                          Copy( DataFim.Text,7,4 ) + ' 23:59:59';







Function mostrarTempodecorrido


Função para mostrar o tempo equivalente a X segundos.

function mostrarTempodecorrido(segundos:Variant;tipo:Integer):string;
var
 s,m,h,d,e,a:variant;
 tempo:string;
begin
 s:=segundos;
//min, hr,   dia,  mes,   ano
 m:=0; h:=0; d:=0; e:=0; a:=0;

 while s>59 do begin
  s:=(s-60);
  m:=m+1;
 end;

 while m>59 do begin
  m:=(m-60);
  h:=h+1;
 end;

 while h>23 do begin
   h:=(h-24);
   d:=d+1;
 end;

 while d>29 do begin
   d:=(d-30);
   e:=e+1;
 end;

 while e>11 do begin
   e:=(e-12);
   a:=a+1;
 end;

 if tipo=1 then
  tempo:=RightStr('0'+inttostr(h),2)+':'+RightStr('0'+inttostr(m),2)+':'+RightStr('0'+inttostr(s),2);

 if tipo=2 then
  tempo:= RightStr('0'+inttostr(h),2)+'H '+RightStr('0'+inttostr(m),2)+'m '+RightStr('0'+inttostr(s),2)+'s';

 if (a>0) then begin
  tempo:=inttostr(a)+'A '+inttostr(e)+'M '+inttostr(d)+'D '+tempo;
 end else begin
  if e>0 then begin
    tempo:=inttostr(e)+'M '+inttostr(d)+'D '+tempo;
  end else begin
   if d>0 then
    tempo:=inttostr(d)+'D '+tempo;
  end;
 end;
 Result:=tempo;
end;


Obs: não esquecer de declarar a Function no início do arquivo.


...
  private
    { Private declarations }
  public
    { Public declarations }
  end;
    function mostrarTempodecorrido(segundos:Variant;tipo:Integer):string;
....
....

Exemplo:

Procedure TForm1.Button1Click(Sender: TObject);
var
 tempo:string;
begin
 tempo:=mostrarTempodecorrido(3691,1); //tipo 1 
 ShowMessage(tempo);
 tempo:=mostrarTempodecorrido(3691,2); //tipo 2 
 ShowMessage(tempo);
end;




Tratamento em Percentual

 FormatFloat('###,###,0.00%',StrToFloat(Campo.Text));



Exemplo:
 if Edit1.Texte <> '' then begin
  Edit1.Text :=  FormatFloat('###,###,0.00%',StrToFloat(Edit1.Text));
end;

quinta-feira, 7 de março de 2013

StringReplace: Substituir uma parte do texto


var
  antes, depois : string;

begin
  // sustituir parte de um texto por outro.
  antes := 'Este é um texto exemplo!';

  depois  := StringReplace(antes, 'texto', 'texto de', [rfReplaceAll, rfIgnoreCase]);
  ShowMessage('Antes = '+antes);
  ShowMessage('Depois= '+depois);

segunda-feira, 4 de março de 2013

Postar em um FTP


 
Neste evento foi utilizado o componentes "IDFTP", e mesmo está copiando um arquivo já criado e copiando para um ftp


    // Conecta  no FTP
     with IdFTP do try

      IdFTP.Disconnect;
      IdFTP.Host     := 'ipservidor';
      IdFTP.Port     := porta;
      IdFTP.Username := usuario;
      IdFTP.Password := senha;
      IdFTP.Passive  := false;
      IdFTP.Connect;

     finally
    end;


\\ Copia o arquivo para o FTP
     try

      IdFTP.ChangeDir(pastadoservidor);
      IdFTP.Put('C:\pasta onde o arquivo está', 'nome do arquivo', false);

     finally

      IdFTP.Disconnect;

    end;


// em um caso contrário deve-se usar o comando IdFTP.Get('C:\pasta onde o arquivo está', 'nome do arquivo', false);
E a propriedade       IdFTP.Passive  := True;

Exportar grade do CxGrid


Na USES do From deve ser declarada " cxGridExportLink, "
 Neste caso foi usado o " TSaveDialog " e o código abaixo no evento " onclick de um botão.
Este procedimento irá exportar o que está visivel no Grid.


procedure Tforn.btn_ExportarClick(Sender: TObject);
VAR
    FileExt           : String;
begin

   //salva o arquivo com os dados do CXGrid
   SaveDialog.Filter := 'Excel (*.xls) |*.xls|BrOffice (*.ods) |*.ods|XML (*.xml) |*.xml|Arquivo Texto (*.txt) |*.txt|Página Web (*.html)|*.html';
   SaveDialog.Title := 'Exportar Dados';
   SaveDialog.DefaultExt:= 'xls';
   if SaveDialog.Execute then
   begin
     FileExt := LowerCase(ExtractFileExt(SaveDialog.FileName));
     if FileExt = '.xls' then
           ExportGridToExcel(SaveDialog.FileName,cxGrid, False)
     else if FileExt = '.xml' then
           ExportGridToXML(SaveDialog.FileName,cxGrid, False)
     else if FileExt = '.txt' then
           ExportGridToText(SaveDialog.FileName,cxGrid, False)
     else if FileExt = '.html' then
           ExportGridToHTML(SaveDialog.FileName,cxGrid, False)
     else if FileExt = '.ods' then
           ExportGridToExcel(SaveDialog.FileName,cxGrid, False);
     ShellExecute(Handle, 'open', pchar(SaveDialog.FileName), nil, nil, SW_SHOW);
   end;

end;

Capturar dado da linha no CxGrid



procedure TfrmCadSqlCliente.btnProcessarClick(Sender: TObject);
var
   i                     : integer;
   status             : String;
   cadastro_id    : integer;
 
begin
   cadastro_id    := 0;
   status         := '';
   i              := 0;  

    //Variavel Recebe o N° da linha selecionada
i:= cxGrid1DBTableView1.DataController.RecNo-1;
 
//Variaveis recebem o valor das colunas da linha selecionada
    status := cxGrid1DBTableView1.ViewData.Records[i].Values[cxGrid1DBTableView1status.Index];
    cadastro_id  := cxGrid1DBTableView1.ViewData.Records[i].Values[cxGrid1DBTableView1cadastro_id.Index];

end;

Colorir Linhas CxGrid



Basta ir até o evento pelo caminho: cxGrid > cxGridDBTableView > CustomDrawCell
E substituir pelo código abaixo, o mesmo tem como objetivo determinar a cor de acordo com o valor da coluna.


procedure Tfrm.cxGridDBTableView1CustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
   Codigo     : string;

begin


   codigo:='';
  if not AViewInfo.Selected then  begin

        Codigo := VarAsType( cxGrid1DBTableView1.ViewData.Records[AViewInfo.GridRecord.Index].Values[cxGrid1DBTableView1coluna.Index], varString );

         if Codigo = 'Texte' then begin
            ACanvas.Font.Color  := Cor;
            ACanvas.Brush.Color := Cor;
         end else begin
            ACanvas.Font.Color  := Cor;
            ACanvas.Brush.Color := Cor;
         end;
         IF AViewInfo.GridRecord.Selected then
         begin
            ACanvas.Brush.Color := ACanvas.Font.Color;
            ACanvas.Font.Color  := Cor;
         end;
         codigo:='';
  end;

Exibir/Ocultar barra de rolagem no cxGrid


//exibe barra de rolagem horizontal no cxGrid
ShowScrollBar(cxGrid1.Handle,SB_HORZ,True); //False para ocultar

//exibe barra de rolagem vertical no cxGrid
ShowScrollBar(cxGrid1.Handle,SB_VERT,True); //False para ocultar