-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
Tenta desta maneira: procedure TFReqMat.lstReqCellClick(Column: TColumn); var i, val: integer; begin With lstReq do Begin Label1.Caption := lstReq.Columns[lstReq.SelectedIndex].FieldName; // mostra o titulo da coluna onde esta o cursor Label2.Caption := lstReq.Columns[lstReq.SelectedIndex].Field.AsString; // mostra o conteudo do campo onde esta o cursor Label3.Caption := inttostr(lstReq.SelectedIndex); // mostra o numero da coluna onde esta o cursor Label4.caption := inttostr(lstReq.DataSource.DataSet.RecNo); //mostra o numero da linha onde esta o cursor end; end; OBS: estou supondo que o nome do seu Dbgrid seja lstReq... observe que o codigo foi colocado no evento OnCellClick do DBGrid abraço
-
Vai encontrar alguma coisa nestes endereços: http://www.guiadohardware.net/comunidade/c...utencao/100823/ http://dicasmacetes.blogspot.com/2007/05/m...-do-seu-pc.html modelos de contrato de manutenção http://www.clubedohardware.com.br/download/misc/contrato.doc http://www.centraljuridica.com/modelo/137/...mputadores.html abraço
-
É bug do componente TAleDBGrid, substitua por um DBGid do próprio delphi abraço
-
um exemplo simplerrimo procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := '123'; Edit1.Text := Edit1.Text + '.A'; end; OBS: Não considero uma boa pratica este tipo de coisa, prefira então, usar codigo de barras para o produtos que já possui um digito verificador. o exemplo é apenas para ilustrar como voce colocaria uma letra ou outro numero, mas nesse caso o campo devera ser string e não numerico. abraço
-
(Resolvido) Deixar texto justificado em relatório
pergunta respondeu ao Tatiane.InterArt de Jhonas em Delphi, Kylix
vou te dar um exemplo simples Coloque num Form um botao e no evento OnClick do botao coloque o codigo unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2; {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin QuickReport2.preview; end; end. Agora pegue um QR coloque duas bandas... uma de title e uma de Detail na banda de Deteil coloque um componente QRMemo, deixe a propriedade Autosize como false e Autostretch como true , na propriedade Font do QRMemo coloque Courier / Normal / 10 e na propriedade Width digite 673. No evento BeforePrint do QR coloque o codigo: unit Unit2; interface uses Windows, SysUtils, Messages, Classes, Graphics, Controls, StdCtrls, ExtCtrls, Forms, Quickrpt, QRCtrls; type TQuickReport2 = class(TQuickRep) QRBand1: TQRBand; QRBand3: TQRBand; QRLabel1: TQRLabel; QRMemo1: TQRMemo; procedure QuickRepBeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean); private public end; var QuickReport2: TQuickReport2; s,s1 : string; implementation {$R *.DFM} Function justifica(s: string; iMax: integer): string; var iCont: integer; iPos: integer; sAux: string; begin // executa enquanto a string for maior que o comprimento da linha while Length(s) > iMax do begin iPos := iMax; // procura o espaço que será o final da linha while s[iPos] <> ' ' do iPos := iPos - 1; // carrega a substring a ser justificada sAux := copy(s, 0, iPos); delete(s, 1, iPos); iCont := iPos - 1; // inclui espaços até a substring ter o tamanho máximo da linha while iPos <> iMax do begin // posiciona o cursor para incluir o espaço while sAux[iCont] <> ' ' do begin iCont := iCont - 1; if iCont < 0 then iCont := iPos - 1; end; Insert(' ', sAux, iCont); // ajusta o cursor para que não sejam incluídos mais espaços na // mesma posição de justificação while (sAux[iCont] = ' ') and (iCont > 0) do iCont := iCont - 1; iPos := iPos + 1; end; Result := Result + sAux; end; Result := Result + s; s1 := Result; end; procedure TQuickReport2.QuickRepBeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean); begin s := 'Displays a list of items from which a user can update a field in the current record. The list of display items is a property of the control. '+ 'TDBComboBox Combines an edit box with a list box. A user can update a field in the current record by choosing a value from the drop-down list or by entering a value. The list of display items is a property of the control. '+ 'TDBLookupListBox Displays a list of items from which a user can update a column in the current record. The list of display items is looked up in another dataset. '+ 'TDBLookupComboBox Combines an edit box with a list box. A user can update a field in the current record by choosing a value from the drop-down list or by entering a value. The list of display items is looked up in another dataset.'; justifica(s,80); QuickReport2.QRMemo1.Lines.Text := s1; end; end. OBS: O texto digitado na string S, sera formatado em uma linha de 80 colunas e sera mostrado no QR abraço -
O problema pode ser tambem do proprio componente Form, então para teste crie um novo form e tente novamente abraço
-
Dica de marioguedes {Desenha a Seta!} procedure DesenharSeta(OCor: TColor; OLargura: Integer; Origem, Destino: TPoint); const ANGULO = 15; PONTA = LADO; var AlphaRota, Alpha, Beta : Extended; vertice1, vertice2, vertice3 : TPoint; begin Self.Canvas.Pen.Color := OCor; Self.Canvas.Brush.Color := OCor; if (Destino.X >= Origem.X) then begin if (Destino.Y >= Origem.Y) then begin AlphaRota := Destino.X - Origem.X; if (AlphaRota <> 0) then Alpha := ArcTan((Destino.Y - Origem.Y) / AlphaRota) else Alpha := ArcTan(Destino.Y - Origem.Y); Beta := (ANGULO * (PI / 180)) / 2; vertice1.X := Destino.X - Round(Cos(Alpha + Beta)); vertice1.Y := Destino.Y - Round(Sin(Alpha - Beta)); vertice2.X := Round(vertice1.X - PONTA * Cos(Alpha + Beta)); vertice2.Y := Round(vertice1.Y - PONTA * Sin(Alpha + Beta)); vertice3.X := Round(vertice1.X - PONTA * Cos(Alpha - Beta)); vertice3.Y := Round(vertice1.Y - PONTA * Sin(Alpha - Beta)); Self.Canvas.Polygon([vertice1,vertice2,vertice3]); end else begin AlphaRota := Destino.Y - Origem.Y; if (AlphaRota <> 0) then Alpha := ArcTan((Destino.X - Origem.X) / AlphaRota) else Alpha := ArcTan(Destino.X - Origem.X); Beta := (ANGULO * (PI / 180)) / 2; vertice1.X := Destino.X - Round(Cos(Alpha + Beta)); vertice1.Y := Destino.Y - Round(Sin(Alpha - Beta)); vertice2.X := Round(vertice1.X + PONTA * Sin(Alpha + Beta)); vertice2.Y := Round(vertice1.Y + PONTA * Cos(Alpha + Beta)); vertice3.X := Round(vertice1.X + PONTA * Sin(Alpha - Beta)); vertice3.Y := Round(vertice1.Y + PONTA * Cos(Alpha - Beta)); Self.Canvas.Polygon([vertice1,vertice2,vertice3]); end; end else begin Alpha := ArcTan((Destino.Y - Origem.Y) / (Destino.X - Origem.X)); Beta := (ANGULO * (PI / 180)) / 2; vertice1.X := Destino.X - Round(Cos(Alpha + Beta)); vertice1.Y := Destino.Y - Round(Sin(Alpha - Beta)); vertice2.X := Round(vertice1.X + PONTA * Cos(Alpha + Beta)); vertice2.Y := Round(vertice1.Y + PONTA * Sin(Alpha + Beta)); vertice3.X := Round(vertice1.X + PONTA * Cos(Alpha - Beta)); vertice3.Y := Round(vertice1.Y + PONTA * Sin(Alpha - Beta)); Self.Canvas.Polygon([vertice1,vertice2,vertice3]); end; end; ou voce pode procurar um componente shape pronto http://www.torry.net/pages.php?s=80 abraço
-
não me lembro como usar o comando, mas coloque uma saida para o teste que ele fizer por exemplo e voce digitar "h" ele executa a instrução e sai fora para imprimir o resultado sem passar pelo proximo teste... a mesma coisa para o segundo teste, caso ele passe pelo primeiro , e a mesma coisa para o terceiro caso ele passe pelo primeiro e pelo segundo .. entendeu ? ve o que acontece abraço
-
realmente esta, acho que voce pode diluir isso um pouco mais.... numa avaliação de 0 a 5 0 - pessimo 1 - ruim 2 - regular 3 - bom 4 - otimo 5 - excelente sua nota é 3 abraço
-
Portugol é uma pseudo-linguagem, criado para demonstrar o uso de algoritmos. Está presente na maioria dos materiais didáticos, em português A linguagem que o VisuAlg interpreta é bem simples: é uma versão portuguesa dos pseudocódigos largamente utilizados nos livros de introdução à programação, conhecida como "Portugol". http://www.apoioinformatica.inf.br/visualg/linguagem.htm http://www.meusdownloads.com.br/p.jsp?ppID=5b15 http://www.apoioinformatica.inf.br/visualg/funcoes.htm http://orion.ipt.pt/~manso/Portugol/ http://portugol.sites.uol.com.br/ http://orion.ipt.pt/~manso/Portugol/download.html http://www.apostilando.com/download.php?co...ma%C3%A7%C3%A3o OBS: Estas duas feramentas o ajudarão a ter uma noção maior sobre lógica de programação Não é bem a mesma coisa, o delphi é baseado no pascal com muitos recursos visuais e codigos e o mercado pede por programadores em delphi abraço
-
No ultimo teste voce faz a rotina calcular novamente algoritmo Peso_Ideal; variáveis sexo: literal; peso: inteiro; altura: real; ideal: real; fim-variáveis início // imprima ("Digite o seu peso: "); // peso:= leia(); imprima ("Digite a sua altua :"); altura:= leia(); imprima ("Homem ou Mulher? (h ou m)"); sexo:= leia(); altura:= (altura / 100); se sexo="h" ou sexo = "H" então ideal:= ((72.7 * altura) - 58); se sexo="m" ou sexo = "M" então ideal:= ((62.1 * altura) - 44.7); se sexo<>"h" e sexo <> "H" e sexo<>"m" e sexo <> "M" então imprima ("Homem ou Mulher? (h ou m)"); sexo:= leia(); fim-se imprima ("Seu peso ideal é: ",ideal); fim abraço
-
Exemplos de SubSelects http://www.inf.puc-rio.br/~rmauro/BD1/docs/SQLParte1BD1.pdf http://articles.techrepublic.com.com/5100-22-1045787.html http://www.fluffycat.com/SQL/Subselect/ http://archives.postgresql.org/pgsql-sql/2...02/msg00090.php http://glufke.net/oracle/viewtopic.php?t=2036 http://www.experts-exchange.com/Programmin...Q_22701696.html abraço
-
procedure TForm1.BitBtn1Click(Sender: TObject); var palavra : string; begin palavra := chave.Text; DataModule2.ADOQuery1.Close; DataModule2.ADOQuery1.SQL.Clear; DataModule2.ADOQuery1.SQL.Add ('select * from boletins_conteudo'); DataModule2.ADOQuery1.Open; end; Não existe nenhum comando para fechar o form, então se o form sumiu, ele vai aparecer novamente assim que a select estiver concluida. Pode ser muitos dados que ele esta trazendo para o DBGrid por isso a demora em mostrar o form. abraço
-
se vai instalar o XP nele, o próprio cd de instalação do XP formata o hd na instalação. Mais informações sobre o assunto: http://tecnologia.uol.com.br/especiais/ult...ult2888u52.jhtm Geração do disco de boot do Windows 98 Second Edition, com suporte universal aos drivers de CD-ROM. http://superdownloads.ubbi.com.br/download/i17262.html Geração do disco de boot do Windows 98, com suporte universal aos drivers de CD-ROM. http://superdownloads.ubbi.com.br/download/i17261.html abraço
-
Verifique nestes endereços: http://www.caclipperwebsite.com/howto/ http://www.caclipperwebsite.com/harbour.shtml http://groups.google.com.br/group/colecao-...amacao?hl=pt-BR http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=4384 http://www.biro2000.com.br/BRIOFP/atualfp0.htm abraço
-
(Resolvido) Deixar texto justificado em relatório
pergunta respondeu ao Tatiane.InterArt de Jhonas em Delphi, Kylix
Justifica Texto no QR Function TQuickReport2.justifica(s: string; iMax: integer): string; var iCont: integer; iPos: integer; sAux: string; begin // executa enquanto a string for maior que o comprimento da linha while Length(s) > iMax do begin iPos := iMax; // procura o espaço que será o final da linha while s[iPos] <> ' ' do iPos := iPos - 1; // carrega a substring a ser justificada sAux := copy(s, 0, iPos); delete(s, 1, iPos); iCont := iPos - 1; // inclui espaços até a substring ter o tamanho máximo da linha while iPos <> iMax do begin // posiciona o cursor para incluir o espaço while sAux[iCont] <> ' ' do begin iCont := iCont - 1; if iCont < 0 then iCont := iPos - 1; end; Insert(' ', sAux, iCont); // ajusta o cursor para que não sejam incluídos mais espaços na // mesma posição de justificação while (sAux[iCont] = ' ') and (iCont > 0) do iCont := iCont - 1; iPos := iPos + 1; end; Result := Result + sAux; end; Result := Result + s; end; Observação: Lembrar de deixar a propriedade Autosize como false e Autostretch como true do QRMemo ou QRBMemo . O parametro " S " é o texto de um QRMemo ou QRBMemo e o " iMax " é a quantidade de caracteres de cada linha. a fonte tem que ser " Courier ou Courier New ". Modifique o codigo para seu uso abraço -
Eu criei um Browser na minha aplicação e não toca nenhum som ... Se é um programa pronto do qual voce quer tirar este som, so tem uma solução: é ir no Painel de controle / Sons e dispositivos de audio/ Sons .. e remover Se é um programa que voce esta fazendo, é só não usar o MessageBeep abraço
-
Explicar fica meio dificil, mas voce pode ober mais informações nestes endereços http://inf.unisul.br/~osmarjr/download/apostila/aptoop.zip http://www.joaomorais.com.br/pascal/push.p...wnload=70913514 abraço
-
De acorco com o Delphi temos: Se é som que voce quer tem outras opções ... e se for para ficar tocando som no teclado cada vez que voce digitar, isso uma hora vai irritar o usuario. abraço
-
vcl70.bpl - erro ao executar programas que compilei
pergunta respondeu ao Denis Courcy de Jhonas em Delphi, Kylix
Este erro ocorre em função de registros corrompidos, ou a vcl não está sendo encontrada Soluções: 1 - Tente reinstalar esta bpl, e verifique se a opção Library está apontando para este diretório onde se encontra vcl70.bpl, ou se ela foi removida. 2 - Desistale o delphi, e verifique se os arquivos correspondentes foram exluidos da pasta Sytem32 do windows, depois terá que fazer uma limpeza nos registros usando o Regedit ou use o Easy-Cleaner para isto http://baixaki.ig.com.br/download/Easy-Cleaner.htm depois voce instala novamente o delphi e o quick Report abraço -
(Resolvido) Deixar texto justificado em relatório
pergunta respondeu ao Tatiane.InterArt de Jhonas em Delphi, Kylix
trabalhe com fonte Courier, as letras tem o mesmo espaçamento. abraço -
ou voce tira o comando da sua aplicação ou desabilita o som pelo painel de controle help do delphi: abraço
-
Estou sem tempo agora... passo o resto depois library Path; { Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. This applies to all strings passed to and from your DLL--even those that are nested in records and classes. ShareMem is the interface unit to the BORLNDMM.DLL shared memory manager, which must be deployed along with your DLL. To avoid using BORLNDMM.DLL, pass string information using PChar or ShortString parameters. } uses SysUtils, inifiles, Classes; {$R *.RES} procedure LeINI(var Porta: Integer; var TipoCon: String);stdcall;Export; var ArqINI : TIniFile; Caminho : Pchar; Begin caminho := Pchar(ExtractFilePath(ParamStr(0)) + 'ServerConf.INI'); ArqINI := TINIFile.Create(caminho); try Porta := ArqINI.ReadInteger('Conexão','Porta',0); TipoCon := ArqINI.ReadString('Conexão','TipoCon',''); finally ArqINI.Free; end; end; Exports LeINI; begin end. abraço
-
Da uma olhada neste post http://scriptbrasil.com.br/forum/index.php...st&p=479021 abraço
-
coloque o codigo que esta na dll para poder te ajudar Outras formas de se usar arquivos INI http://www.devmedia.com.br/articles/viewcomp.asp?comp=304 http://www.guiadodelphi.com.br/ler.php?codigo=261 http://www.devmedia.com.br/articles/viewcomp.asp?comp=2965 http://www.plugmasters.com.br/sys/materias...onfigura%E7%E3o http://www.activedelphi.com.br/print.php?sid=389 abraço