Ir para conteúdo
Fórum Script Brasil

Churc

Veteranos
  • Total de itens

    1.198
  • Registro em

  • Última visita

Tudo que Churc postou

  1. Churc

    OPC e Delphi

    Opa Então, isto nada mais é que um programa em modo console... Da sim pra passar pra modo Janela/Form se você não conseguir ou ninguém fizer assim que sobrar um tempinho livre eu passo pra você abraços
  2. Opa O correto é procedure TForm1.XiButton5Click(Sender: TObject); var sl: TStringList; begin sl := TStringList.Create; sl.Add(Memo1.Lines.Text); sl.Add(Memo2.Lines.Text); sl.Add(Memo3.Lines.Text); savedialog1.filename := 'alias.txt'; if savedialog1.execute then sl.SavetoFile(savedialog1.filename); sl.Free; end; abraços
  3. Opa É também acredito que não há diferença, de ambas as formas da pra trabalhar do mesmo jeito. Seria mais por questões de estética de código, qual maneira é mais conveniente trabalhar... A única coisa que deve afetar é otmização do programa, como mencionou o Jhonas. abrs
  4. Opa Utilize a função WinExecandWait Function WinExecAndWait(const Path: PChar; const Visibility: Word; const Wait: Boolean): Boolean; var ProcessInformation: TProcessInformation; StartupInfo: TStartupInfo; begin FillChar(StartupInfo, SizeOf(TStartupInfo), 0); with StartupInfo do begin cb := SizeOf(TStartupInfo); lpReserved := NIL; lpDesktop := NIL; lpTitle := NIL; dwFlags := STARTF_USESHOWWINDOW; wShowWindow := Visibility; cbReserved2 := 0; lpReserved2 := NIL end; result := CreateProcess(NIL, {address of module name} Path, {address of command line} NIL, {address of process security attributes} NIL, {address of thread security attributes} FALSE, {new process inherits handle} NORMAL_PRIORITY_CLASS, {creation flags} NIL, {address of new environment block} NIL, {address of current directory name} StartupInfo, ProcessInformation); if Result then begin with ProcessInformation do begin if Wait then WaitForSingleObject(hProcess, INFINITE); CloseHandle(hThread); CloseHandle(hProcess) end; end; end; Pra usar exemplo WinExecandWait('seuarquivo.bat', SW_SHOWNORMAL, True); abraços
  5. Opa Amigo, pelo visto você não possue conhecimento em como escrever arquivos de configuração certo? Utilize a busca do fórum, você vai encontrar bastante coisa... abraços
  6. Opa Tem sim var sl: TStringList; begin sl := TStringList.Create; sl.Add(Memo1.Lines); sl.Add(Memo2.Lines); sl.SavetoFile('C:\MeuArquivodeTexto.txt'); FreeAndNil(sl); end; abraços
  7. Opa Uses SysUtils; IncludeTrailingBackslash(extractfiledrive(Application.ExeName)); ExtractFileDrive(); Retorna a letra da unidade com ":" IncludeTrailingBackSlash(); Adiciona a "\" ao final se não tiver A função copy tambem pode ser utilizada var szDrive: String; begin szDrive := Copy(ExtractFilePath(Application.Exename), 1, 3); abraços
  8. Churc

    Edit keyPressUp

    Opa Ta certo o que você fez, só faltou você mudar o valor da tecla digitada colocando um Key := #0 if not (Key in ['0'..'9']) then begin Key := #0; Beep; end; abraços
  9. Opa Você deve salvar o projeto em uma pasta, quando você rodar ele irá compilar e salvar na mesma pasta o nome do executável com o mesmo nome do projeto... Ou clique no menu (Project > Compile Project) ou (Project > Build All) ou Ctrl + F9 abraços
  10. Churc

    Contador de Tempo

    Verdade Micheus, é uma boa sim nem tinha pensado nisso rs Com certeza, Paradox é pra coisa pequena no seu caso ai já parece ter passado disso... Firebird é gratuito e uma ótima opção... abraços
  11. Churc

    Contador de Tempo

    Opa Heheh blzz Vamos esperar um pouco quem sabe outro colega não tem outra dica... abraços
  12. Churc

    Contador de Tempo

    Opa Você possue o Código Fonte do QuickReport? Se possuir, talvez de pra implementar algo no código fonte dele... porque acredito que tudo que a gente faça no código vai ser inútil quando der o Preview abraço
  13. Churc

    Contador de Tempo

    Opa Faz assim Label1.Caption := FormatDateTime('hh:nn:ss',TempoInicial - Now); Label1.Refresh; ou Label1.Caption := FormatDateTime('hh:nn:ss',TempoInicial - Now); Application.ProcessMessages; Application.ProcessMessages é mais recomendável porque faz com que o Form seja atualizado também... abraços
  14. Opa Vamos supor, o código do Cliente é 0102 Pelo o que você descreve, na pasta do sistema antigo estaria salvo a foto como 0102.jpg Certo? Pra pesquisar use FileExists(); Exemplo if FileExists('C:\Pasta do sistema Antigo\Fotos\' + Código do Cliente + '.jpg') then agora você tem q carregar num TDBImage pra salvar no BD Acho que é isso, quanto a parte de salvar eu não sei, banco de dados sou zero auhahua Agora quanto a parte de pesquisar seria isso? abraços
  15. Opa É a solução estava muito longe do que eu imaginava kkk abraços
  16. Opa Certo, e porque não usar If Query1.RecordCount = 1 Then ? Faça melhor, coloque assim antes disso ai ShowMessage('Numero de registros encontrados ' InttoStr(Query1.RecordCount)); Pra você saber como está vindo... abraços
  17. Opa Segue abaixo o código adaptado conforme sua necessidade... procedure TForm1.Button1Click(Sender: TObject); var bitmap : tbitmap; jpg : tjpegimage; dc : hdc; desktoprect : trect; desktopcanvas : tcanvas; x, y : integer; yy, xx: integer; Function GetFileName: String; var szPath: String; i: Integer; begin szPath := 'C:\'; i := 1; Result := szPath + 'screenshot.jpg'; if FileExists(Result) then begin while (FileExists(szPath + 'screenshot(' + IntToStr(i) + ').jpg')) do Inc(i, 1); Result := szPath + 'screenshot(' + IntToStr(i) + ').jpg'; end; end; begin dc:=getdc(getdesktopwindow); try desktopcanvas:=tcanvas.create; bitmap:=tbitmap.create; jpg:=tjpegimage.create; try bitmap.Width:=300; bitmap.Height:=300; desktopcanvas.handle:=dc; desktoprect:=rect(0,0,300,300); bitmap.canvas.CopyRect(desktoprect,desktopcanvas,desktoprect); image1.Picture.Bitmap:=bitmap; for y:=yy to yy+10 do for x:=xx to xx+10 do image1.canvas.pixels[x,y]:=clwhite; with jpg do begin compressionquality:=50; assign(bitmap); compress; savetofile(GetFileName); end; finally bitmap.free; desktopcanvas.free; end; finally releasedc(getdesktopwindow,dc); end; end; Ao salvar é chamado a função GetFileName que vai retornar o nome do arquivo... em szPath coloque o caminho que você quer que as imagens sejam salvas... deixei pra salvar no C:\ o nome das imagens salvas eu deixei como ScreenShot... abraços
  18. Opa Tente trocar por If Query1.RecordCount = 0 Then e não precisa do Abort, somente o Exit abraçxx
  19. Opa Então, ai vai algumas funções de leitura e escrita de memória... var hWND: Cardinal; hWND := Handle da janela que voce quer acessar a memoria... //Faz a leitura de um determinado endereço como Integer function ReadMemInteger(Address: Cardinal): Cardinal; var ProcId: Cardinal; tProc: THandle; NBR: Cardinal; value:integer; begin GetWindowThreadProcessId(hWND, @ProcId); tProc := OpenProcess(PROCESS_ALL_ACCESS, False, ProcId); ReadProcessMemory(tProc, Ptr(Address), @value, 4, NBR); CloseHandle(tProc); Result:=value; end; //Faz a leitura de um determinado endereço como Byte function ReadMemByte(Address: Cardinal): Cardinal; var ProcId: Cardinal; tProc: THandle; NBR: Cardinal; value:byte; begin GetWindowThreadProcessId(hWND, @ProcId); tProc:= OpenProcess(PROCESS_ALL_ACCESS, False, ProcId); ReadProcessMemory(tProc, Ptr(Address), @value, 1, NBR); CloseHandle(tProc); Result:=value; end; //Faz a leitura de um determinado endereço como String function ReadMemString(addr, len : dword): string; var str : string; dwread : dword; IDProc: Integer; hHandle: hWnd; begin GetWindowThreadProcessId(hWND, @IdProc); hHandle := OpenProcess(PROCESS_VM_READ, False, IdProc); setlength(str, len); readprocessmemory(hHandle, pointer(addr), @str[1], len, dwread); result := str; end; //Faz a escrita de um determinado endereço como Integer procedure MWint(Address: Integer; buf: Integer; Length: DWORD); var ProcID, THandle: Integer; e: DWORD; begin GetWindowThreadProcessId(hWND, @ProcID); THandle := OpenProcess(PROCESS_ALL_ACCESS, False, ProcID); WriteProcessMemory(THandle, Ptr(Address), @buf, Length, e); CloseHandle(THandle); end; //Faz a escrita de um determinado endereço como String procedure MWStr(Address: Integer; buf: String; Length: DWORD); var ProcID: Integer; THandle: hWnd; e: DWORD; begin GetWindowThreadProcessId(hWND, @ProcID); THandle := OpenProcess(PROCESS_ALL_ACCESS, False, ProcID); WriteProcessMemory(THandle, Pointer(Address), PChar(buf), Length, e); CloseHandle(THandle); end; abraços
  20. Opa Então, mas você me enviou a DLL e não o source code (código fonte) dela, sendo assim não da pra modificar! Me envie o source dela pra mim testar abraços
  21. Opa então, eu posso dar uma olhada sim pra voce, manda meu email cebasso[arroba]gmail.com ou posta em algum lugar onde ta o erro ou algo do tipo abraço
  22. Opa Não tem algo errado aqui não? L.Emissao I.Aluno faltando uma vírgula por exemplo? o erro é ai rs abraço
  23. Opa Remove essa linha ai, é que eu uso o Delphi 2007 e ele tem esta opção! abraços
  24. Opa Se eu entendi, você quer o seguinte, vamos supor que a Linha 2 do Listview esteja marcada, então se você marcar a quarta linha, a linha 2 será desmarcada certo? Coloque este código no evento OnSelectItem da Listview var i: Integer; begin for i := 0 to ListView1.Items.Count - 1 do if (ListView1.Items.Item[i] <> Item) and (ListView1.Items.Item[i].Checked) then ListView1.Items.Item[i].Checked := False; veja se é isto abraço
  25. Opa Não não, é RAR, é como se fosse um ZIP é que quando coloquei aqui como ZIP ao anexar ao fórum dava problema os arquivos ficavam tudo zuados dentro do ZIP. Pra abrir .RAR usa o WinRar http://www.rarlabs.com/rar/wrar371.exe abraços
×
×
  • Criar Novo...