-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
Colega.. vou dar a noção basica para fazer isto procedure TForm1.Button1Click(Sender: TObject); var S: string; i : integer; begin i := 0; S := Edit1.Text; { Convert spaces to zeroes } while Pos('\', S) > 0 do begin i := i + 1; if i = 3 then begin edit2.Text := copy(Edit1.Text,1,Pos('\', S)-1); edit3.Text := copy(Edit1.Text,Pos('\', S),30); end; S[Pos('\', S)] := '0'; end; end; OBS: se voce digitar no edit1 => ' \\Servidor\Compartilhado' e rodar este codigo, voce vai ter no edit2 o valor '\\Servidor' e no edit3 o valor '\Compartilhado' voce pode modificar o codigo para atender as suas necessidades, mas a ideia basica é esta. abraço
-
Oi Eder .... primeiro este codigo de erro é muito vago , pode ser por diversos motivos... segundo. é preciso saber o que este seu programa faz para saber que tipo de erro é ( ele ocorre quando fecho a aplicação ) ... manda mais detalhes.
-
tenta desta maneira unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ComboOrdem: TComboBox; Button1: TButton; COMBOLAYOUT: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var i , achou : integer; begin achou := 0; IF COMBOLAYOUT.TEXT = 'LAYOUT-1' THEN begin for i := 0 to ComboOrdem.Items.Count-1 do begin if ComboOrdem.Items.Strings[i] = 'CIDADES/PRAÇAS/ESTADOS' then achou := achou + 1; end; if achou = 0 then ComboOrdem.Items.Append('CIDADES/PRAÇAS/ESTADOS') else begin ComboOrdem.Items.Delete(i-1); achou := 0; end; end; ComboOrdem.Text := ''; ComboOrdem.Refresh; end; end. Modifique se for necessario.. Explicação: se encontrar a palavra 'LAYOUT-1' no edit1, ele faz uma varredura nos itens do combobox... se não existir ele acrescenta ... e se existir ele deleta abraço
-
OBS: veja na tabela qual o tamanho definido para Clientes abraço
-
Um tipo real define um conjuno de valores que é um subconjunto do conjunto dos umeros reais ®. A linguagem object pascal apresenta diversos tipos reais diferentes, cada um armazenado de forma um pouco diferente, onde cada um possui uma determinada faixa de valores e um tamanho limitado em bytes exemplo real single double extended comp2 currency um tipo inteiro é um tipo ordinal predefinido... os tipos inteiros são 7 e podem ser divididos em dois grupos distintos: um que se manem inalterado e outro que varia de acordo com o sistema operacional, onde cada um possui uma determinada faixa de valores e um tamanho limitado em bytes exemplo shortint smallint longint byte word integer cardinal function StrToFloat(const S: string): Extended; string): Extended; Descrição Use StrToFloat para converter uma string, S, para um valor de ponto-flutuante. S tem que consistir em um sinal opcional (+ ou -), uma string de dígitos com um ponto decimal opcional, e um mantissa opcional. O mantissa consiste de ' E' ou ' e' seguido por um sinal opcional (+ ou -) e um número inteiro. Espaços em branco são ignorados. O DecimalSeparator variável global define o caráter que deve ser usado como um ponto decimal. Não são permitidos mil separador e símbolos de moeda corrente na string( ex: R$ 1.000 não é permitido). Se S não contiver um valor válido, StrToFloat eleva uma exceção de EConvertError. Procure no help do delphi para maiores informações abraço
-
Rodrigo .. o codigo para isto unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Db, DBTables, Grids, DBGrids; type TForm1 = class(TForm) DBGrid1: TDBGrid; Query1: TQuery; DataSource1: TDataSource; Label1: TLabel; procedure DBGrid1CellClick(Column: TColumn); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.DBGrid1CellClick(Column: TColumn); begin // mostra o numero da linha onde esta o cursor Label1.caption := inttostr(DBGrid1.DataSource.DataSet.RecNo); end; end. abraço
-
voce pode fazer assim para não duplicar procedure TFormRelCidades.ComboLayOutChange(Sender: TObject); begin IF COMBOLAYOUT.TEXT = 'LAYOUT-1' THEN BEGIN ComboOrdem.Clear; ComboOrdem.Items.Append('CIDADES/PRAÇAS/ESTADOS'); end else begin ComboOrdem.Items.Delete('CIDADES/PRAÇAS/ESTADOS'); end; end; abraço
-
Para colocar arquivos .GIF em seu form, use o componente TImage da paleta Additional e clique na propriedade Picture para procurar a imagem Gif que voce quer. abraço
-
Oi Eder ... vai ai o codigo procedure TForm1.Button1Click(Sender: TObject); begin ComboBox1.Items.Append('aaaaaaaaa'); // para adicionar um texto end; procedure TForm1.Button2Click(Sender: TObject); begin ComboBox1.Items.Delete[ComboBox1.ItemIndex]; // para deletar o texto selecionado end; abraço
-
Colega ... escreva na propriedade Hint e deixe a propriedade ShowHint como true abraço
-
Oi Eder... faça ou ainda para executar o bat faça o seguinte winexec ('c:\teste.bat',sw_hide); abraço
-
Uma dica de adriano_servitec ACTIVEDELPHI Site para programadores em Delphi unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls; resourcestring sSaveChanges = 'Save changes to %s?'; sOverWrite = 'OK to overwrite %s'; sUntitled = 'Untitled'; sModified = 'Modified'; sColRowInfo = 'Line: %3d Col: %3d'; const //incluir maxdim=30; type TRPalavras = Record DS_PALAVRA : String; VR_COR, VR_COR2 : TColor; DS_FONTE, DS_FONTE2 : TFontStyles; //Esta linha não tinha no seu codigo inclui ela end; TAPalavras = array of TRPalavras; vetor= array [0..maxdim] of real; TForm1 = class(TForm) REdit1: TRichEdit; Edit1: TEdit; Button1: TButton; Button2: TButton; FontSize: TComboBox; ComboBox1: TComboBox; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FontSizeChange(Sender: TObject); procedure ComboBox1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } APalavras: TAPalavras; function CurrText: TTextAttributes; // verifique esta linha tambem public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} function TForm1.CurrText: TTextAttributes; begin if REdit1.SelLength > 0 then Result := REdit1.SelAttributes else Result := REdit1.DefAttributes; end; procedure TForm1.Button1Click(Sender: TObject); var iPosIni: Integer; iPosFim: Integer; iSelStart: Integer; iSelLength: Integer; iLoopFor: Integer; sText, str: String; begin SetLength( APalavras, Length( APalavras )+1 ); APalavras[ High( APalavras ) ].DS_PALAVRA :=EDIT1.TEXT; APalavras[ High( APalavras ) ].VR_COR := clRed; APalavras[ High( APalavras ) ].DS_FONTE := [fsUnderline,fsBold]; //incluir esta linha fsUnderline significa sublinhado e fsBold negrito...de uma olhada no help do delphi la tem exemplos como usar eu tirei de la para adpitar no seu codigo. LockWindowUpdate(redit1.Handle); iSelStart := redit1.SelStart; iSelLength := redit1.SelLength; for iLoopFor := 0 to High( APalavras ) do begin iPosIni := 0; iPosFim := Length( APalavras[ iLoopFor ].DS_PALAVRA ); while True do begin iPosIni := redit1.FindText( APalavras[ iLoopFor ].DS_PALAVRA, iPosIni, Length( redit1.Text ), [ stMatchCase ] ); if iPosIni < 0 then Break; redit1.SelStart := iPosIni; redit1.SelLength := iPosFim; redit1.SelAttributes.Color := APalavras[ iLoopFor ].VR_COR; redit1.SelAttributes.Style:= APalavras[ iLoopFor ].DS_Fonte; // incluir esta linha iPosIni := iPosIni + iPosFim +1; end; end; redit1.SelStart := iSelStart; redit1.SelLength := iSelLength; LockWindowUpdate(0); end; procedure TForm1.Button2Click(Sender: TObject); var iPosIni: Integer; iPosFim: Integer; iSelStart: Integer; iSelLength: Integer; iLoopFor: Integer; sText, str: String; begin SetLength( APalavras, Length( APalavras )+1 ); APalavras[ High( APalavras ) ].DS_PALAVRA :=EDIT1.TEXT; APalavras[ High( APalavras ) ].VR_COR2 := clBlack; //esta linha é para voltar a fonte preta LockWindowUpdate(redit1.Handle); iSelStart := redit1.SelStart; iSelLength := redit1.SelLength; edit1.text:=''; for iLoopFor := 0 to High( APalavras ) do begin iPosIni := 0; iPosFim := Length( APalavras[ iLoopFor ].DS_PALAVRA ); while True do begin iPosIni := redit1.FindText( APalavras[ iLoopFor ].DS_PALAVRA, iPosIni, Length( redit1.Text ), [ stMatchCase ] ); if iPosIni < 0 then Break; redit1.SelStart := iPosIni; redit1.SelLength := iPosFim; redit1.SelAttributes.Color := APalavras[ iLoopFor ].VR_COR2; redit1.SelAttributes.Style:= APalavras[ iLoopFor ].DS_Fonte2; // incluir esta linha iPosIni := iPosIni + iPosFim +1; end; end; redit1.SelStart := iSelStart; redit1.SelLength := iSelLength; LockWindowUpdate(0); edit1.setfocus; end; procedure TForm1.FontSizeChange(Sender: TObject); begin CurrText.Size := StrToInt(FontSize.Text); end; procedure TForm1.ComboBox1Click(Sender: TObject); begin REdit1.Font.Name := ComboBox1.Items[ComboBox1.ItemIndex]; //muda o estilo da fonte end; procedure TForm1.FormCreate(Sender: TObject); begin ComboBox1.Items := Screen.Fonts; //chama o estilo da fonte end; end. Se quiser ignorar MAIUSCULO e MINUSCULO no texto, apenas retire stMatchCase na linha: iPosIni := redit1.FindText( APalavras[ iLoopFor ].DS_PALAVRA, iPosIni, Length( redit1.Text ), [ stMatchCase ] ); ficando: iPosIni := redit1.FindText( APalavras[ iLoopFor ].DS_PALAVRA, iPosIni, Length( redit1.Text ), [] ); _______________ ACTIVEDELPHI Site para programadores em Delphi outra dica de gilsonnrodrigues procedure TForm1.Button1Click(Sender: TObject); var FoundAt : LongInt; StartPos, ToEnd : integer; vStream : TFileStream; vBusca : string; begin vBusca := Edit1.text; with RichEdit1 do begin SelStart := 0; SelLength := 0; repeat StartPos := SelStart + SelLength; ToEnd := Length(Text) - StartPos; FoundAt := FindText(vBusca, StartPos, ToEnd, []); if FoundAt < 0 then Break; begin SelStart := FoundAt; SelLength := Length(vBusca); end; SelAttributes.Color := clRed; SelAttributes.Style := SelAttributes.Style + [fsBold]; until False; SelStart := 0; SelLength := 0; SelAttributes.Color := clWindowText; end; end; este codigo acima procura por um subtexto no texto do richedit e muda a cor dele pra vermelho o comando abaixo mudar as cor e stilo do texto selecionado RichEdit1.SelAttributes.Color := clBlue; //Mudar a Cor RichEdit1.SelAttributes.Style := [fsBold]; //Coloca Negrito... No exemplo abaixo esta verificando o estilo do texto selecionado e modificando se o texto for bold fica normal e vice versa... with RichEdit.SelAttributes do if fsBold in Style then Style := Style - [fsBold] else Style := Style + [fsBold]; -------------------------------------------------------------------------------- Para quem tem o JEDI instalado da para usar o componente LinkLabel que entre outras coisas pode ser um RichEdit e ainda pode ter links no texto abraço
-
Oi colega, dei uma ajeitada no seu codigo para ficar como voce esta querendo unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) Memo1: TMemo; BitBtn1: TBitBtn; Edit1: TEdit; procedure BitBtn1Click(Sender: TObject); private { Private declarations } FSelPos: integer; public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure ScrollMemo(Memo: TMemo; Direction: Integer); var ScrollMessage: TWMVScroll; I: Integer; begin ScrollMessage.Msg := WM_VSCROLL; Memo.Lines.BeginUpdate; try for I := 0 to Memo.Lines.Count do begin ScrollMessage.ScrollCode := Direction; ScrollMessage.Pos := 0; Memo.Dispatch(ScrollMessage); end; finally Memo.Lines.EndUpdate; end; end; procedure TForm1.BitBtn1Click(Sender: TObject); var S : string; Startpos : integer; begin if FSelPos = 0 then StartPos := FSelPos + Length(Edit1.text); S := Copy(Memo1.Lines.Text, StartPos, MaxInt); S := Memo1.Lines.Text; StartPos := 1; FSelPos := Pos(Edit1.text, S); if FSelPos > 0 then begin FSelPos := FSelPos + StartPos - 1; Memo1.SelStart := FSelPos - 1; ScrollMemo(Memo1, SB_LINEDOWN); Memo1.SelLength := Length(Edit1.text); Memo1.SetFocus; end; end; end. abraço
-
Valeu Micheus ... esta eu não tinha conhecimento. Não achei nada no help do delphi sobre o numero 2 usado para desligar o monitor. SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
-
como um DBListBox recebe dados de um banco de paradox e salva?
pergunta respondeu ao Greed de Jhonas em Delphi, Kylix
coloca o seu codigo, fica mais facil, para poder te ajudar. abraço -
ai vai uma função para isto unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} USES WinSock; function GetLocalIP : string; type TaPInAddr = array [0..10] of PInAddr; PaPInAddr = ^TaPInAddr; var phe : PHostEnt; pptr : PaPInAddr; Buffer : array [0..63] of char; I : Integer; GInitData : TWSADATA; begin WSAStartup($101, GInitData); Result := ''; GetHostName(Buffer, SizeOf(Buffer)); phe :=GetHostByName(buffer); if phe = nil then Exit; pptr := PaPInAddr(Phe^.h_addr_list); I := 0; while pptr^[I] <> nil do begin result:=StrPas(inet_ntoa(pptr^[I]^)); result := StrPas(inet_ntoa(pptr^[I]^)); Inc(I); end; WSACleanup; end; procedure TForm1.Button1Click(Sender: TObject); begin LABEL1.CAPTION := GetLocalIP; end; end. OBS: existem maneiras mais simples para se conseguir a mesma coisa.... já fiz algo parecido com o que voce esta querendo, implementei uma rotina num timer que verifica a cada segundo quando é feita a conexão com a internet ( não roda em segundo plano e sim dentro do programa ) depois usando componentes do indy do delphi 7 criei uma rotina para enviar automaticamente um email para mim com o ip da maquina do cliente usando o meu servidor de email, sempre que a conexão for refeita Mas so consegui fazer isto usando o delphi 7, entretanto se a maquina estiver numa rede interna e usando roteador voce não vai conseguir o ip da maquina e sim o ip do servidor de internet. abraço
-
Colega, já existe um tópico sobre este assunto no forum, de uma olhada http://scriptbrasil.com.br/forum/index.php...st&p=461066 abraço
-
O exemplo abaixo desliga o monitor, aguarde 5 segundos e re-liga monitor. SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0); Sleep(5000); { Aguarde 5 segundos } SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1); OBS: funciona somente para windows 95 e 98 Para o windows XP exemplo: {Desligar o Windows} procedure TForm1.Button1Click(Sender: TObject); begin ExitWindowsEx(EWX_SHUTDOWN,0); end; {Efetuar novo Logon} procedure TForm1.Button2Click(Sender: TObject); begin ExitWindowsEx(EWX_LOGOFF,0); end; {Rebootar} procedure TForm1.Button3Click(Sender: TObject); begin ExitWindowsEx(EWX_REBOOT,0); end; Caso voce queira desligar ou ligar a proteção de tela SystemParametersInfo(SPI_SETSCREENSAVEACTIVE , 0, nil, 0); {Desliga a proteção de tela} SystemParametersInfo(SPI_SETSCREENSAVEACTIVE , 1, nil, 0); {Liga a proteção de tela} abraço
-
Oi amigo .... este é o erro que voce reportou, .... entretanto o MakeStr é uma função que esta dentro da unit StrUtils; function MakeStr(C: Char; N: Integer): string; function MS(C: Char; N: Integer): string; { MakeStr return a string of length N filled with character C. } function MakeStr(C: Char; N: Integer): string; begin if N < 1 then Result := '' else begin {$IFNDEF WIN32} if N > 255 then N := 255; {$ENDIF WIN32} SetLength(Result, N); FillChar(Result[1], Length(Result), C); end; end; Então ... como voce pode ver a DateUtil.pas precisa da StrUtils.pas para poder funcionar ... verifique se as dcus estão juntas no mesmo diretório e pasta A outra solução ... faça um novo download da RxLib e tente novamente http://br.geocities.com/all_software/download.htm abraço
-
Indentificador não declarado 'MakeStr' Oi Eder ... voce tem duas maneiras para resolver isto 1 - voce desinstala o RX e instala novamente 2 - vai ate o diretorio onde tem as Units do RxLib e procura por DateUtil.pas e faz a correção declarando 'MakeStr' e recompila o programa e troca a dcu do RXControls na pasta Lib do delphi abraço
-
voce tem a opção de imprimir usando o componente TQRImage do QuicReport ou o componente TImage no primeiro caso basta dar print no QR que imprime a imagem no segundo caso coloque o componente TImage em um outro form, mude a opção BorderStyle para bsNone e de o comando print neste form exemplo unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtDlgs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; OpenPictureDialog1: TOpenPictureDialog; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} uses Unit2; procedure TForm1.Button1Click(Sender: TObject); begin OpenPictureDialog1.Execute; Form2.Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); /// carrega a imagem que voce escolher Form2.Print; //// imprime o form com a figura end; end. unit Unit2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm2 = class(TForm) Image1: TImage; private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.DFM} end. ou ainda pode dar uma olhada neste endereço http://www.swissdelphicenter.ch/torry/showcode.php?id=744 abraço
-
exemplo completo de um mensageiro http://www.eldos.com/files/msgconnect/msgconnect.zip abraço
-
if InicioTermino <> '' then begin for wind := 1 to high(vetor_1) do begin if (vetor_1[wind] = '') then break else if (vetor_1[wind] = Grid.Cells[Acol,Arow]) then begin Grid.Canvas.Brush.Color := ColorBox1.Selected; Grid.Canvas.FillRect(Rect); grid.Canvas.TextRect(Rect, Rect.Left, Rect.Top, Grid.Cells[Acol,Arow]); break; end; end; end; OBS: Testei apenas este codigo que voce postou ... o erro esta nesta rotina ... o for wind varia apenas 4 vezes e como o vetor_1[wind] sera igual a Grid.Cells[Acol,Arow], se esta comparando apenas um numero do vetor ? use o debugging do delphi para visualizar o que ocorre... abraço
-
não sei se tem alguma coisa haver com programação mas em todo caso veja este endereço http://www.jobtecltda.com.br/manuais/manuais.htm
-
Como descobrir o usuario que está usando a maquina?
pergunta respondeu ao Arckyz de Jhonas em Delphi, Kylix
foi mal ... esqueci de passar para voce o uses Using DbiGetNetUserName: uses DbiTypes, DbiProcs, DbiErrs; // coloque no uses procedure Whatever; var szVar: array[0..200] of char; begin DbiGetNetUserName(szVar); edit1.text := szVar; end; OBS: coloque no uses DbiTypes, DbiProcs, DbiErrs; abraço