quarta-feira, 23 de setembro de 2015

Uso de Disco 100%

Para resolver o problema de uso de disco 100% no windows 8.1, execute os seguintes comandos no prompt do cmd como usuário administrador


Dism /Online /Cleanup-Image /ScanHealth

Dism /Online /Cleanup-Image /RestoreHealth



Origem: Retirado do Fórum DevMedia


sábado, 19 de setembro de 2015

Instalacao do PhoeneGap / Cordova

Procedimentos para instalação do PhoneGap/Cordova no Windows

1. Baixar o NodeJS no site https://nodejs.org/en/


2. Instalar o PhoneGap
    Entrar no prompt do dos e executar npm install -g phonegap


3. Instalar o Cordova
    Entrar no prompt do dos e executar npm install -g cordova

4.Instalar  o emulador GenyMotion atraves do site e instalar o programa
   https://www.genymotion.com/#!/download/freemium/windows/classical



sábado, 6 de junho de 2015

Gerar Guid em Delphi

Para gerar um UniqueId, ou seja um número que nunca repete, use a função abaixo. Ela foi retirada em um blog que não me recordo.

function GerarGuid: String;
Var
   G : TGuid;
begin
   CoCreateGuid(G);
   Result := IntToHex(G.D1,1) + '' + IntToHex(G.D2,1) + '' + IntToHex(G.D3,1) + '';
   Result := Result + IntToHex(G.D4[0],1)+IntToHex(G.D4[1],1)+IntToHex(G.D4[3],1)+IntToHex(G.D4[4],1)+IntToHex(G.D4[5],1)+IntToHex(G.D4[6],1)+IntToHex(G.D4[7],1);

end;


Não esquecer de definir as units  Windows, SysUtils, ComObj, Activex na seção interface.






quinta-feira, 28 de maio de 2015

Botões e Edits com bordas arredondas em Android

Para criar botões e campos de edição com bordas arredondadas no Android, devemos fazer o seguinte.
Primeiro precisamos criar o arquivo de layout do nosso exemplo que deverá chamar exemplo_tela.xml que ficará na pasta /res/layout:

‹?xml version="1.0" encoding="utf-8"? ›
‹LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical" ›

‹TextView
     android:id="@+id/textView1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="Nome" / ›

‹EditText
     android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
    android:ems="10" ›
   ‹requestFocus / ›
‹/EditText ›

‹Button
    android:id="@+id/button1"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
    android:text="Pesquisar" / ›

‹/LinearLayout ›


Depois vamos criar o arquivo  responsável por realizar o efeito arredondado nos componentes que desejamos. O nome dele será  borda_arredondada.xml. Este arquivo deverá ficar na pasta  /res/drawable: 

‹shape xmlns:android="http://schemas.android.com/apk/res/android"    android:padding="10dp"
   android:shape="rectangle" ›

   ‹solid android:color="#8B008B" / ›

   ‹corners
       android:bottomLeftRadius="10dp"
       android:bottomRightRadius="10dp"
       android:topLeftRadius="10dp"
       android:topRightRadius="10dp" / ›

‹/shape ›

A tag shape  é usada para definir a forma que se quer aplicar no componente, no nosso exemplo definimos uma forma bem simples que foi rectangle.

A tag solid  é usada para definir as propriedades do componente como a cor de fundo, cor da fonte, etc.

A tag corners  é tag que define a propriedades do cantos do componente, é essa tag que irá de fato aplicar as bordas arredondadas.

Para aplicarmos de fato o efeito arredondado nos componentes que queremos basta adicionar o atributo background no componente que queremos, como mostra a linha verde marcada.

‹Button
    android:id="@+id/button1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
   android:background="@drawable/borda_arredondada"  
    android:text="Pesquisar" / ›


sexta-feira, 21 de novembro de 2014

Missing Data Provider or Data Packet

Ontem um colaborador nosso ficou emperrado em um método para copiar dados de uma tabela 'A' de um banco origem para um banco destino usando o trio SQLQuery + DataSetProvider + ClientDataSet.

O metodo estava assim

