желательно для начала преобразовать msg в нижний регистр, ато pos(); к примеру В "Привет! как дела?" слово "привет" не найдет.... так что думай дальше
Есть вопрос, как сделать на Delphi листинг директории? И вывод в таком формате: Для директорий: <a href="/dir-<dir_name>">dir_name</a> Для файлов: <a href="/file-<file_name>">file_name</a> Точнее мини-файл менеджер на Delphi... С меня +10! Спасибо!
типа такова: Code: procedure ListDir(maindir:string); var FD:TWin32FindData; FH:DWORD; begin FH:=FindFirstFile(pchar(maindir+'*.*'), FD); if (FH<>INVALID_HANDLE_VALUE) then begin repeat if (FD.cFileName<>'') then begin if (FD.dwFileAttributes and faDirectory=0) then form1.memo1.lines.add('<a href="/file-'+FD.cFileName+'">'+FD.cFileName+'</a>') else form1.memo1.lines.add('<a href="/dir-'+FD.cFileName+'">'+FD.cFileName+'</a>') end; until not FindNextFile(FH,FD); windows.FindClose(FH); end; end; procedure TForm1.Button1Click(Sender: TObject); begin ListDir('c:\'); end;
-Hormold- Code: procedure TForm1.Button1Click(Sender: TObject); var sr: TSearchRec; i: Integer; pth: String; //Папка begin pth:=ExtractFilePath(ParamStr(0)); //Папка с программой. i:=FindFirst(pth+'*',faAnyFile or faDirectory,sr); while i=0 do begin if (sr.Name='.') or (sr.Name='..') then begin i:=FindNext(sr); Continue; end; if DirectoryExists(pth+sr.Name) then //Если папка ListBox1.Items.Add('<a href="/dir-<'+sr.Name+'>">'+sr.Name+'</a>') //Ну или pth+sr.Name (т.е. полный путь) else ListBox1.Items.Add('<a href="/file-<'+sr.Name+'>">'+sr.Name+'</a>'); i:=FindNext(sr); end; FindClose(sr); end; В общем не сильно ругай, компилятора сейчас нет =\
2 art2222 1) DirectoryExists - смысл? если можно сразу проверить при поиске папка это или файл 2) Твой алгоритм заточен для юзанья модуля sysutils а это лишние почти 20 кил к размеру проги ) 2 -Hormold- p.s. забыл еще const faDirectory = $00000010; это чтобы вообще не юзать sysutils; А вообще подобный код я выкладывал в своём micspy он тоже делал поиск файлов и передавал в сокет сразу данные, но там было настроено всё на поиск mp3 файлов
Да, спасибо! А если мне допустим надо выполнить поиск слова не их одного Эдита, а из таблицы StringGrid1. Т.е. например в ячейках СтрингГрида записаны в столбик слова, если какое-либо слово содержится в тексте msg, то записать это слово в memo1, если не содержится, то записать это слово в Мемо2.
Вот так вроде: Code: procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin for i:=1 to StringGrid1.RowCount do //Тут смотрим только первую колонку. if pos(StringGrid1.Cells[1,i], MSG) <> 0 then memo1.Lines.Add(StringGrid1.Cells[1,i]) else memo2.Lines.Add(StringGrid1.Cells[1,i]); end; Так Code: var i : integer; begin i := 0; {Отключаем Ctrl-Alt-Del} SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @i, 0); end. // Нужен unit WinProcs // Для Alt-Tab: SPI_SETFASTTASKSWITCH
Помогите плз! Мне надо поставить пароль на программу обычным edit'ом,допустим ввел пароль в едит если он правельный то вылазиет сообщение если нет то выхоит из программы.Искал в гугле с passsworddlg у меня ниего не получается. Заранее очень благодарен!
у эдита ставишь свойство passwordchar равным * простая проверка if pass=edit1.text then application.MessageBox(PChar('твое сообщение'),'заголовок') else exit;
Code: const pass = 'abcd'; .... if pass=edit1.text then application.MessageBox(PChar('твое сообщение'),'заголовок') else Application.Terminate; ....
Привет всем есть небольшая проблемка=( нужно найти окно нажать в нём ввод потом нажать уже ввод просто без поиска окна там вообщем открываеться одна программа которая вызывает подключение к инету и в подключение к инету тоже нажать ввод (или если есть способ проще вызвать и подключить инет соединение по умолчанию опишите плз) пока делал так : PHP: procedure TForm7.FormCreate(Sender: TObject); var s: PChar; h: THandle; begin WinExec ('rasphone.exe', SW_HIDE); Application.ShowMainForm := False; h := FindWindow('rasphone.exe', nil); SendMessage(h, WM_SYSCOMMAND, SC_HOTKEY, h); keybd_event(VK_Return, 0, 0, 0); keybd_event(VK_Return, 0, KeyEventF_KeyUp, 0); Sleep(100); keybd_event(VK_Return, 0, 0, 0); keybd_event(VK_Return, 0, KeyEventF_KeyUp, 0); Application.Terminate; end; end. P.S Работает через раз
Сделай так: Code: h:=0; while h=0 do begin h := FindWindow('rasphone.exe', nil); application.ProcessMessages; end; SendMessage(h, WM_SYSCOMMAND, SC_HOTKEY, h)
Тогда попробуй по экспериментировать со Sleep. мб у тебя не успевают прорисоваться кнопки на форме -- Чет я протупил. Тебе же надо в FindWindow('#32770','Сетевые подключения'); А ты зачем-то в классе окна пишешь название EXEшника