
Churc
Veteranos-
Total de itens
1.198 -
Registro em
-
Última visita
Tudo que Churc postou
-
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
-
(Resolvido) Gravar conteúdo de um memo num arquivo Texto
pergunta respondeu ao Eder de Churc em Delphi, Kylix
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 -
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
-
Trabalhando com o Gerenciador de tarefas
pergunta respondeu ao Cleverson Honório Gouvêa de Churc em Delphi, Kylix
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 -
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
-
(Resolvido) Gravar conteúdo de um memo num arquivo Texto
pergunta respondeu ao Eder de Churc em Delphi, Kylix
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 -
(Resolvido) Pegar Letra da Unidade do Arquivo Executavel
pergunta respondeu ao Eder de Churc em Delphi, Kylix
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 -
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
-
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
-
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
-
Opa Heheh blzz Vamos esperar um pouco quem sabe outro colega não tem outra dica... abraços
-
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
-
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
-
(Resolvido)Pesquisar Arquivos em Diretório, e salvar no BD
pergunta respondeu ao schaukoski de Churc em Delphi, Kylix
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 -
Opa É a solução estava muito longe do que eu imaginava kkk abraços
-
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
-
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
-
Opa Tente trocar por If Query1.RecordCount = 0 Then e não precisa do Abort, somente o Exit abraçxx
-
Manipular Memoria Dinamica E Editar A Memoria
pergunta respondeu ao Cyberhack de Churc em Delphi, Kylix
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 -
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
-
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
-
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
-
Como Faço Para Expirar Um Programa?
pergunta respondeu ao Walter Gazzarrini Neto de Churc em Delphi, Kylix
Opa Remove essa linha ai, é que eu uso o Delphi 2007 e ele tem esta opção! abraços -
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
-
Como Faço Para Expirar Um Programa?
pergunta respondeu ao Walter Gazzarrini Neto de Churc em Delphi, Kylix
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