Ładny brzuch
W wielu programach jest przycisk Browse... (ew. Przegldaj...). I chodzi o to, by doac takie cos do porgramu w delphi. Domyslam sie, ze trzeba uzyc komponentu OpenDialog, ale nie jestem pewny. A chodzby i to nie wiem jak otworzyc ten dialog po kliknieciu na przycisk. A co najwazniejsze, jak zrobic, by "wynik" jego "pracy" pojawil sie w Edit1??
Prosz o odpowid i pozdrawiam.
Execute + FileName dla OpenDialog'a z tego co pamitam :-) chyba z 300 lat nic w Delphi nie pisaem :D
zobacz to: http://www.delphidab...olders&tab=main
heh, "how to use it"??
Chodzi Ci o przycisk do wybierania katalogu?uses ShlObj; function BrowseForFolder:string; var Buffer: array[0..MAX_PATH]of char; ItemIdList: PItemIDList; FBrowseInfo: BrowseInfo; begin with FBrowseInfo do begin hwndOwner := 0; pidlRoot := nil; pszDisplayName := Buffer; lpszTitle := PChar('Wybierz folder'); ulFlags := BIF_RETURNONLYFSDIRS; lpfn := nil; lParam := 0; end; ItemIdList := ShBrowseForFolder( FBrowseInfo ); if ItemIDList = nil then Exit; SHGetPathFromIDList( ItemIDList , Buffer ); result:=Buffer; end;Potem tylko:Edit1.Text:=BrowseForFolder;
albo koczc post Bedzia...
po wrzuceniu na form Buttona i OpenDialog-a...
procedure TForm1.Button1Click(Sender: TObject); begin if (OpenDialog1.Execute) then Edit1.Text := OpenDialog1.FileName; end;
^_^
// statsiarz !! - B
Uytkownik Bedzio edytowa ten post 01 maj 2006, 15:51
Dziki.
eby nie rozpoczyna nowego tematu, to zadam jeszcze jedno pytanie: jak zakacza i uruchamia procesy (prbowaem przez WinExec i polecenie teskkill do windowsa, ale nie o to mi chodzio)?
Pozdrawiam, gonet9
ad1. ShellExecute
ad2.
jak znasz klase:
function KillProc(const ClassName:AnsiString):Boolean; var hWnd,hProc:THandle; pid:DWORD; begin Result:=False; hWnd := FindWindow(PCHAR(ClassName),nil); if IsWindow(hWnd) then begin GetWindowThreadProcessId(hWnd, @pid); hproc := OpenProcess(PROCESS_TERMINATE, FALSE, pid); if hproc<>0 then begin Result:=TerminateProcess(hProc,0); if Result then CloseHandle(hProc); end; end; end; KillProc('NOTEPAD');
# ciek
uses TLHelp32; var PHandle, FHandle: THandle; Process:TProcessEntry32; Done, Next: Boolean; EXE : String; // cieka programu begin EXE := 'C:\Windows\Pulpit\prog.exe'; FHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); Process.dwSize := Sizeof(Process); Next := Process32First(FHandle,Process); while Next do begin{ jesli sciezka dostepu sie zgadza } if AnsiLowerCase(Process.szExeFile) = AnsiLowerCase(EXE) then begin PHandle:=OpenProcess(PROCESS_TERMINATE, False, Process.th32ProcessID); { to probujemy zabic aplikacje } Done := TerminateProcess(PHandle,0); if not Done then MessageBox(Handle, 'Bd', 'Bd', MB_OK); end; Next := Process32Next(FHandle,Process); end; CloseHandle(FHandle); end;
# caption
var H:Thandle; begin H:=FindWindow(nil,'Caption Okna do zamknicia'); PostMessage(H,WM_QUIT,0,0); end;
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Prosz o odpowid i pozdrawiam.
Execute + FileName dla OpenDialog'a z tego co pamitam :-) chyba z 300 lat nic w Delphi nie pisaem :D
zobacz to: http://www.delphidab...olders&tab=main
heh, "how to use it"??
Chodzi Ci o przycisk do wybierania katalogu?uses ShlObj; function BrowseForFolder:string; var Buffer: array[0..MAX_PATH]of char; ItemIdList: PItemIDList; FBrowseInfo: BrowseInfo; begin with FBrowseInfo do begin hwndOwner := 0; pidlRoot := nil; pszDisplayName := Buffer; lpszTitle := PChar('Wybierz folder'); ulFlags := BIF_RETURNONLYFSDIRS; lpfn := nil; lParam := 0; end; ItemIdList := ShBrowseForFolder( FBrowseInfo ); if ItemIDList = nil then Exit; SHGetPathFromIDList( ItemIDList , Buffer ); result:=Buffer; end;Potem tylko:Edit1.Text:=BrowseForFolder;
albo koczc post Bedzia...
po wrzuceniu na form Buttona i OpenDialog-a...
procedure TForm1.Button1Click(Sender: TObject); begin if (OpenDialog1.Execute) then Edit1.Text := OpenDialog1.FileName; end;
^_^
// statsiarz !! - B
Uytkownik Bedzio edytowa ten post 01 maj 2006, 15:51
Dziki.
eby nie rozpoczyna nowego tematu, to zadam jeszcze jedno pytanie: jak zakacza i uruchamia procesy (prbowaem przez WinExec i polecenie teskkill do windowsa, ale nie o to mi chodzio)?
Pozdrawiam, gonet9
ad1. ShellExecute
ad2.
jak znasz klase:
function KillProc(const ClassName:AnsiString):Boolean; var hWnd,hProc:THandle; pid:DWORD; begin Result:=False; hWnd := FindWindow(PCHAR(ClassName),nil); if IsWindow(hWnd) then begin GetWindowThreadProcessId(hWnd, @pid); hproc := OpenProcess(PROCESS_TERMINATE, FALSE, pid); if hproc<>0 then begin Result:=TerminateProcess(hProc,0); if Result then CloseHandle(hProc); end; end; end; KillProc('NOTEPAD');
# ciek
uses TLHelp32; var PHandle, FHandle: THandle; Process:TProcessEntry32; Done, Next: Boolean; EXE : String; // cieka programu begin EXE := 'C:\Windows\Pulpit\prog.exe'; FHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); Process.dwSize := Sizeof(Process); Next := Process32First(FHandle,Process); while Next do begin{ jesli sciezka dostepu sie zgadza } if AnsiLowerCase(Process.szExeFile) = AnsiLowerCase(EXE) then begin PHandle:=OpenProcess(PROCESS_TERMINATE, False, Process.th32ProcessID); { to probujemy zabic aplikacje } Done := TerminateProcess(PHandle,0); if not Done then MessageBox(Handle, 'Bd', 'Bd', MB_OK); end; Next := Process32Next(FHandle,Process); end; CloseHandle(FHandle); end;
# caption
var H:Thandle; begin H:=FindWindow(nil,'Caption Okna do zamknicia'); PostMessage(H,WM_QUIT,0,0); end;