-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
O seu DBgrid deve estar ligado a um DataSource, ou seja, deve estar ligado a uma tabela ai para testar voce pode escolher um campo do dbgrid que seja tipo string DBGrid1.Columns[0].PickList.Append('JAN '); DBGrid1.Columns[0].PickList.Append('FEV '); DBGrid1.Columns[0].PickList.Append('MAR '); DBGrid1.Columns[0].PickList.Append('ABR '); DBGrid1.Columns[0].PickList.Append('MAI '); DBGrid1.Columns[0].PickList.Append('JUN '); DBGrid1.Columns[0].PickList.Append('JUL '); DBGrid1.Columns[0].PickList.Append('AGO '); DBGrid1.Columns[0].PickList.Append('SET '); DBGrid1.Columns[0].PickList.Append('OUT '); DBGrid1.Columns[0].PickList.Append('NOV '); DBGrid1.Columns[0].PickList.Append('DEZ '); OBS: Use este código no eventro OnActive do form .... quando voce especifica Columns[0] é a primeira coluna do dbgrid que ficará a lista do picklist ... ela aparece quando voce clicar no campo abraço
-
DM.QLote.SQL.Text := 'UPDATE PBS_Desc SET Check = 0 where Check = 1'; O código esta correto ... tente assim DM.QLote.SQL.Append( 'UPDATE PBS_Desc SET Check = 0 where Check = 1'); abraço
-
Colocar um ComboBox num DBGrid As colunas da DBGrid tem uma propriedade chamada PickList, que permite colocar as opções numa lista, que serão mostradas quando a coluna é editada. Para preenchê-la, basta abrir o editor de colunas da DBGrid, selecionar a coluna desejada, abrir o editor da PickList e colocar as opções para aquela coluna. Assim, ao editar a coluna, abre-se a combobox. exemplo: DBGrid1.Columns[0].PickList.Append('JAN '); DBGrid1.Columns[0].PickList.Append('FEV '); DBGrid1.Columns[0].PickList.Append('MAR '); DBGrid1.Columns[0].PickList.Append('ABR '); DBGrid1.Columns[0].PickList.Append('MAI '); DBGrid1.Columns[0].PickList.Append('JUN '); DBGrid1.Columns[0].PickList.Append('JUL '); DBGrid1.Columns[0].PickList.Append('AGO '); DBGrid1.Columns[0].PickList.Append('SET '); DBGrid1.Columns[0].PickList.Append('OUT '); DBGrid1.Columns[0].PickList.Append('NOV '); DBGrid1.Columns[0].PickList.Append('DEZ '); outro exemplo DBGrid1.Columns[1].PickList.Clear; CDS_Preg.First; for i := 0 to CDS_Preg.RecordCount-1 do begin DBGrid1.Columns[1].PickList.Append(CDS_PregCODNEG.Value); CDS_Preg.Next; end; abraço
-
[Dúvida] TProgressBar Property out of range
pergunta respondeu ao Rmpjunior de Jhonas em Delphi, Kylix
Coloquei um Edit pra mostrar qual adress tá sendo checado, e ele já começa checando um valor muito alto, não entendo. Como voce não postou o código que está utilizando para fazer a leitura dos endereços, procure entender a lógica e aplicar as modificações necessarias ao seu código Function HexToInt(const HexStr: string): longint; var iNdx: integer; cTmp: Char; begin result := 0; for iNdx := 1 to Length(HexStr) do begin cTmp := HexStr[iNdx]; case cTmp of '0'..'9': Result := 16 * Result + (Ord(cTmp) - $30); 'A'..'F': Result := 16 * Result + (Ord(cTmp) - $37); 'a'..'f': Result := 16 * Result + (Ord(cTmp) - $57); else raise EConvertError.Create('Illegal character in hex string'); end; end; end; procedure TForm1.Button1Click(Sender: TObject); var Max , Min : Int64; i, adress : integer; a: string; begin Max := HexToInt('11680980'); Min := HexToInt('00C9AEBA'); Gauge1.MaxValue := Max; Gauge1.MinValue := Min; if Max - Min <= 2147483647 then begin for i := min to max do begin if (Hextoint(inttostr(adress)) >= min) and (Hextoint(inttostr(adress)) <= max)then Gauge1.Progress:= i; end; Gauge1.Progress := 0; end else begin // Se a diferença estrapolou 2147483647 Max := Max div 16; Min := Min div 16; for i := min to max do begin Gauge1.Progress := i; end; Gauge1.Progress := 0; end; end; abraço -
exemplo: procedure TForm1.Button1Click(Sender: TObject); var i, t: cardinal; s : string; begin s := ''; t:=length(Edit1.Text); setlength(s,t); for i:=0 to t-1 do s[t-i]:=Edit1.Text[i+1]; edit1.text := s; end; abraço
-
[Dúvida] TProgressBar Property out of range
pergunta respondeu ao Rmpjunior de Jhonas em Delphi, Kylix
O Erro: Value must be between -2147483647 and 99. Valor deve estar entre -2147483647 e 99. realmente voce fez alguma coisa errada no código .... coloque um exemplo real dessa chegagem abraço -
(Resolvido) Pegar ExitCode do processo
pergunta respondeu ao Douglas Soares de Jhonas em Delphi, Kylix
Basta testar a variavel dRunning procedure CaptureConsoleOutput(const ACommand, AParameters: String; AMemo: TRichEdit); const CReadBuffer = 2400; var saSecurity: TSecurityAttributes; hRead: THandle; hWrite: THandle; suiStartup: TStartupInfo; piProcess: TProcessInformation; pBuffer: array[0..CReadBuffer] of Char; dRead: DWord; dRunning: DWord; begin saSecurity.nLength := SizeOf(TSecurityAttributes); saSecurity.bInheritHandle := True; saSecurity.lpSecurityDescriptor := nil; if CreatePipe(hRead, hWrite, @saSecurity, 0) then begin FillChar(suiStartup, SizeOf(TStartupInfo), #0); suiStartup.cb := SizeOf(TStartupInfo); suiStartup.hStdInput := hRead; suiStartup.hStdOutput := hWrite; suiStartup.hStdError := hWrite; suiStartup.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW; suiStartup.wShowWindow := SW_HIDE; if CreateProcess(nil, PChar(ACommand + ' ' + AParameters), @saSecurity, @saSecurity, True, NORMAL_PRIORITY_CLASS, nil, nil, suiStartup, piProcess) then begin repeat dRunning := WaitForSingleObject(piProcess.hProcess, 100); Application.ProcessMessages(); repeat dRead := 0; ReadFile(hRead, pBuffer[0], CReadBuffer, dRead, nil); pBuffer[dRead] := #0; AMemo.Lines.Add(String(pBuffer)); until (dRead < CReadBuffer); until (dRunning <> WAIT_TIMEOUT); CloseHandle(piProcess.hProcess); CloseHandle(piProcess.hThread); if (dRunning <> WAIT_TIMEOUT) and (dRunning = 0) then ShowMessage('Comando executado corretamente') else ShowMessage('Comando executado incorretamente') end; CloseHandle(hRead); CloseHandle(hWrite); end; end; OBS: Onde aparece a mensagem voce pode jogar valores 0 ou 1 para uma tabela e apresenta-los em um dbgrid abraço -
[Dúvida] TProgressBar Property out of range
pergunta respondeu ao Rmpjunior de Jhonas em Delphi, Kylix
A idéia é simples ... coverta o Hexadecimal ( Max ) e o hexadecimal ( Min ) em int64 faça a diferença do Max menos o Min ... se o resultado estiver dentro do range do gauge voce usa se a diferença estiver fora, voce faz uma divisão sucessiva por algum numero até que o resultado fique dentro do range Só testando para saber o resultado abraço -
[Dúvida] TProgressBar Property out of range
pergunta respondeu ao Rmpjunior de Jhonas em Delphi, Kylix
var min, max : Int64; begin // Set the minimum and maximum values of this data type min := Low(Int64); max := High(Int64); ShowMessage('Min int64 value = '+IntToStr(min)); ShowMessage('Max int64 value = '+IntToStr(max)); end; resultado: Min int64 value = -9223372036854775808 Max int64 value = 9223372036854775807 OBS: usando Int64 voce conseguiria abranger os valores em hexadecimal entretanto o gauge suporta de 1 a 2147483647 então dentro do exemplo que voce passou: procedure TForm1.Button1Click(Sender: TObject); var Max, Min : int64; i : integer; begin Max := 292030848; Min := 11680980; Gauge1.MaxValue := Max; Gauge1.MinValue := Min; for i := min to max do begin Gauge1.Progress := i; end end; Veja que os valores para Max e Min usando int64 poderiam chegar a Min int64 value = -9223372036854775808 Max int64 value = 9223372036854775807 entretanto o gauge chegaria apenas a 2147483647 Solução: a diferença de Max e Min deve estar dentro do range do gauge .. se extrapolar a idéia mais simples seria fazer uma divisão abraço -
(Resolvido) Ordenar em Sequencia Numérica Memo
pergunta respondeu ao methoduz de Jhonas em Delphi, Kylix
experimente assim procedure Ordenar(Valores: tStrings); var i, j : integer; temp : string; begin for i := 0 to Valores.Count - 1 do for j := 0 to Valores.Count - 2 do begin if ansiUpperCase(Valores[j]) > ansiUpperCase(Valores[j + 1]) then begin TEmp := Valores[j]; Valores[j] := Valores[j + 1]; Valores[j + 1 ] := TEmp; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Ordenar(memo1.lines); end; abraço -
(Resolvido) Pegar ExitCode do processo
pergunta respondeu ao Douglas Soares de Jhonas em Delphi, Kylix
Passe um exemplo de uso -
voce tem que usar o picklist http://www.devmedia.com.br/articles/post-1...id-Parte-I.html abraço
-
procedure TForm1.Edit1Exit(Sender: TObject); begin if RadioGroup1.Focused = false then showmessage('RadioGroup sem foco') else showmessage('RadioGroup com foco'); edit1.text := 'Teste'; end; Se ao sair do Evento OnExit do Edit o foco não cair em um componente RadioGroup1, a mensagem sempre será 'RadioGroup sem foco' abraço
-
Testei o componente do link que voce indicou e esta funcionando normal no delphi 7 ... não tenho o delphi 2010 abraço
-
Se for o driver.sys do windows é impossivel se voce não tiver o código fonte abraço
-
Isso é uma condição de proteção do windows 7 para evitar que programas espiões não possam ser executados sem seu consentimento Voce terá que criar um exceção para que esse executavel seja executado, pelo firewall do windows abraço
-
[Dúvida] TProgressBar Property out of range
pergunta respondeu ao Rmpjunior de Jhonas em Delphi, Kylix
Os seus valores de Max e Min em Hexadecimal convertidos para decimal são positivos ou negativos ? -
Get FTP com atualização de Gauge congela a aplicação
pergunta respondeu ao Luciano Umbelino de Jhonas em Delphi, Kylix
Veja esse exemplo, vai te ajudar http://www.devmedia.com.br/post-2300-Utili...--internet.html Download do código http://www.devmedia.com.br/download/down.asp?id=2300&cb= abraço -
Get FTP com atualização de Gauge congela a aplicação
pergunta respondeu ao Luciano Umbelino de Jhonas em Delphi, Kylix
Sim... se o teste funcionar, voce pode implementar o resultado na thread. fechar ou minimizar ... se fechar o processamento é interrompido ... se minimizar não abraço -
Get FTP com atualização de Gauge congela a aplicação
pergunta respondeu ao Luciano Umbelino de Jhonas em Delphi, Kylix
Com poucas alterações no seu código, acho que vai funcionar OBS: Mantenha as configurações atuais para o idFTP e joque o conteudo do idPOP3 dentro do ListBox e faça o teste unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, Gauges; type TForm1 = class(TForm) IdFTP1: TIdFTP; Button1: TButton; ListBox1: TListBox; Gauge1: TGauge; procedure Button1Click(Sender: TObject); procedure IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer); procedure IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; bytesToTransfer: integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var indice : integer; begin try if IdFTP1.Connected then IdFTP1.Disconnect; IdFTP1.Connect(); IdFTP1.List(ListBox1.Items,'*.pdf',false); // Listar somente arquivos com extensão .pdf if ListBox1.Items.Count = 0 then Abort; for indice:= 0 to ListBox1.Items.Count -1 do begin try ListBox1.Selected[indice] := true; bytesToTransfer := IdFTP1.Size(ListBox1.Items.Strings[indice]); IdFTP1.Get(ListBox1.Items.Strings[indice],'' + ListBox1.Items.Strings[indice],true); except on e:exception do showmessage(e.Message); end; end; finally IdFTP1.Disconnect; end; end; procedure TForm1.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer); begin Gauge1.Progress := 0; if AWorkCountMax > 0 then Gauge1.MaxValue := AWorkCountMax else Gauge1.MaxValue := bytesToTransfer; end; procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); begin Gauge1.Progress := AWorkCount; end; end. abraço -
(Resolvido) controle de versão da aplicação
pergunta respondeu ao flavioavilela de Jhonas em Delphi, Kylix
Sim ... e caso o numero da versão não seja incrementado automaticamente, veja se não deixou alguma opção desmarcada abraço -
(Resolvido) foco em determinada janela
pergunta respondeu ao flavioavilela de Jhonas em Delphi, Kylix
Experimente usar o MessageBox http://www.susviela.hpg.ig.com.br/delphi/d...i/mensagens.htm abraço -
(Resolvido) controle de versão da aplicação
pergunta respondeu ao flavioavilela de Jhonas em Delphi, Kylix
eu marquei a opção Auto_increment build number, ele não deveria incrementar automatico pra mim??? somente quando houver mudanças significativas no código abraço -
(Resolvido) foco em determinada janela
pergunta respondeu ao flavioavilela de Jhonas em Delphi, Kylix
Fiz um teste com janela modal e não modal e funciona normal... em ultimo caso, voce pode criar a sua propria janela de mensagem, onde voce pode determinar o foco abraço -
(Resolvido) controle de versão da aplicação
pergunta respondeu ao flavioavilela de Jhonas em Delphi, Kylix
O fato de voce compilar umas 100 vezes, mesmo que tenha alterado apenas algumas linhas de comando, voce terá sempre o mesmo resultado se voce não alterar o Module Version Number ou usar a opção Auto_increment build number O controle de versão é seu ... voce é quem deve altera-lo sempre que necessario abraço