-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
procure pelo arquivo neste caminho C:\Arquivos de programas\Borland\Delphi2007\Source\Vcl ou então baixe no seu micro o GraphicEx library (biblioteca grafica do 2007) http://www.soft-gems.net/index.php?option=...3&Itemid=33 abraço
-
Passar objeto por copia e não como ponteiro
pergunta respondeu ao darth_ivan de Jhonas em Delphi, Kylix
vamos ver... Imaginemos q você tem uma variável global... e você passa ela como parâmetro em uma função. Se você passar por valor, ele vai criar uma cópia dessa variável na memoria, e tudo que você mexer nela, você vai estar alterando essa cópia, e não a variavel original... Se você passar por referência, a função sempre vai apontar para posição original da variavel na memória, e tudo que você fizer com aquela variável dentro da função, vai alterar sua variável original... Toda a passagem de objetos como parâmetros para métodos é feita por referência Se a passagem for feita por referência, passamos apenas o endereço de memória do objeto, assim continuamos tendo apenas 1 objeto alocado. Uma alteração em qualquer característica do objeto é refletida em qualquer local do código onde este objeto seja utilizado. Passagem por valor (ou cópia) : Cria-se uma cópia do tipo passado. você terá duas variáveis na memória, do mesmo tipo e com os mesmos valores. Um parametro passado por valor atua como uma variavel local à procedure ou função na qual foi declarado. Uma particularidade é que ele já recebe um valor inicial, que é o valor colocado na chamada da procedure ou função. As mudanças de valor feitas um parametro deste tipo não refletem no parametro original. exemplo: Prodecure ABC( Arg1: integer); begin Arg1 := Arg1 * 2; end; var I : integer; begin I := 2; ABC(I); ChamaOutraProdecure(I); end; OBS: o valor de I n a linha ChamaOutraProdecure(I) é 2. O valor da variavel original não se alterou, porque a procedure trabalhou apenas com uma copia do valor que I possuia. Este tipo de parametro pode receber qualquer expressão que possua um valor unico como resultado final exemplo: ABC( (3+6) * 3-1); ABC( ArcTan(6) div 3); ABC( inc(I)); deu pra entender ? abraço -
para substituir os componentes, procure nas paletas do delphi 2007 o componente que esta no form OBS: foi feita uma correção de mais de 500 bugs no delphi 2007 http://dn.codegear.com/article/36953 voce deve baixar o update 3 para o delphi 2007, para corrigir estes erros http://www.codegear.com/downloads/regusers/delphi abraço
-
Não pode compilar usando a unit Graphics.pas.... se voce tentou fazer uma copia e voce não recebeu a mensagem se deseja sobreescrever o arquivo, significa que voce não salvou o arquivo no local correto (pasta do delphi 2007 onde esta o arquivo original) , entretanto, não é aconselhavel fazer isto, e sim trocar os componentes apenas na tela gráfica, pelos componentes do Delphi 2007. Migrar um projeto de uma versão para outra, implica em trocar todos ( ou quase todos ) os componentes que apresentam erro. mais de 95% do codigo é reaproveitado sem problemas. abraço.
-
Socket Error 10049. Não é possível atribuir endereço solicitado. O endereço pedido não é válido em seu contexto. Normalmente é o resultado de uma tentativa para ligar a um endereço que não é válido para a máquina local, ou connect/send para um endereço ou porta que não são válido para uma máquina remota (por exemplo porta 0). Socket Error 10049. Não é possível atribuir endereço solicitado. Resposta / Solução: Normalmente os resultados de uma tentativa de criar um socket com um endereço não nesta máquina. WinSock descrição: O "endereço", remete para o soquete nome remoto (protocolo, porta e endereço). Esse erro ocorre quando o sin_port valor for igual a zero em uma estrutura sockaddr_in para ligar ou sendto. Este erro também ocorre quando você está tentando nome do soquete locais (ceder locais endereço e número da porta), com vínculo, mas Windows Sockets não atribuem esse erro de vincular por alguma razão desconhecida. Com relação ao erro 10049...tambem ocorre quando você tenta atribuir um IP local arbitrário para os componentes TIdPOP3 e/ou TIdSMTP através da propriedade BoundIP? Se for o caso, deixe essa propriedade em branco ou atribua um IP que corresponda à máquina onde você está executando o programa. OBS: rodei o seu codigo usando apenas um endereço e a resposta foi : Windows socket error: O nome solicitado é válido e foi econtrado no banco de dados, mas os dados corretos associados não estão resolvidos (11004), on API ASync Lokup. Process stopped veja o que acontece quando voce usa apenas um endereço.
-
Complementando o que o Micheus já expos ... Voce so vai deixar todas as colunas da linha ( Texto ) em vermelho se na propriedade Options do Dbgrid a opção dgEditing estiver false e a opção dgRowSelect estiver true. ou seja, se deixar em modo de edição não vai conseguir obter o resultado desejado. abraço
-
eu faço desta maneira e funciona muito bem, voce pode estudar o codigo e modifica-lo para seu uso unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) BtCompactar: TButton; OpenDialog1: TOpenDialog; Edit1: TEdit; BtDescompactar: TButton; procedure BtCompactarClick(Sender: TObject); procedure BtDescompactarClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; sNomeZip, senha, s : string; implementation {$R *.DFM} procedure TForm1.BtCompactarClick(Sender: TObject); begin senha := trim(edit1.Text); if OpenDialog1.Execute then sNomeZip := OpenDialog1.FileName; s := 'C:\Arquivos de Programas\WinZip\winzip32 -a -s' + senha + ' ' + sNomeZip; WinExec( PChar(s), SW_SHOW ); end; procedure TForm1.BtDescompactarClick(Sender: TObject); begin senha := trim(edit1.Text); if OpenDialog1.Execute then sNomeZip := OpenDialog1.FileName; s := 'C:\Arquivos de Programas\WinZip\winzip32 -e -s' + senha + ' ' + sNomeZip; WinExec( PChar(s), SW_SHOW ); end; end. abraço
-
talvez usando este codigo: Uses Windows, Graphics; procedure AngleTextOut(Canvas: TCanvas; const Text: String; x, y, angle: Integer); var LogFont : TLogFont; SaveFont : TFont; begin SaveFont := TFont.Create; SaveFont.Assign(Canvas.Font); GetObject(SaveFont.Handle, sizeof(TLogFont), @LogFont); with LogFont do begin lfEscapement := angle *10; lfPitchAndFamily := FIXED_PITCH or FF_DONTCARE; lfOutPrecision:=out_tt_precis; lfQuality:=proof_quality; end; Canvas.Font.Handle := CreateFontIndirect(LogFont); SetBkMode(Canvas.Handle, TRANSPARENT); Canvas.TextOut(x, y, Text); Canvas.Font.Assign(SaveFont); SaveFont.Free; end; --------------------------------------------------------------------------- dica de Adriano Santos procedure TForm1.Button1Click(Sender: TObject); procedure ImprimirNaVertical(AQuick: TQuickRep; ABanda: TQrBand; ATexto: string); var lf: TLogFont; tf: TFont; xQrImage: TQrImage; begin xQrImage := TQrImage.Create(AQuick); xQrImage.Parent := ABanda; xQrImage.Align := alLeft; xQrImage.Width := 15; xQrImage.BringToFront; with xQrImage.Canvas do begin Font.Name := 'Arial'; Font.Size := 12; tf := TFont.Create; tf.Assign(Font); GetObject(tf.Handle, Sizeof(lf), @lf); lf.lfEscapement := 900; lf.lfOrientation := 450; tf.Handle := CreateFontIndirect(lf); Font.Assign(tf); tf.Free; TextOut(0, xQrImage.Height div 2, ATexto); end; end; begin ImprimirNaVertical(QuickRep1,QRBand1,'Ola'); end; Ela imprime um texto no canvas de um TQrImage na vertical. ------------------------------------------------------------------------------------- ou ainda usando componentes http://www.guiadodelphi.com.br/ler.php?codigo=1073 http://www.guiadodelphi.com.br/compdelphi/QrlbLang.zip http://sr6.xoom.com/_XMCM/valcirjr/qranglbl.zip http://sr6.xoom.com/_XMCM/valcirjr/qrlblang.zip http://www.qusoft.com/delphilegacy.html ----------------------------------------------------------------------------------------- ou ainda de outra maneira --------------------------------------------------------------------------------------------------Outra maneira ainda espero que ajude ... abraço
-
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Image1.Cursor := crHandPoint; end; quando voce passar o mouse em cima da figura o cursor muda para mão e ao sair ele volta ao padrão de seta abraço
-
Erro lendo ImageList1.Bitmap: Falha para Leitura de dados de fluxo no ImageLIst. Este erro ocorre quando tenta carregar uma versão mais velha de ComCtl32 O Delphi requerer a versão 4.72 . Usar GetComCtlVersion no Delphi para saber qual a versão que esta sendo usada. abraço a versão do ComCtl32.dll para o XP é o 5.82 Download http://www.dlldump.com/download-dll-files_...2/download.html
-
passar o objeto como parâmetro fica mais rapido se usado em rede. abraço
-
procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin for i := 1 to DataModule1.Tabela1.recordcount do begin DataModule1.Tabela1.Edit; DataModule1.Tabela1campo.Value := i; DataModule1.Tabela1.Post; DataModule1.Tabela1.Next; end; end; OBS: OnCalcFilds não pode ser alterado, este codigo é para renumerar um campo da tabela abraço
-
colega, se voce olhar direito vai ver que o SaveDialog faz isso ( escolher o arquivo e a pasta onde sera salvo ) e se a pasta não existir voce pode cria-la clicando no icone ( criar nova pasta ) que esta do lado direito em cima. obeserve que voce vera 4 icones ( ir para a ultima pasta visitada, um nível acima, criar nova pasta, e menu exibir ) vlw
-
Posição das imagens em um ActionMainMenuBar
pergunta respondeu ao Alisson de Jhonas em Delphi, Kylix
estes componentes são do delphi 7 ... para as imagens voce deve usar o ImageList1 da paleta Win32 observe que quando voce coloca o componente ActionMainMenuBar1 no form , a propriedade Align default é alTop ( deveria ser usado alNone) , isto faz com que ele fique com uma altura vertical fixa, e mesmo que voce defina a propriedade GlyphLayout no ActionManager como blGlyphTop, a imagem ficara a esquerda do nome do titulo , pois ele não altera este comprimento para pode colocar o icone acima do titulo ( acho que existe uma propriedade chamada stretch que tem que estar true .. não me recordo direito ) sei que dá pra fazer isso, mas não me recordo como. OBS: este componente permite a criação de menu com itens e subitens abraço -
(Resolvido) Icone em um componente criado por mim!
pergunta respondeu ao Erso de Jhonas em Delphi, Kylix
O compnente normalmente herda o ícone da classe ancestral... O icone do componente fica no arquivo com extensão DCR (Delphi Component Resource), que tem o mesmo nome do componente. você pode criar um icone com o editor de image: va em Image Editor, no menu Tools, crie um arquivo novo File / New... / Component Resource File (.dcr). Crie com tamanho 24x 24 e use 16 cores. De o nome do seu componente, coloque no diretorio que esta o componente e instale o componente. outras dicas http://www.clubedelphi.net/artigos/criacao_componentes.asp http://www.clubedelphi.net/artigos/criacao_componentes2.asp] abraço -
realmente 60000 = 60 seg ... coloquei um zero a mais ..rs Obs: tirar o showmessage de dentro do timer ( pois ao ser ativada a menssagem o timer para ) abra uma nova aplicação e faça como esta no meu codigo ... não tem erro ... funciona perfeitamente abraço
-
(Resolvido)Abrir Tabela em Excel (.xls) no Delphi
pergunta respondeu ao schaukoski de Jhonas em Delphi, Kylix
voce pode usar componentes da paleta ADO do delphi ADOConnection1, ADOQuery1, ADODataSet1, ADOTable1 http://www.forumweb.com.br/foruns/index.ph...st&p=285387 exemplos http://www.swissdelphicenter.ch/en/showcode.php?id=1728 http://www.swissdelphicenter.ch/en/showcode.php?id=379 http://www.guiadodelphi.com.br/ler.php?codigo=1154 http://delphi.about.com/od/database/l/aa090903b.htm ou então componentes da paleta Server exemplo: http://www.ramosdainformatica.com.br/art_r...es01.php?CDA=95 -
Acho que com a instalação do BDB Engine resolve: http://dev.mysql.com/doc/refman/4.1/pt/bdb-install.html Explicação ( em ingles ) http://www.webmonkey.com/webmonkey/02/11/index4a.html http://www.webmonkey.com/webmonkey/02/11/i...html?tw=backend
-
Problema quando abre o delphi 7: Invalid action registration
uma questão respondeu Jhonas em Delphi, Kylix
já tive este problema, tem haver com o perfil do usuario ... então instalei o delphi7 usando o perfil deste usuario, ai ele aceitou instalar novos componentes abraço -
O erro é de não conseguir carregar a biblioteca de funções ... veja o caminho dessas bibliotecas no 2007 e faça o mesmo para o 2008 abraço
-
Oi Eder .... veja se o seu codigo esta como este ... fiz do jeito que voce falou e funciona perfeitamente unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled := false; end; procedure TForm1.Timer1Timer(Sender: TObject); begin // interval do timer = 600000 > 60 segundos Application.Terminate; end; end. abraço
-
É evidente que para funcionar voce deve ativar ( abrir ) a query ou table , antes de dar o preview .. ok ? se não n ão vai aparecer nada. OBS: caso voce tenha que mostrar mais do que um registro voce tera que colocar na propriedade DataSet do QR o componente ClientDataSet ou o DataSource da sua query.
-
Janelas podem ser modais ou não modais: Modal: a janela deve ser fechada (escondida ou descarregada) antes que o aplicativo possa continuar a execução. Não Modal: a execução do aplicativo continua, mesmo com a janela aberta. Janelas modais são bastante comuns em situações em que devemos evitar que o usuário faça qualquer coisa em outras janelas enquanto uma operação importante está sendo realizada. O ambiente de trabalho do Delphi é um exemplo de várias janelas não modais abertas ao mesmo tempo, possibilitando que o usuário alterne entre elas sem ter de fechá-las antes. Os métodos e comandos Método Show: Carrega formulários não modais e os mostra na tela. Sintaxe: Nome_do_Form.Show Método ShowModal: Carrega formulários modais e os mostra na tela. Sintaxe: Nome_do_Form.ShowModal. Janelas previamente carregadas na memória podem ser mostradas fazendo-se a propriedade Visible verdadeira. Da mesma forma, janelas carregadas na memória podem ser escondidas fazendo-se Visible false. Quando uma janela é descarregada da memória, todos os seus componentes, variáveis locais e procedimentos tornam-se inacessíveis. Vale salientar que formulários que tenham sido apenas escondidos, mas não descarregados, continuarão presentes, ocupando memória. Entretanto, poderão ser acessados muito mais rapidamente da próxima vez em que forem necessários, haja vista que não precisarão ser recuperados do disco. outra explicação: http://www.activedelphi.com.br/modules.php...r=0&thold=0 vlw ... abraço
-
O QRDBText funciona assim : na propriedade DataSet do QRDBText voce linka com componente DataSource da sua query ou Table, e na popriedade DataField voce coloca o n ome do campo que voce quer visualizar e na propriedade transparent voce deixa true . Neste componente voce traz o conteudo que esta em um campo da sua tabela. A escrita ficara com o fundo transparente por cima da figura. ok ? OBs: voce pode escrever nos outros dois componentes antes de dar o preview
-
Soluções: voce pode colocar uma imagem no fundo, mas so conseguira digitar um texto se usar os componentes QRLabel QRMemo QRDBText alterando a propriedade transparent para true destes componentes outra solução seria tentar converter este codigo ( C# ) para delphi http://www.codeproject.com/cs/miscctrl/Alp...extControls.asp ou ainda tentar este componente http://turbonote-desktop-sticky-notes.turb...softalizer.com/ abraço