Ir para conteúdo
Fórum Script Brasil

Jhonas

Monitores
  • Total de itens

    9.657
  • Registro em

Tudo que Jhonas postou

  1. Esse chiadinho nada mais é do que vazamento de alta tensão ( muitas vezes provocado por excesso de poeira dentro do monitor ) Retire a tampa traseira do monitor ( com ele desligado da tomada ) se não puder usar um compressor de ar , use um aspirador ) limpe toda poeira dentro do gabinete do monitor. retire a chupeta ( parece uma ventosa ) que é ligada ao tubo de imagem. passe vaselina nas bordas da chupeta recoloque a chupeta no lugar e certifique que está bem presa. OBS: o vazamento de alta tensão poderá estar em outro local, que somente poderá ser visto com o gabinete aberto e em funcionamento, portanto tenha muito cuidado. ( não coloque nenhuma ferramenta dentro do monitor com ele em funcionamento e esteja usando um calçado de sola de borracha ) Se não tiver experiência neste tipo de manutenção, procure assitência técnica. abraço
  2. Colega ... o seu código está muito estranho veja : voce faz a busca por esta query with dm.QueryBuscaPro do aqui voce já esta informando outra query QueryBuscaForn a propriedade Read-only do dataset da query já está false ... mas em qual ? QueryBuscaPro ? ou QueryBuscaForn ? abraço
  3. Veja nestes endereços: http://superdownloads.uol.com.br/download/44/helpscribble/ http://www.delphi.eti.br/downloads.php?id=4672 http://3d2f.com/tags/forehelp/ http://www.filetransit.com/files.php?name=Forehelp http://www.filesland.com/companies/JGsoft-...e/products.html http://www.download32.com/forehelp-software.html http://www.sinterphase.com/fhintro.htm abraço
  4. seria algo como isto procedure TForm1.Button1Click(Sender: TObject); var Arquivo: TextFile; Texto, line : string; begin Memo1.Clear; AssignFile(Arquivo, 'C:\Sintegra.Txt'); Reset(Arquivo); while not EOF(Arquivo) do begin ReadLn(Arquivo, Line); Texto := Line; if pos('75',texto) > 0 then Memo1.Lines.Append(line); end; CloseFile(Arquivo); end; abraço
  5. Estava observando o seu código, voce faz pesquisa usando dm.QueryBuscaPro e pegava os dados de dm.tblCadPro por isso é que não funciona como voce quer Faça a pesquisa usando o dm.QueryBuscaPro e jogue os dados desta query nos seus campos exemplo: procedure TfrmCadPro.btnAlterarClick(Sender: TObject); var i: integer; begin with dm.QueryBuscaPro do begin Close; SQL.Clear; SQL.Add('SELECT * FROM ESTAPRO.dbf'); SQL.Add('WHERE PROCOD = :pCOD'); showmessage(txtAuxCod.Text); // aqui vai aparecer o valor desta variavel ParambyName('pCOD').AsString := txtAuxCod.Text; Open; end; if not (txtAuxCod.Text = '') then begin if dm.QueryBuscaPro.FieldByName('PROCOD').IsNull = False then begin txtCadPro_CodPro.Text := dm.QueryBuscaPro.FieldByName('PROCOD').Value; end; if dm.QueryBuscaPro.FieldByName('PROTIP').IsNull = False then begin cboCadPro_Secao.Text := dm.QueryBuscaPro.FieldByName('PROTIP').Value; end; // CONTINUAÇÃO DOS CÓDIGOS if dm.QueryBuscaPro.FieldByName('PROQTS').IsNull = False then begin txtCadPro_QtdeSai.Text := dm.QueryBuscaPro.FieldByName('PROQTS').Value; end; // parte do codigo retirado temporariamente txtCadPro_AuxCodPro.Text := txtCadPro_CodPro.Text; dm.QueryBuscaPro.Edit; end; Mas sinceramente eu não faria um código como este... veja como funciona a opção Form Wizard do DataBase ( Menu do delphi ) abraço
  6. ADOX_TLB.dcu ZAbstractRODataset.dcu procure por estas dcus em seu micro e copie-as para a pasta LIB do delphi abraço
  7. Que tipo de programador voce quer ser ... sem leitura e pesquisa é que voce não consegue nada A sua select é que deve ordenar os registros exemplo Selec * from Aniversariantes order by DataAniv Selec * from Aniversariantes order by Nome Uma vez os registros selecionados é só coloca-los em um quickreport Como usar um quicreport ?? Faça uma pesquisa no forum ... rs http://scriptbrasil.com.br/forum/index.php...te=quick+report abraço
  8. O que voce mostrou na figura parece ser os QRLabels que voce colocou na banda de detalhe ( Detail ) e a repetição pode ser pelo fato da sql ter encontrado 4 registros .... e se não estão aparecendo pode ser porque voce não fez o link da tabela com o componente QRDBText OBS: Os QRLabels devem ficar de fora da banda de Detail Se estiver com dúvidas, faça uma pesquisa no forum http://scriptbrasil.com.br/forum/index.php...\%2Breport abraço
  9. Em certas situações eu até uso sem problemas quando o locate deve ser feito em poucos registros, mas se forem muitos é desconselhável, é preferível usar uma sql with dm.QueryBuscaPro do begin Close; SQL.Clear; SQL.Add('SELECT * FROM ESTAPRO.dbf'); SQL.Add('WHERE PRODES = :pDESC'); ParambyName('pDESC').AsString := GridLocalPro.SelectedField.AsString; Open; showmessage(inttostr(QueryBuscaPro.RecordCount)); // veja quantos registros a sql tá trazendo supondo que no seu arquivo não possua códigos repetidos, deveria trazer apenas um registro ... aquele que foi escolhido abraço
  10. de cara voce percebe que pode ser bug de versão ... tente usar a versão anterior novamente abraço
  11. Primeiro ... voce deveria usar o debug do delphi para saber qual é o valor da variavel txtAuxCod.Text que esta sendo passada para a sql, pode não ser o valor que voce está achando que é faça um teste desta maneira procedure TfrmCadPro.btnAlterarClick(Sender: TObject); var i: integer; begin with dm.QueryBuscaPro do begin Close; SQL.Clear; SQL.Add('SELECT * FROM ESTAPRO.dbf'); SQL.Add('WHERE PROCOD = :pCOD'); showmessage(txtAuxCod.Text); // aqui vai aparecer o valor desta variavel ParambyName('pCOD').AsString := txtAuxCod.Text; Open; if not(IsEmpty) then begin frmCadPro.txtCadPro_CodPro .Text := dm.QueryBuscaPro.FieldByName('PROCOD').AsString; frmCadPro.cboCadPro_Secao .Text := dm.QueryBuscaPro.FieldByName('PROTIP').AsString; frmCadPro.txtCadPro_DataCad .Text := dm.QueryBuscaPro.FieldByName('PROCAD').AsString; frmCadPro.txtCadPro_Desc .Text := dm.QueryBuscaPro.FieldByName('PRODES').AsString; frmCadPro.txtCadPro_Estoque .Text := dm.QueryBuscaPro.FieldByName('PROQTD').AsString; frmCadPro.txtCadPro_UndVen .Text := dm.QueryBuscaPro.FieldByName('PROUND').AsString; frmCadPro.cboCadPro_Icms .Text := dm.QueryBuscaPro.FieldByName('PROICM').AsString; frmCadPro.txtCadPro_EstMin .Text := dm.QueryBuscaPro.FieldByName('PROMIN').AsString; frmCadPro.txtCadPro_EstMax .Text := dm.QueryBuscaPro.FieldByName('PROMAX').AsString; frmCadPro.txtCadPro_PreCus .Text := dm.QueryBuscaPro.FieldByName('PROCUS').AsString; frmCadPro.txtCadPro_Vml .Text := dm.QueryBuscaPro.FieldByName('PROLUC').AsString; frmCadPro.txtCadPro_PreVen .Text := dm.QueryBuscaPro.FieldByName('PROPRE').AsString; frmCadPro.cboCadPro_CodForn1 .Text := dm.QueryBuscaPro.FieldByName('PROFOR').AsString; frmCadPro.cboCadPro_CodForn2 .Text := dm.QueryBuscaPro.FieldByName('PROFO2').AsString; frmCadPro.cboCadPro_CodForn3 .Text := dm.QueryBuscaPro.FieldByName('PROFO3').AsString; frmCadPro.cboCadPro_CodForn4 .Text := dm.QueryBuscaPro.FieldByName('PROFO4').AsString; frmCadPro.txtCadPro_Fracao .Text := dm.QueryBuscaPro.FieldByName('PROFRA').AsString; frmCadPro.txtCadPro_UndCompra .Text := dm.QueryBuscaPro.FieldByName('PROUNC').AsString; frmCadPro.txtCadPro_Local .Text := dm.QueryBuscaPro.FieldByName('PROLOC').AsString; frmCadPro.txtCadPro_Cotacao .Text := dm.QueryBuscaPro.FieldByName('PROCOT').AsString; frmCadPro.txtCadPro_CodOrigem .Text := dm.QueryBuscaPro.FieldByName('PROORI').AsString; frmCadPro.txtCadPro_ArqBal .Text := dm.QueryBuscaPro.FieldByName('PROPES').AsString; frmCadPro.txtCadPro_PesUnd .Text := dm.QueryBuscaPro.FieldByName('PROUNP').AsString; frmCadPro.txtCadPro_DiasVal .Text := dm.QueryBuscaPro.FieldByName('PRODVL').AsString; frmCadPro.txtCadPro_BalCaixa .Text := dm.QueryBuscaPro.FieldByName('PROBAL').AsString; frmCadPro.txtCadPro_PreOfe .Text := dm.QueryBuscaPro.FieldByName('PROPOF').AsString; frmCadPro.txtCadPro_DataIniOfe .Text := dm.QueryBuscaPro.FieldByName('PROIOF').AsString; frmCadPro.txtCadPro_DataFinOfe .Text := dm.QueryBuscaPro.FieldByName('PRODOF').AsString; frmCadPro.txtCadPro_EstoqPrat .Text := dm.QueryBuscaPro.FieldByName('PROEPR').AsString; frmCadPro.txtCadPro_QtdeMinPrat .Text := dm.QueryBuscaPro.FieldByName('PROPRT').AsString; frmCadPro.txtCadPro_TotalComp .Text := dm.QueryBuscaPro.FieldByName('PROCOM').AsString; frmCadPro.txtCadPro_TotalVend .Text := dm.QueryBuscaPro.FieldByName('PROVEN').AsString; frmCadPro.txtCadPro_DataUlt .Text := dm.QueryBuscaPro.FieldByName('PRODTC').AsString; frmCadPro.txtCadPro_FornUlt .Text := dm.QueryBuscaPro.FieldByName('PROFOC').AsString; frmCadPro.txtCadPro_QtdeUlt .Text := dm.QueryBuscaPro.FieldByName('PROQDC').AsString; frmCadPro.txtCadPro_PreUlt .Text := dm.QueryBuscaPro.FieldByName('PROPRC').AsString; frmCadPro.txtCadPro_DataEnt .Text := dm.QueryBuscaPro.FieldByName('PROENT').AsString; frmCadPro.txtCadPro_QtdeEnt .Text := dm.QueryBuscaPro.FieldByName('PROQTE').AsString; frmCadPro.txtCadPro_DataSai .Text := dm.QueryBuscaPro.FieldByName('PROSAI').AsString; frmCadPro.txtCadPro_QtdeSai .Text := dm.QueryBuscaPro.FieldByName('PROQTS').AsString; end; end; // retirado o código temporariamente para o teste dm.tblCadPro.Edit; end; Faça assim e veja se dá certo... caso afirmativo coloque o restante do codigo e teste novamente abraço
  12. Veja nestes endereços: http://www.ramosdainformatica.com.br/art_r...es01.php?CDA=22 http://www.forumweb.com.br/foruns/lofivers...php/t23551.html http://www.techtips.com.br/programacao/out...aves_do_delphi/ abraço
  13. Vamos utilizar algo mais concreto para voce poder aprender siga os passos que esta neste site ( leia tudo antes de por em prática ) http://www.geocities.com/WallStreet/Exchan...hi/delphi_6.htm abraço
  14. Sempre faça uma pesquisa no forum para ver se acha alguma coisa a respeito http://scriptbrasil.com.br/forum/index.php...te=criptografia abraço
  15. fiz uma aplicaçãozinha de teste e quando rodo por fora do delphi não dá o erro. mas a minha aplicação continua com esse erro Se na nova aplicação não dá erro, por dedução, a sua aplicação antiga contém as units da versão anterior do zeos que devem ser removidas. abraço
  16. voce pode fazer um processo automatizado, ou seja, basta ter uma lista de strings que serão lidas dentro de um comando FOR usando o OnReplace. Se voce pensar um pouquinho, bastará mudar alguma coisa no seu código para conseguir isto abraço
  17. Olha o que voce postou: Undeclared indetifies: "Value" " Undeclared indentifier: 'tblFuncionarioTIPO" o mesmo problema que te disse antes, lembra? O erro é : identificador não declarado significa que DM.tblFuncionarioTIPO.Value não esta declarado no seu programa, ou seja, está faltando voce adicioná-lo ao componente ADOTable ( já te expliquei no post acima como fazer isso ). Voce precisa ler mais sobre o delphi ... procure apostilas e tutorias abraço
  18. Jhonas

    LOCATE

    A sintaxe do comando está correta .... pode estar faltando o uses DB abraço
  19. Veja a lista de anti-vírus neste endereço http://pt.malavida.com/go/descarregar-antivirus abraço
  20. Tudo o que voce precisa está nos posts acima estude com calma os códigos que voce consegue implementar o que está querendo abraço
  21. Jhonas

    Captura de Tela

    o código funciona, voce é que não esta sabendo como usar voce não acha que o componente WebBrowser tem que mostrar uma página qualquer da internet para quando voce clicar no botão ele recortar uma parte dessa imagem e salvar ? isso em programação não funciona... leia e leia muito sobre o delphi abraço
  22. esta correto ... voce pode ter esquecido de adiconar os campos ao componente ADOtable de clique duplo sobre o componente ADOtable e com o botão direito do mouse clique na janelinha fields editor clique em Add all fields todos os campos da tabela irão aparecer dentro do fields editor ... o erro deve sumir abraço
  23. Colega ... voce fez o que foi sugerido a voce ? desisntalar tudo, limpar os registros do windows e instalar novamente ? abraço
  24. Mais uma dica pra voce unit Search; interface uses WinProcs, SysUtils, StdCtrls, Dialogs; const WordDelimiters: set of Char = [#0..#255] - ['a'..'z','A'..'Z','1'..'9','0']; function SearchMemo(Memo: TCustomEdit; const SearchString: String;Options: TFindOptions): Boolean; function SearchBuf(Buf: PChar; BufLen: Integer;SelStart, SelLength: Integer; SearchString: String;Options: TFindOptions): PChar; implementation function SearchMemo(Memo: TCustomEdit;const SearchString: String; Options: TFindOptions): Boolean; var Buffer, P: PChar; Size: Word; begin Result := False; if (Length(SearchString) = 0) then Exit; Size := Memo.GetTextLen; if (Size = 0) then Exit; Buffer := StrAlloc(Size + 1); try Memo.GetTextBuf(Buffer, Size + 1); P := SearchBuf(Buffer, Size, Memo.SelStart,Memo.SelLength,SearchString, Options); if P <> nil then begin Memo.SelStart := P - Buffer; Memo.SelLength := Length(SearchString); Result := True; end; finally StrDispose(Buffer); end; end; function SearchBuf(Buf: PChar; BufLen: Integer;SelStart, SelLength: Integer; SearchString: String;Options: TFindOptions): PChar; var SearchCount, I: Integer; C: Char; Direction: Shortint; CharMap: array [Char] of Char; function FindNextWordStart(var BufPtr: PChar): Boolean; begin { (True XOR N) is equivalent to (not N) } // Result := False; { (False XOR N) is equivalent to (N) } { When Direction is forward (1), skip nondelimiters, then skip delimiters. } { When Direction is backward (-1), skip delims, then skip non delims } while (SearchCount > 0) and ((Direction = 1) xor (BufPtr^ in WordDelimiters)) do begin Inc(BufPtr, Direction); Dec(SearchCount); end; while (SearchCount > 0) and ((Direction = -1) xor (BufPtr^ in WordDelimiters)) do begin Inc(BufPtr, Direction); Dec(SearchCount); end; Result := SearchCount > 0; if Direction = -1 then begin { back up one char, to leave ptr on first nondelim } Dec(BufPtr, Direction); Inc(SearchCount); end; end; begin Result := nil; if BufLen <= 0 then Exit; if frDown in Options then begin Direction := 1; Inc(SelStart, SelLength); { start search past end of selection } SearchCount := BufLen - SelStart - Length(SearchString); if SearchCount < 0 then Exit; if Longint(SelStart) + SearchCount > BufLen then Exit; end else begin Direction := -1; Dec(SelStart, Length(SearchString)); SearchCount := SelStart; end; if (SelStart < 0) or (SelStart > BufLen) then Exit; Result := @Buf[SelStart]; { Using a Char map array is faster than calling AnsiUpper on every character } for C := Low(CharMap) to High(CharMap) do CharMap[C] := C; if not (frMatchCase in Options) then begin AnsiUpperBuff(PChar(@CharMap), sizeof(CharMap)); AnsiUpperBuff(@SearchString[1],Length(SearchString)); end; while SearchCount > 0 do begin if frWholeWord in Options then if not FindNextWordStart(Result) then Break; I := 0; while (CharMap[Result[I]] = SearchString[I+1]) do begin Inc(I); if I >= Length(SearchString) then begin if (not (frWholeWord in Options)) or (SearchCount = 0) or (Result[I] in WordDelimiters) then Exit; Break; end; end; Inc(Result, Direction); Dec(SearchCount); end; Result := nil; end; end. Veja se consegue implementar o que falta ao seu programa abraço Vou te passar um programa completo ( NOTEPAD EM DELPHI ) program Notepad; uses Forms, UnitMain in 'UnitMain.pas'{FormMain}, Unit1 in 'Unit1.pas'{AboutBox}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TFormMain, FormMain); Application.CreateForm(TAboutBox, AboutBox); Application.Run; end. unit UnitMain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, ComCtrls; type TFormMain = class(TForm1) RichEdit1: TRichEdit; MainMenu1: TMainMenu; MenuFile: TMenuItem; ItemNew: TMenuItem; ItemOpen: TMenuItem; ItemSave: TMenuItem; ItemSaveAs: TMenuItem; N2: TMenuItem; ItemPrint: TMenuItem; N4: TMenuItem; ItemClose: TMenuItem; SaveDialog1: TSaveDialog; OpenDialog1: TOpenDialog; N1: TMenuItem; ItemFont: TMenuItem; FontDialog1: TFontDialog; PopupMenu1:TPopupMenu; ItemUndo: TMenuItem; N3: TMenuItem; ItemRedo: TMenuItem; ItemCut: TMenuItem; ItemCopy: TMenuItem; ItemPaste: TMenuItem; ItemDelete: TMenuItem; N5: TMenuItem; ItemSelectAll:TMenuItem; N6: TMenuItem; ItemFindText: TMenuItem; ItemFindAndReplace: TMenuItem; FindDialog1: TFindDialog; MenuEdit: TMenuItem; ItemUndo1:TMenuItem; ItemRedo1: TMenuItem; N7: TMenuItem; ItemCut1: TMenuItem; ItemCopy1: TMenuItem; ItemPaste1: TMenuItem; ItemDelete1: TMenuItem; N8: TMenuItem; ItemSelectAll1: TMenuItem; N9: TMenuItem; ItemFind1: TMenuItem; ItemFindAndPlace1: TMenuItem; N10: TMenuItem; ItemAutoWarp1: TMenuItem; N11: TMenuItem; ItemAutoWarp: TMenuItem; ReplaceDialog1: TReplaceDialog; N12: TMenuItem; N13: TMenuItem; N14: TMenuItem; procedure ItemNewClick(Sender: Tobject); procedure ItemOpenClick(Sender: Tobject); procedure ItemSaveClick(Sender: Tobject); procedure ItemPrintClick(Sender: Tobject); procedure ItemCloseClick(Sender: Tobject); procedure ItemFondClick(Sender: Tobject); procedure PopupMenu1Popup(Sender: Tobject); procedure ItemUndoClick(Sender: Tobject); procedure ItemRedoClick(Sender: Tobject); procedure ItemCutClick(Sender: Tobject); procedure ItemCopyClick(Sender: Tobject); procedure ItemPasteClick(Sender: Tobject); procedure ItemDelectClick(Sender: Tobject); procedure ItemSelectClick(Sender: Tobject); procedure ItemFindTextClick(Sender: Tobject); procedure FindDialog1Find(Sender: Tobject); procedure ItemAutoWarp1Click(Sender: Tobject); procedure ItemFindAndReplaceClick(Sender: Tobject); procedure ReplaceDialog1Replace(Sender: Tobject); procedure FormCreat(Sender: Tobject); procedure MenuFileClick(Sender: Tobject); procedure FromCloseQuery(Sender: Tobject; var CanClose: Boolean); procedure N14Click(Sender: Tobject); private sFileName:String; Function CheckhasModified:Boolean; Function SaveAsFile:Boolean; Function SaveFile:Boolean; Function MyOpenFile(FileName:String):Boolean; { Private declarations } public { Public declarations } end; var FormMain: TFormMain; implementation uses RichEdit,Unit1; {$R *.dfm} function TFormMain.CheckHasModified: Boolean; begin Result:=not RichEdit1.Modified; if not Result then begin Case Application.MessageBox('??????!??????','??', MB_YESNO+mB_ICONQUESTION) OF IDYES:Result:=SaveFile; IDNO:Result:=True; end; end; end; procedure TFormMain.ItemNewClick(Sender: TObject); begin If CheckHasModified Then begin RichEdit1.Lines.Clear; RichEdit1.Modified:=False; sFileName:='???'; end; end; function TformMain.SaveAsFile:Boolean; begin Result:=False; if SaveDialog1.Execute then begin RichEdit1.Lines.SaveToFile(SaveDialog1.FileName0; RichEdit1.Modified:=False; sFileName:=SaveDialog1.FileName; Result:=True; end; end; procedure TFormMain.ItemOpenClick(Sender: TObject); begin if OpenDialog1.Execute then MyOpenFile(OpenDialog1.FileName); end; Procedure TFormMain.ItemSaveClick(Sender: TObject); begin SaveFile; end; function TFormMain.SaveFile: Boolean; begin If sFileName='???' then Result:=SaveAsFile else begin RichEdit1.Lines.SaveToFile(sFileName); RichEdit1.Modified:=False; Result:=True; end; end; procedure TFormMain.ItemSaveAsClick(Sender:TObject); begin SaveAsFile; end; procedure TFormMain.ItemPrintClick(Sender:TObject); begin RichEdit1.Print(sFileName); end; procedure TFormMain.ItemCloseClick(Sender: TObject); begin Close; end; procedure TFormMain.ItemFontClick(Sender: TObject); begin FontDialog1.Font.Assign(RichEdit1.Font); if FontDialog1.Execute then RichEdit1.Font.Assign(FontDialog1.Font); end; procedure TFormMain.PopupMenu1Popup(Sender: TObject); begin ItemUndo.Enabled:=(RichEdit1.Perform(EM_CANUNDO,0,0<>0); ItemRedo.Enabled:=(RichEdit1.Perform(EM_CANREDO,0,0<>0); ItemCut.Enabled:=(RichEdit1.Perform(EM_SELECTIONTYPE,0,0)<>0); ItemCopy.Enabled:=ItemCut.Enabled; ItemPaste.Enabled:=(RichEdit1.Perform(EM_CANPASTE,0,0)<>0); ItemAutoWarp.Checked:=RichEdit1.WordWrap; ItemUndo1.Enabled:=(RichEdit1.Perform(EM_CANUNDO,0,0<>0); ItemRedo1.Enabled:=(RichEdit1.Perform(EM_CANREDO,0,0<>0); ItemCut1.Enabled:=(RichEdit1.Perform(EM_SELECTIONTYPE,0,0)<>0); ItemCopy1.Enabled:=ItemCut.Enabled; ItemPaste1.Enabled:=(RichEdit1.Perform(EM_CANPASTE,0,0)<>0); ItemAutoWarp1.Checked:=RichEdit1.WordWrap; end; procedure TFormMain.ItemUndoClick(Sender: TObject); begin RichEdit1.Perform(EM_UNDO,0,0); end; procedure TFormMain.ItemRedoClick(Sender:TObject); begin RichEdit1.Perform(EM_REDO,0,0); end; procedure TFormMain.ItemCutClick(Sender: TObject); begin RichEdit1.Perform(WM_CUT,0,0); end; procedure TFormMain.ItemCopyClick(Sender:TObject); begin RichEdit1.Perform(WM_COPY,0,0); end; procedure TFormMain.ItemPasteClick(Sender:TObject); begin RichEdit1.Perform(WM_Paste,0,0); end; procedure TFormMain.ItemDeleteClick(Sender: TObject); begin RichEdit1.Perform(WM_CLEAR,0,0); end; procedure TFormMain.ItemSelectAllClick(Sender: TObject); Var P:TPoint; begin P:=Point(0,0); P:=RichEdit1.ClientToScreen(P); FindDialog1.Position := P; FindDialog1.Execute; end; procedure TFormMain.FindDialog1Find(Sender: TObject); var FoundAt: LongInt; StartPos, ToEnd: Integer; st:TSearchTypes; begin with RichEdit1 do begin StartPos :=SelStart + SelLength; ToEnd := Length(Richedit1.Text) - StartPos; st:=[]; if frMatchCase in FindDialog1.Options then st:=st+[stMatchCase]; if frWholeWord in FindDialog1.Options then st:=st+[stWholeWord]; FoundAt := FindText(FindDialog1.FindText,StartPos,Toend,st); if FoundAt <> -1 then begin SelStart := FoundAt; SelLength := Length(FindDialog1.FindText); end else ShowMessage('????!') end; end; procedure TFormMain.ItemAutoWarp1Click(Sender: TObject); begin RichEdit1.WordWrap:=not RichEdit1.WordWrap; ItemAutoWarp1.Checked:=RichEdit1.WordWrap; ItemAutoWarp.Checked:=RichEdit1.WordWrap; end; Function TFormMain.MyOpenFile(FileName:String):Boolean; begin Result:=False; if CheckHasModified then begin try RichEdit1.Lines.LoadFromFile(FileName); RichEdit1.Modified:=False sFileName:=FileName; Result:=True; except on E:Exception do ShowMessage(E.Message); end; end; end; procedure TFormMain.ItemFindAndREplaceClick(Sender:TObject); Var P:TPoint; begin P:=Point(0,0); P:=RichEdit1.ClientToScreen(P); ReplaceDialog1.Position := P; ReplaceDialog1.Execute; end; procedure TFormMain.ReplaceDialog1Replace(Sender: TObject); Var P:TPoint; begin P:=Point(0,0); P:=RichEdit1.ClientToScreen(P); ReplaceDialog1.Position := P; ReplaceDialog1.Execute; end; procedure TFormMain.ReplaceDialog1Replace(Sender: TObject): var FoundAt: LongInt; StartPos, ToEnd: Integer; st:TSearchTypes; begin with RichEdit1 do begin StartPos := SelStart + SelLength; ToEnd := Length(RichEdit1.Text) - StartPos; st:=[]; if frMatchCase in ReplaceDialog1.Options then st:=st+[stMatchCase]; if frWholeWord in ReplaceDialog1.Options.then st:=st+[stWholeWord]; FoundAt := FindText(Replacedialog1.FindText, StartPos, ToEnd, st); While FoundAt <> -1 do begin SelStart := FoundAt; SelLength := Length(ReplaceDialog1.FindText); Perform(EM_REPLACESEL,1,Interger(PChar(Replacedialog1.ReplaceText))); SelStart := FoundAt; SelLength := Length(ReplaceDialog1.ReplaceText); if not (frReplaceAll in ReplaceDialog1.Options) then Break; StartPos:=SelStart; ToEnd := Length(RichEdit1..Text) - StartPos; FoundAt := FindText(ReplaceDialog1.FindText, StartPos,ToEnd,st); end; FoundAt:= FindText(ReplaceDialog1.FindText,StartPos,ToEnd,st); if FoundAt=-1 then ShowMessage('????!'); end; end; procedure TFormMain.FormCreate(Sender: TObject); Var s1FileName,TemStr,ParamString:String; i,FromIndex,ToIndex,iPox:Integer; Reg:TRegistry; begin try Reg:=TRegistry.Create; try Reg.RootKey:=HKEY_CLASSES_ROOT; Reg.OpenKey('*\shell\MyNotePad',True); Reg.WriteString('','????????'); Reg.CloseKey; Reg.OpenKey('*\Shell\MyNotePad\Command',True); Reg.WriteString('','"'+ParamStr(0)+'" "%1"'); Reg.CloseKey; finally Reg.Free; end; except end; if ParamCount>=1 then begin i:=1; ParamString:=ParamStr(i); While (ParamString[1]='/') and(i<=ParamCount) do begin Inc(i); ParamString:=ParamStr(i); end; FromIndex:=i; ParamString:=ParamStr(i); if ParamString[1]='/' then Exit; While i<=ParamCount do begin if ParamString[1]='/' then Break; Inc(i); ParamString:=ParamStr(i); end; ToIndex:=i; s1FileName:=GetCommandLine; ParamString:=ParamStr(FromIndex); iPos:=Pos(ParamString,s1Filename); TemStr:=ParamString; Delete(s1Filename,1,iPos-1+length(TemStr)); For i:=FromIndex+1 to ToIndex do begin ParamString:=ParamStr(i); iPos:=pos(ParamString,s1FileName); TemStr:=TemStr+copy(s1FileName,1,iPos+length(ParamString)); end; s1FileName:=TemStr; MyOpenFile(s1FileName); For i:=1 to ParamCount do begin if (ParamStr(i)='/p') or(ParamStr(i)='/p' then begin if Application.MessageBox('????','??',MB_YESNO+MB_ICONQUESTION) =IDYes then RichEdit1.Print(sFileName); Break; end; end end; end; procedure TFormMain.MenuFileClick(Sender: Tobject); begin ItemSave.Enabled:=RichEdit1.Modified; end; procedure TFormMain.FormCloseQuery(Sender: TObject; VAr CanClose:Boolean); begin CanClose:=not RichEdit1.Modified; if not CanClose then begin Case Application.MessageBox('??????!??????','??', MB_YESNOCANCEL+MB_ICONQUESTION) of IDYES:CanClose:=SaveFile; IDNo:CanClose:=True; end; end; end; procedure TFormMain.N14Click(Sender:TObject); begin AboutBox.showmodal; end; end. Neste voce vai encontrar as funções que esta procurando abraço
  25. O que voce está querendo é converter imagem bmp em texto. Neste endereço voce vai encontrar o que é necessário, mas é pago http://www.freedownloadscenter.com/Best/ocr-delphi-bmp.html abraço
×
×
  • Criar Novo...