procedure TForm1.CopiarDados(Origem, Destino: TSQLConnection;  NomeTabela: String);
Var
    QryOrigem, QryDestino: TSQLQuery;
    DtStPrvd : TDataSetProvider;
    CDS  : TClientDataSet;
begin
  QryOrigem := TSQLQuery.Create(nil);
  QryDestino := TSQLQuery.Create(nil);

  QryOrigem.SQLConnection := Origem;
  QryDestino.SQLConnection := Destino;

  DtStPrvd := TDataSetProvider.Create(nil)
  DtStPrvd.Name := 'DT';
  DTStPrvd.DataSet := Qry_Destino;

  CDS := TClientDataSet.Create(nil);
  CDS.PacketRecords := 1;
  CDS.ProviderName := DtStPrvd.Name;

  CDS.Open;   // Ao executar o open esta dando a mensagem 'Missing Data Provider or Data Packet '

  CDS.Free;
  DataSetProvider1.Free;
  QryOrigem.Free;
  QryDestino.Free;

end;

O erro estava na atribuicao do provider para o ClientDataSet. Para atribuir um provider em tempo de execucao para um ClientDataSet tem que usar o metodo SetProvider do ClientDataSet, ficando assim

CDS.SetProvider (DT);

Desta forma o Open do ClientDataSet funciona sem problema algum.








    
    



sexta-feira, 14 de novembro de 2014

Procurar um arquivo no Tablet/SmartPhone Android com o adb shell

Ontem (13/11/2014) precisava exportar todos os arquivos de uma pasta que estava dentro do tablet. Fiz um root para poder acessar o tablet via USB e para meu desespero estava impossível de achar a pasta com os seus respectivos arquivos. Tentei utilizar o find já que Android é um linux, mas não deu certo. Depois de algumas pesquisas encontrei na stackoverflow.com a solução para o meu problema.

No prompt de comando, na pasta onde está o adb.exe executei o comando abaixo;

adb shell ls -R / > ListaArquivos.Txt

Com esse comando foi criado um arquivo texto com o nome ListaArquivos.txt conforme abaixo

./mnt/sdcard/Ringtones:
hangout_ringtone.ogg
hangouts_incoming_call.ogg
hangouts_message.ogg
hangouts_video_call.ogg

(arquivo parcial)

Depois com essa informação foi só fazer um arquvo .bat para fazer a copia

Copiar.Bat

adb pull /mnt/sdcard/Ringtones/hangout_ringtone.ogg  c:\temp
adb pull /mnt/sdcard/Ringtones/hangouts_incoming_call.ogg c:\temp
adb pull /mnt/sdcard/Ringtones/hangouts_message.ogg c:\temp
adb pull /mnt/sdcard/Ringtones/hangouts_video_call.ogg c:\temp


Uma outra solução seria
adb pull  /mnt/sdcard/Ringtones/  # Copia todos os arquivos da pasta (a pasta tem que terminar com '/' )

Até mais.


terça-feira, 19 de agosto de 2014

Configurar o Firebird para funcionar com PHP através do PDO

Após muita pesquisa e testes finalmente consegui acessar o firebird com php, usando o Bitnami Stack WAMP no Windows 8.1. De tanta coisa que foi feita, não sei qual foi a que realmente funcionou, mas vamos lá.

  1. Habilitar as extensões do firebird no php.ini
    Nas linhas onde está escrito ";extension=php_interbase.dll" e ";extension=php_pdo_firebird.dll", retire o ponto e vírgula do início.
  2. Copie os arquivos FbClient.dll e Gds32.dll para a  pasta \bin do apache. No meu computador ficou assim "C:\Bitnami\wampstack-5.4.31-0\apache2\bin".
  3. Para testar você pode usar o php.ini ou fazer o script abaixo
            foreach(PDO::getAvailableDrivers() as $driver) {
             echo $driver.'
    ';
    }
    ?>
    O resultado vai ser
    firebird
    mysql
    sqlite
Espero que este post ajude outras pessoas a conseguirem conectar com o Firebird.

pdo, pdo_firebird, php_interbase