Pular para o conteúdo principal

Postagens

Texto na Diagonal usando o Canvas (Delphi)

var   lf : TLogFont;   tf : TFont; begin   with Form1.Canvas do     begin       Font.Name := 'Arial';       Font.Size := 24;       tf := TFont.Create;       tf.Assign(Font);       GetObject(tf.Handle, sizeof(lf), @lf);        lf.lfEscapement := 450;       lf.lfOrientation := 450;       tf.Handle := CreateFontIndirect(lf);       Font.Assign(tf);       tf.Free;       TextOut(20, Height div 2, 'Texto Diagonal!');    end; end;

Iniciar e Parar Serviços do Windows (Delphi)

Em certas ocasiões nos deparamos com a necessidade de manipular determinadas atividades do SO, como iniciar ou parar um banco de dados, ou qualquer outro serviço que esteja funcionando no momento. Segue abaixo um código que encontrei na Internet para tal finalidade (não me recordo à fonte, assim que eu a encontrar colocarei). Iniciar Serviço: uses WinSvc; // // start service // // return TRUE if successful // // sMachine: //   machine name, ie: \SERVER //   empty = local machine // // sService //   service name, ie: Alerter // function ServiceStart(   sMachine,   sService : string ) : boolean; var   //   // service control   // manager handle   schm,   //   // service handle   schs   : SC_Handle;   //   // service status   ss     : TServiceStatus;   //   // temp char pointer   psTemp : PChar;   //   // check point   dwChkP : DWord; begin   ss.dwCurrentState := -1;   //

Log de exceções não tratadas (Delphi)

Nem sempre é possível tornar nossa aplicação imune a todos os erros, sempre existe aquele que apenas o usuário conseguirá simular e na maioria das vezes você estará bem longe dali. Para não ficar apenas com a explicação do usuário, que muitas vezes e confusa e inconclusiva podemos criar uma maneira de ao menos rastrear os erros não controlados, isso mesmo podemos construir um "log" de erros, então vamos lá: Adicione em seu formulário principal o componente ApplicationEvents da aba Additional; No evento OnException entre com o seguinte código: var   vl_NomeDoLog : string;   vl_Arquivo   : TextFile; begin   vl_NomeDoLog := ChangeFileExt(Application.Exename, '.log');   AssignFile(vl_Arquivo, vl_NomeDoLog);    IF FileExists(vl_NomeDoLog) THEN     Append(vl_arquivo) { se existir, apenas adiciona linhas }    ELSE     ReWrite(vl_arquivo); { cria um novo se não existir }    TRY     WriteLn(vl_arquivo, 'APLICAÇÃO: ['+Screen.ActiveForm.Caption+'] DATA/HORA: ['+D

Open Hack Day

O Amigo Rodrigo Figueiredo comentou em meu ultimo post colocando um anuncio muito interessante sobre um evento que promete ser muito bom, para os que moram em São Paulo ou mesmo que tenham a possibilidade de ir até lá vale a pena conferir, segue abaixo uma matéria retirada do IDG Now falando sobre o evento. São Paulo - Evento que incentiva a criação de aplicativos e serviços com plataformas do Yahoo! premiará os projetos mais criativos. O Yahoo! promove, de 8 a 9 de novembro, o primeiro Open Hack Day na América Latina. O evento reunirá estudantes e profissionais de tecnologia para a criação de aplicativos e serviços com base nas plataformas da empresa. O encontro é a versão brasileira do evento que aconteceu em setembro, nos Estados Unidos, e reuniu mais de 300 desenvolvedores e entusiastas da área. O primeiro dia do Open Hack Day promove o ciclo de palestras “Tech Talks”, explicando o que será necessário para o desenvolvimento no dia seguinte. Os projetos criados pelos part

Função INSTR do Oracle no Delphi

O Oracle possui uma função chamada INSTR(), ela procura por ocorrências de uma determinada palavra dentro de outra, começando de uma determinada posição, e retorna o índice quando encontrado. Ex.: SELECT INSTR ('EDUARDO TEIXEIRA','ER', 1, 2) "Teste com INSTR" FROM DUAL; Teste com INSTR ---------- 13 No exemplo acima a busca começa no primeiro caracter da frase 'EDUARDO TEIXEIRA' e procura pelo índice da segunda ocorrência da palavra 'ER', e o resultado foi a 13º posição. Existe algo parecido no Delphi, é a função POEX, porém ela não trata ocorrências, trazendo sempre o índice da primeira encontrada, então ai vai uma função para o Delphi que faz o mesmo que o INSTR do Oracle: function INSTR_Delphi(p_busca: string; p_buscado: string; p_inicio: integer; p_incidencia: integer): integer; var v_posi : integer; //guarda última posição encontrada v_inc : integer;   //incidências já encontradas v_i : integer;       //contador para loop b

Procurando emprego?

Responda rápido, qual empresa possui a marca mais valiosa do mundo (80 bilhões de dólares), conta com mais de 19 mil funcionários em 36 países, oferece um massagista 3 vezes por semana, possuiu um Wii e um Xbox no lounge, além de um fliperama e uma mesa de sinuca? Sim senhores, para aqueles que responderam Google acertaram, 40% das vagas no Brasil ainda não foram preenchidas. Os interessados devem se preparar bastante pois o processo de seleção é bem puxado, antes ocorriam até 30 entrevistas, hoje o numero foi bem reduzido chegando a 5 ou 6 entrevistas. Mais alguns numeros do Google: US$ 16,6 bilhões de faturamento em 2007 19604 funcionários 50 escritorios em 20 países 1 milhão de usuarios ativos do Google Docs 60 milhões de usuários do orkut 10 mil clientes do Google Enterprise 40 bilhões de páginas indexadas à ferramenta de busca

BLOGAGEM COLETIVA "Justiça para Flavia"

No dia de hoje não falaremos sobre tecnologias, dicas ou truques, iremos ceder nosso espaço para um ato de cidadania, pois exigir que a lei se faça não é mais do que a obrigação de cada cidadão. Irei redigir aqui uma matéria que foi extraída na integra do blog Flavia, Vivendo em Coma... , que é mantido por uma mãe que perdeu sua filha a mais de dez anos em função de um acidente fatal, causado pela má instalação de um ralo na piscina. Ela pede apenas que justiça seja feita. Domingo, 27 de Julho de 2008 PISCINA SEGURA, RESPONSABILIDADE DOS PAIS?! Foto por mim scaneada do Jornal A Folha de São Paulo. Transcrevo alguns trechos da matéria publicada no Jornal FOLHA DE SÃO PAULO de domingo passado, dia 20 de Julho de 2008, no caderno “Construção”. A matéria está assinada por Mariana Desimone e vem com o título de PISCINA SEGURA. Infelizmente, não consegui o link na Internet para direcionar vocês para a reportagem. Quem por acaso puder me informar esse link, ficarei agradecida. Tente