Главная » FAQ | [ Добавить вопрос ] |
file_put_contents(«путь к файлу», »<текст>»); Пример 1: file_put_contents("C:/FileName.txt", "Text"); Пример 2: file_put_contents("C:/FileName.txt", c("edit1")->text); Подробней php.net |
$text = file_get_contents(«путь к файлу»); Пример: Код $text = file_get_contents("C:/FileName.txt"); print($text); |
$file = file_exists(«путь к файлу»); Пример: $file = file_exists("C:/FileName.txt"); if($file){ message("Файл найден!"); }else{ message("Файл не найден"); } Подробней php.net |
rename(«путь к файлу/папке», »<путь к файлу/папке с новым именем>»); Пример переименования файла: rename("C:/FileName1.txt", "C:/NewFileName.txt"); Пример переименования папки: rename("C:/FolderName", "C:/NewFolderName"); Подробней php.net |
|
|
|
rename(«путь к файлу», »<путь к файлу с новым расширением>»); Пример: rename("C:/FileName.txt", "C:/FileName.php"); Подробней php.net |
Пример: dir_search("C:/", $files, "", true, true); // загоняем найденные файлы в $files массив foreach ($files as $file){ // пробегаемся по массиву if (strpos($file, 'name')!==false){ // функция поиска подстроки (name) в строке - strpos c("listbox1")->items->add($file); // выводим в список найденные файлы } } |
if( !c("button1")->stat ){ c("button1")->picture->assign(c("button2")->picture); // берём картинку из кнопки 2 c("button1")->stat = true; }else{ c("button1")->picture->assign(c("button3")->picture); // берём картинку из кнопки 3 c("button1")->stat = false; } |
LoadForm(c("Form2"), LD_NONE); |
c("checkbox1")->checked != c("checkbox1")->checked; c("spButton1")->enabled = c("checkbox1")->checked; |
if(c("openDlg1")->execute()) { c("edit1")->text = c("openDlg1")->fileName; } |
Данный тип кнопки отличается от обычных тем, что не имеет фокуса (нет возможности выделить кнопку через tab). |
Вставить следующий код в TEdit в событие «Клавиатура»: if ( ! is_numeric( $key ) && $key <> chr(8) ){ $key = chr(1); } |
обавляем image1 событие «Курсор на объекте» и пишем код: c("image1")->picture->assign(c("image2")->picture); // берём картинку из изображения 2 Добавляем image1 событие «Курсор вне объекта» и пишем код: c("image1")->picture->assign(c("image3")->picture); // берём картинку из изображения 3 |
Пример 1. Визуально, через свойства формы:Выбираем форму, переходим на вкладку «Свойства», выбираем пункт настройки. В появившемся окне убираем галочки с не нужных кнопок (чекбоксы «закрыть», «свернуть», «развернуть»). Пример 2. С помощью php кода:Существуют следующие кнопки:
c("Form1")->borderIcons = 'biSystemMenu'; // отобразит системное меню формы и кнопку закрыть c("Form1")->borderIcons = 'biSystemMenu,biMinimize'; // отобразит системное меню окна, кнопку закрыть и кнопку свернуть c("Form1")->borderIcons = 'biMinimize'; // не должно ничего отображать, т.к. отсутствует свойство biSystemMenu... |
Пример: pre( c("grid1")->row ); // индекс выделенной строки pre( c("grid1")->col ); // индекс выделенной колонки |
Пример изменения ширины столбца: $index = 0; // номер колонки, начинается с 0,1,2... $w = 100; // ширина grid_colWidth(c("grid1")->self, $index, $w); // назначаем ширину колонки $index Пример изменения высоты строки: $index = 0; // номер строки, начинается с 0,1,2... $h = 40; // высота grid_rowHeight(c("grid1")->self, $index, $h); // назначаем высоту строке $index |
Пример добавления строки перед строкой: $grid = c("grid1"); $row = $grid->row; $grid->rowCount += 1; for($i = $grid->rowCount-1; $i > $row; $i--){ $grid->rows($i, $grid->rows($i-1)); } $grid->rows($row, array()); Пример добавления строки после строки: $grid = c("grid1"); $row = $grid->row; $grid->rowCount += 1; for($i = $grid->rowCount-1; $i > $row; $i--){ $grid->rows($i, $grid->rows($i-1)); } $grid->rows($row+1, array()); $grid->row += 1; |
Пример: $grid = c("grid1"); $row = $grid->row; for($i = $row; $i < $grid->rowCount-1; $i++){ $grid->rows($i, $grid->rows($i+1)); } $grid->rowCount -= 1; Пример с дополнительным условием против удаления фиксированных строк: $grid = c("grid1"); $index = $grid->row; if($index >= $grid->fixedRows){ if($grid->rowCount > $grid->fixedRows+1){ for($i = $index; $i < $grid->rowCount-1; $i++){ $grid->rows($i, $grid->rows($i+1)); } $grid->rowCount -= 1; }else{ $grid->rows($index, array()); } } |
Пример добавления столбца перед столбцом: $grid = c("grid1"); $col = $grid->col; $grid->colCount += 1; for($i = $grid->colCount-1; $i > $col; $i--){ $grid->cols($i, $grid->cols($i-1)); } $grid->cols($col, array()); Пример добавления столбца после столбца: $grid = c("grid1"); $col = $grid->col; $grid->colCount += 1; for($i = $grid->colCount-1; $i > $col; $i--){ $grid->cols($i, $grid->cols($i-1)); } $grid->cols($col+1, array()); $grid->col += 1; |
Пример: $grid = c("grid1"); $col = $grid->col; for($i = $col; $i < $grid->colCount-1; $i++){ $grid->cols($i, $grid->cols($i+1)); } $grid->colCount -= 1; Пример с дополнительным условием против удаления фиксированных столбцов: $grid = c("grid1"); $index = $grid->col; if($index >= $grid->fixedCols){ if($grid->colCount > $grid->fixedCols+1){ for($i = $index; $i < $grid->colCount-1; $i++){ $grid->cols($i, $grid->cols($i+1)); } $grid->colCount -= 1; }else{ $grid->cols($index, array()); } } |
Пример: $grid = c("grid1"); for($y = 0; $y < $grid->rowCount; $y++){ $grid->rows($y, array()); } Или: $grid = c("grid1"); for($x = 0; $x < $grid->colCount; $x++){ $grid->cols($x, array()); } |
Зададим значение любой ячейки, например ячейки 3×2, где 3 - столбец, 2 - строка: c("grid1")->cells(3, 2, "Значение"); Зададим строке массив значений, например строке 4: $array = array("Один", "Два", "Три"); c("grid1")->rows(4, $array); Зададим столбцу массив значений, например столбцу 3: $array = array("Один", "Два", "Три"); c("grid1")->cols(3, $array); |
Создание компонентаВ DevelStudio работать с компонентами приходится как с объектами: свойства компонентов (положение, габариты, их содержимое) представляются как свойства объектов. $edit = c("edit1"); Здесь $edit будет объектом (экземпляром класса) TEdit, имеющим свойства text, align, color, font… и методы hide, show, toBack, toFront и т.д. // получаем объект формы $form = c('Form1'); // создаём оъект TEdit (поле для ввода) $edit = new TEdit; // укажем родителя (объект TForm или TScrollBox) $edit->parent = $form; // зададим требуемые свойства $edit->x = 10; // позиция X $edit->y = 10; // позиция Y $edit->w = 120; // длина $edit->h = 20; // высота $edit->text = 'TEdit'; // текстовое значение поля $edit->cursor = crHandPoint; // курсор на компоненте $edit->hint = 'Подсказка'; // текст подсказки После выполнения кода свежесозданный компонент TEdit появится на форме Form1. Обработка событийВ DevelStudio существует несколько способов программного указания функциональной обработки событий компонентов: Способ 1Начиная с DevelStudio 3 можно указывать анонимную функцию: $fn=function ($id) { $edit=c($id); $edit->text=''; alert('hello!'); }; $edit->onClick = $fn; В этом случае в указанную функцию автоматически передаются параметры в зависимости от события:
Параметр $id, передаваемый в функцию при любом событии, - это ID компонента, благодаря которому можно получить соответствующий объект: // скрыть компонент при наведении на него курсора мыши $fn=function($id, $shift, $x, $y){ $self = c($id); $self->hide(); }; $edit->onMouseMove = $fn; Способ 2Можно указать имя функции, вызываемой при срабатывании события: $edit->onClick = 'pre'; В указанную функцию автоматически передадутся параметры аналогично первому способу. Способ 3Можно указать практически любой произвольный код. Работает этот способ только в DevelStudio 2! $edit->onClick = 'for($i=3; $i>0; --$i) alert($i); alert("Yo!");'; // только DevelStudio 2 У этого способа есть особенность: $edit->onClick = 'for($i=3; $i>0; --$i) alert($i); alert("Yo!"); pre'; // только DevelStudio 2 В примере в функцию pre передастся параметр $id Удаление компонентаПроизводится методом free() $edit = c('edit1'); $edit->free(); |
Внимание! Если вы не уверены, что всё делаете правильно лучше ничего не изменять в реестре, иначе это может привести к плохим последствиям и потери данных! Сценарий работы с реестром!
Какие бывают корневые ключи?HKEY_CURRENT_USER - раздел содержит настройки текущего активного пользователя, вошедшего в систему. HKEY_USERS - раздел содержит все активные загруженные профили пользователей компьютера. Раздел HKEY_CURRENT_USER является подразделом раздела HKEY_USERS. HKEY_LOCAL_MACHINE - раздел содержит параметры конфигурации, относящиеся к данному компьютеру (для всех пользователей). HKEY_CLASSES_ROOT - является подразделом HKEY_LOCAL_MACHINE\Software\Classes. В основном, содержит информацию о зарегистрированных типах файлов и объектах COM и ActiveX. HKEY_CURRENT_CONFIG - раздел содержит сведения о профиле оборудования, используемом локальным компьютером при запуске системы. Является ссылкой на HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardwa re Profiles\Current. HKEY_DYN_DATA - раздел имеется только в реестре ОС семейства Windows 9x/ME. Содержит динамически изменяемые данные о компьютере (загрузка процессора, размер файла подкачки и т. п.). Как создать ключ?$r = new TRegistry; $r->rootKey(HKEY_LOCAL_MACHINE); $r->CreateKey("\\SOFTWARE\\DevelStudio2010"); Как проверить наличие ключа?$key = "DevelStudio2010"; $r = new TRegistry; $r->rootKey(HKEY_LOCAL_MACHINE); // второй параметр отвечает за то, создавать-ли ключ, если он не существует $r->OpenKey("\\SOFTWARE", 0); if($r->KeyExists("$key")){ message("Ключ $key найден!"); }else{ message("Ключ $key не найден!"); } $r->CloseKey(); Как удалить ключ?$r = new TRegistry; $r->rootKey(HKEY_LOCAL_MACHINE); $r->DeleteKey("SOFTWARE\\DevelStudio2010"); Как записать значение в ключ?$r = new TRegistry; $r->rootKey(HKEY_LOCAL_MACHINE); // второй параметр отвечает за то, создавать-ли ключ, если он не существует $r->OpenKey("\\SOFTWARE\\DevelStudio2010", 1); $r->WriteString("Имя", "Значение"); $r->CloseKey(); Как проверить наличие значения в ключе?$r = new TRegistry; $r->rootKey(HKEY_LOCAL_MACHINE); // второй параметр отвечает за то, создавать-ли ключ, если он не существует $r->OpenKey("SOFTWARE\\DevelStudio2010", 0); if($r->ValueExists("DevelStudio2010")){ message("Значение найдено!"); }else{ message("Значение не найдено!"); } $r->CloseKey(); Как удалить значение из ключа?$r = new TRegistry; $r->rootKey(HKEY_LOCAL_MACHINE); $r->OpenKey("SOFTWARE\\DevelStudio2010", 0); $r->DeleteValue("Имя"); $r->CloseKey(); Альтернативный походЧтение и запись ключей в реестре можно осуществить куда проще, используя функции readRegKey для чтения, и writeRegKey для записи: mixed readRegKey ( $root, $path, &$buffer, $type ) mixed writeRegKey ( $root, $path, $value, $type )
ПримерыЧтение ключа readRegKey(HKEY_CLASSES_ROOT, '.exe\\Content Type', $x, STRING); pre($x); // выведет "application/x-msdownload" Запись ключа $x='trololo'; writeRegKey(HKEY_CLASSES_ROOT, '.exe\\Custom Key', $x, STRING); Чтение т.н. ключа «по умолчанию» :) readRegKey(HKEY_CLASSES_ROOT, '.exe\\*', $x, STRING); pre($x); // выведет "exefile" Консоль WindowsИспользуя shell_exec, консольными командами можно производить большее количество операций с реестром, нежели чем представлено выше. Однако, это будет и сложнее. Для ознакомления с консольными командами Windows, в командной строке пропишите: reg /? и следуйте дальнейшим инструкциям. Пример$str=shell_exec('REG QUERY "HKCU\\Volatile Environment"'); $str=iconv('CP866','CP1251',$str);// не забываем сменить кодировку alert($str); |
В буфер обмена clipboard_setText( $text ); Пример 1: clipboard_setText( c("memo1")->text ); Пример 2: clipboard_setText( "text" ); Из буфера обмена clipboard_getText( void ); Пример 1: pre( clipboard_getText() ); |