-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
Não entendi ... qual a finalidade ? Help do delphi ( F1 ) abraço
-
(Resolvido) Configuração do PageSetupDialog
pergunta respondeu ao Arrais Júnior de Jhonas em Delphi, Kylix
OK... vou te ajudar uses Printers; (* Setar as margens do RichEdit em Polegadas (1 polegada = 2.54 cm) para a impressora ativa *) procedure SetRichEditMargins( const mLeft, mRight, mTop, mBottom: extended; const re : TRichEdit); var ppiX, ppiY : integer; spaceLeft, spaceTop : integer; r : TRect; begin // pixels por polegadas ppiX := GetDeviceCaps(Printer.Handle, LOGPIXELSX); ppiY := GetDeviceCaps(Printer.Handle, LOGPIXELSY); // não imprimir margens spaceLeft := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX); spaceTop := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY); //calcular as margens R.Left := Round(ppiX * mLeft) - spaceLeft; R.Right := Printer.PageWidth - Round(ppiX * mRight) - spaceLeft; R.Top := Round(ppiY * mTop) - spaceTop; R.Bottom := Printer.PageHeight - Round(ppiY * mBottom) - spaceTop; // setar as margens re.PageRect := r; end; procedure TForm1.Button1Click(Sender: TObject); var MEsq, MDir, MSup, MInf : real; begin {Estilo = RETRATO Margem Esquerda = 25 Margem Direita = 20 Margem Superior = 20 Margem Inferior = 20} if PageSetupDialog1.Execute then begin Printer.Orientation := poPortrait; // vertical MEsq := (PageSetupDialog1.MarginLeft / 2.54)/1000; MDir := (PageSetupDialog1.MarginRight / 2.54)/1000; MSup := (PageSetupDialog1.MarginTop / 2.54)/1000; MInf := (PageSetupDialog1.MarginBottom / 2.54)/1000; SetRichEditMargins(MEsq, MDir, MSup, MInf, richEdit1); richEdit1.Print('Printing with margins'); end; end; abraço -
Não deixar redimensionar coluna no DBGrid
pergunta respondeu ao danielrgoes de Jhonas em Delphi, Kylix
Va na propriedade Options do DBGrid e deixe a opção dgColumnResize = false abraço -
3 causas possiveis: 1 - virus 2 - processador com problema 3 - drives incorretos para a placa mãe abraço
-
ainda acho que voce esta complicando muito function GeraCombinacoes(S: string; NumDig: Integer): TStrings; var I, J: Integer; X,Y: Char; TS: TStrings; S1: string; begin Result := TStringList.Create; TS := TStringList.Create; for I := 1 to Length(S) do Result.Add(S[I]); while Length(Result.Strings[0]) < NumDig do begin for I := 0 to (Result.Count - 1) do begin S1 := ''; for J := 1 to Length(S) do begin X := S[J]; if Pos(X, Result.Strings[I]) = 0 then S1 := S1 + X; end; for J := 1 to Length(S1) do begin X := S1[J]; Y := S[J+1]; TS.Add(Result.Strings[I]+ '-'+ X + y); end; end; Result.Text := TS.Text; TS.Clear; end; TS.Free; end; procedure TForm1.Button1Click(Sender: TObject); var i: integer; lin : string; begin Memo1.Lines.Assign(GeraCombinacoes('A-B-CD-E-F-JKL-O', 12)); end; Na net tem muito material sobre isso e no forum procure pela palavra sensor ou sensores abraço
-
(Resolvido) Configuração do PageSetupDialog
pergunta respondeu ao Arrais Júnior de Jhonas em Delphi, Kylix
Amigo ... pela falta de tempo, o que posso fazer é te indicar onde pesquisar sobre o assunto http://www.delphipages.com/forum/showthread.php?t=160040 http://www.ramosdainformatica.com.br/dic_r...s01.php?CDA=892 http://www.delphibasics.co.uk/RTL.asp?Name=TPrintDialog http://www.delphibasics.co.uk/Article.asp?Name=Printing http://blog.ph0.com.br/?p=134 abraço -
qryM.SQL.Add('UPDATE AGENDA SET AGENDA.STATUSAG='''+IntToStr(STATUSAG)+''' IN '+ '(select PACIENTEPS.PRONT, AGENDA.STATUSAG, AGENDA.DATA '+ 'From AGENDA Inner Join ACAO On ACAO.CODACAO = AGENDA.CODACAO Inner '+ 'Join PACIENTEPS On AGENDA.CODPS = PACIENTEPS.CODPS Inner Join PACIENTE '+ 'On PACIENTE.CODIGOPACIENTE = PACIENTEPS.CODIGOPACIENTE where '+ 'PACIENTEPS.PRONT='''+IntToStr(pront)+''' and agenda.data ='''+DateToStr(data)+''')'); O erro estava aqui +DateToStr(data)+''')'); faltou acrescentar o + abraço
-
Bryant... testei suas imagens com 2 programas em delphi que baixei cognaxon http://www.cognaxon.com/downloads/WSQ_Delphi.zip http://www.cognaxon.com/downloads/setupWSQ.exe os programas estão com os fontes, e é necessario que voce use a biblioteca chamada WSQ_library.dll ( $ 252 ) esse programa ( delphi ) consegue converter WSQ em outras extensões ... peguei as suas imagens e converti para JPEG me diga como fazer upload no site que coloco as figuras para voce ver como ficaram abraço
-
(Resolvido) Agrupar em cada página - Quick report
pergunta respondeu ao Alberto Mota de Jhonas em Delphi, Kylix
voce pode usar o QRComposite http://scriptbrasil.com.br/forum/index.php...ite=qrcomposite ou pode usar o QRGroup > GroupHeader http://scriptbrasil.com.br/forum/index.php...ite=groupheader abraço -
Disponibiliza para mim uma imagem .wsq para teste. abraço
-
(Resolvido) Configuração do PageSetupDialog
pergunta respondeu ao Arrais Júnior de Jhonas em Delphi, Kylix
Veja este post https://www.scriptbrasil.com.br/forum/lofiv...hp/t129560.html abraço -
De maneira bem simples seria isso: var Form1: TForm1; var i : integer; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin i := 1; Timer1.Interval := 60000; // 1 minuto Timer1.Enabled := true // ativar o timer end; procedure TForm1.Timer1Timer(Sender: TObject); begin if i = 1 then begin ioport1.Port[888]:=1; i := 0; end else begin ioport1.Port[888]:=0; i := 1; end; end; Veja que o timer foi programado para ligar/desligar o pino da porta paralela a cada 1 minuto. esse tempo pode ser controlado pela propriedade Interval do timer. Deixe a propriedade Enable do timer como = False antes de iniciar. OBS: se quiser algo um pouco mais vistoso, baixe esse exemplo de um dispertador, e faça a modificação necessaria http://www.planetadelphi.com.br/delphi/exe...os/00003518.zip abraço
-
No help do delphi explica: voce consegue entender o ingles ?? se não tente usar o tradutor da net. sempre que tiver duvida sobre um comando procure no help ( F1 ) ou pelo menos na biblia do delphi, tem tudo traduzido. abraço
-
Se voce reparou a imagem está sobreposta ... isso por ser causado pelo comando: RAW_ARRAY = 390000; experimente diminuir esse tamanho para 50000 .... faça variações no tamanho e teste abraço
-
O dar o logoff, todas as aplicações que estiverem rodando no perfil de usuario corrente são paradas o que voce pode fazer ao iniciar com outro perfil de usuario, é voce estatar o programa novamente acho que o Douglas Soares pode ajudar sobre isso abraço
-
Locate localizando o próximo do locate se houver
pergunta respondeu ao LucAlucard de Jhonas em Delphi, Kylix
esse código serve para voce localizar um arquivo pelos seus atributos como: se esta escondido, se esta somente como leitura, pelo tamanho, pelo diretorio ... etc FileAttrs := FileAttrs + faSysFile; a cada CheckBox ticado, mais um atributo de arquivo é adicionado para fazer a pesquisa, restringindo o escopo da pesquisa. abraço -
. Voce deve colocar o código para que possamos ajuda-lo . abraço
-
Vou dar o exemplo ... voce tenta melhorar function GeraCombinacoes(S: string; NumDig: Integer): TStrings; var I, J: Integer; X,Y: Char; TS: TStrings; S1: string; begin Result := TStringList.Create; TS := TStringList.Create; for I := 1 to Length(S) do Result.Add(S[I]); while Length(Result.Strings[0]) < NumDig do begin for I := 0 to (Result.Count - 1) do begin S1 := ''; for J := 1 to Length(S) do begin X := S[J]; if Pos(X, Result.Strings[I]) = 0 then S1 := S1 + X; end; for J := 1 to Length(S1) do begin X := S1[J]; Y := S[J+1]; TS.Add(Result.Strings[I] + '-' + X + y); end; end; Result.Text := TS.Text; TS.Clear; end; TS.Free; end; procedure TForm1.Button1Click(Sender: TObject); var i: integer; lin : string; begin Memo1.Lines.Assign(GeraCombinacoes('12345678', 10)); end; abraço
-
o link que te passei é exatamente do código fonte de um HookTeclado ... será que voce leu ???? abraço
-
José Luiz ... fazendo alguns testes o ZTable deve ser usando assim: exemplo: procedure TForm1.Button1Click(Sender: TObject); begin ZTable1.IndexFieldNames := 'CODEXAME'; // campo da tabela ZTable1.SortedFields := 'CODEXAME'; end; procedure TForm1.Button2Click(Sender: TObject); begin ZTable1.IndexFieldNames := 'EXAME'; // campo da tabela ZTable1.SortedFields := 'EXAME'; end; procedure TForm1.Button3Click(Sender: TObject); begin ZTable1.IndexFieldNames := 'SETOR'; // campo da tabela ZTable1.SortedFields := 'SETOR'; end; fazendo dessa maneira os campos são ordenados e indexados, facilitando a pesquisa abraço
-
(Resolvido) Problema com tabela temporária !
pergunta respondeu ao Riatla de Jhonas em Delphi, Kylix
Erro: EDataBaseError 'SqlProdTemp' : Cursor not returned from query'. Cursor não retornou da query with dm.SQLProdTemp do begin close; CommandText := 'update prodtemp set nmr_ped = ' + FloatToStr(nmrped); ExecSql; end; dm.CdsProdTemp.close; dm.CdsProdTemp.Open; experimente tirar o comando open do código e veja se o erro acontece novamente abraço -
acho que não foi desenvolvido para esta finalidade. Em todo caso entre o site da nitgen e procure por protocolo de comunicação e veja o que encontra. abraço
-
é só fazer esta modificação function GeraCombinacoes(S: string; NumDig: Integer): TStrings; var I, J: Integer; X: Char; TS: TStrings; S1: string; begin Result := TStringList.Create; TS := TStringList.Create; for I := 1 to Length(S) do Result.Add(S[I]); while Length(Result.Strings[0]) < NumDig do begin for I := 0 to (Result.Count - 1) do begin S1 := ''; for J := 1 to Length(S) do begin X := S[J]; if Pos(X, Result.Strings[I]) = 0 then S1 := S1 + X; end; for J := 1 to Length(S1) do begin X := S1[J]; TS.Add(Result.Strings[I] + '-' + X); end; end; Result.Text := TS.Text; TS.Clear; end; TS.Free; end; procedure TForm1.Button1Click(Sender: TObject); var i: integer; lin : string; begin Memo1.Lines.Assign(GeraCombinacoes('1234', 5)); end; O resultado será: 1-2-3 1-2-4 1-3-2 1-3-4 1-4-2 1-4-3 2-1-3 2-1-4 2-3-1 2-3-4 2-4-1 2-4-3 3-1-2 3-1-4 3-2-1 3-2-4 3-4-1 3-4-2 4-1-2 4-1-3 4-2-1 4-2-3 4-3-1 4-3-2 OBS: outros exemplos : Memo1.Lines.Assign(GeraCombinacoes('12', 3)); Memo1.Lines.Assign(GeraCombinacoes('123', 4)); Memo1.Lines.Assign(GeraCombinacoes('1234', 5)); Memo1.Lines.Assign(GeraCombinacoes('12345', 6)); por ai vai .... abraço
-
eu prefiro usar um pronto que fica rodando em segundo plano ( oculto ) http://www.softonic.com.br/s/keylogger mas se houver mesmo necessidade de fazer um em delphi ... http://www.planetadelphi.com.br/dica/6899/...-mesmo-fora-do- abraço
-
Nem sempre tenho tempo de responder, porque tenho que tirar o sustento da família de outros serviços ....não ganho nada com o forum, apesar disso, sempre tento tirar as duvidas dos outros, e voce pode perceber que são poucos os que se prontificam em ajudar. Uma pergunta focando apenas um ponto é mais facil de responder do que a que voce fez anteriormente agora veja a diferença para esta pergunta a resposta seria: OBS: desculpe a falta de paciencia ultimamente abraço