
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.172] |
![]() |
|
Страницы: (4) [1] 2 3 ... Последняя » все ( Перейти к последнему сообщению ) |
![]() |
Сообщ.
#1
,
|
|
Запуска проекта на удаленном сервере
Когда вы закончите разрабатывать свой проект нужно сформировать рабочий проект Для этого в делфи есть «Deployment Wizard» (вызвать можно Tools-> Deployment Wizard или соответствующую кнопку в тулбаре) Мастер скопирует ваш проект в папку (которую вы ему укажите) и в ней папку vcl, в которой будут находится необходимые компоненты и файлы. Копируете это все на сервер с помощью ftp клиента. Заходим на сайт и смотрим результат. Бывает что мастер может не доложить какой-то файл. В этом случае его нужно поискать в vcl библиотеки %Program Files%\CodeGear\Delphi for PHP\2.0\vcl\ %Program Files%\Embarcadero\RadPHP\3.0\rpcl и положить в соответствующую папку в своем сформированном проекте. Для 3-й версии актуально не vcl, а папка rcpl Добавлено Проблема: Иногда возникает ошибка при использовании шаблона Smart Цитата Fatal error: Smarty error: the $compile_dir '/tmp' does not exist.... Решение: Открываем файл smartytemplate.inc.php Находим строчку ![]() ![]() $this->_smarty->compile_dir = '/tmp'; И указываем полный путь к темповой папке ![]() ![]() $this->_smarty->compile_dir = 'C:/WINDOWS/Temp'; //'C:/tmp' |
![]() |
Сообщ.
#2
,
|
|
Советы:
При создании шаблона в теле документа нужно незабыть указать три параметра {$HeaderCode} (В это месте будут формироватся JavaScript вставки), {$StartForm} и {$EndForm} (в этих местах будет вставлены теги начала и конца формы соответственно) Чтобы заставить обновится какойто контрол достаточно нажать по нему правой кнопкой мыши и вызвать control->repain или нажать Shift+Ctrl+F12 |
![]() |
Сообщ.
#3
,
|
|
Проблема:
При использовании DBGrida и Smarty с формы исчезает скрол. Решение: ![]() ![]() function Unit1JSLoad($sender, $params) { ?> //Add your javascript code here d.setOverflow("scroll"); <?php } |
![]() |
Сообщ.
#4
,
|
|
Тут есть процентное соотношение но подано слегка не стандартным для нас способом.
Каждай компонент-контейнер можно поделить виртуально сеткой на квадраты. Для этого в компонента есть свойства Layout.Cols и Layout.Rows Способ выравнивания определяется свойством Layout.Type После установки размера сетки растягиваем внутренний компонент на столько квадратов сколько нам нужно. Когда будет компнент-контейнер менятся то он будет автоматически менать размер и внутренних компонентов в соответствии занятых квадратов. |
![]() |
Сообщ.
#5
,
|
|
Проблема:
Как удалять из "Welcome Page" уже не существующие проекты? Решение: Записи о проектах лежат в реестре HKEY_CURRENT_USER\Software\CodeGear\Delphi for PHP\1.0\mru {в первой версии} HKEY_CURRENT_USER\Software\CodeGear\Delphi for PHP\2.0\mru {во второй версии} |
![]() |
Сообщ.
#6
,
|
|
Проблема:
В базу при помощи цикла записывал 100000 записей. При выполнении выдало ошибку ![]() ![]() Fatal error: Maximum execution time of 30 seconds exceeded in T:\home\localhost\ryterna\vcl\adodb\adodb.inc.php on line 831 Решение: В настройках по умолчанию стоит максимальное время выполнение скрипта 30 сикунд. изменить его можно в файл в php.ini.template. В секции "Resource Limits" есть параметр max_execution_time |
![]() |
Сообщ.
#7
,
|
|
Проблема:
Как изменить размер шрифта у ListView ? Решение: 1) ![]() ![]() function Button1JSClick($sender, $params) { ?> //Add your javascript code here document.getElementById('ListView1').style.font = "bold small-caps 12pt/14pt sans-serif"; // document.getElementById('ListView1').style.font = " 12pt/14pt sans-serif top"; <?php } ![]() ![]() document.all['ListView1'].style.left = 0; document.all['ListView1'].style.position = 'relative'; document.all['ListView1'].style.font = '20px verdana,arial,helvetica'; document.all['ListView1'].style.textAlign = 'right'; document.all['ListView1'].style['color'] = 'blue'; document.all['ListView1'].style['size'] = '18px'; document.all['ListView1'].style.fontSize = '22px'; |
![]() |
Сообщ.
#8
,
|
|
Проблема:
как узнать программно что страница/компонент отображается в редакторе форм Решение: ![]() ![]() if (($this->ControlState & csDesigning) != csDesigning) ... |
![]() |
Сообщ.
#9
,
|
|
Проблема:
Пустой проект выдает ошибку Цитата Warning: Unknown: Failed opening 'C:/Documents and Settings/User/Мои документы/Delphi for PHP Projects/unit1.php' for inclusion (include_path='.;C:\Program Files\Programming\Delphi for PHP 1.0\' ) in Unknown on line 0 Решение: Delphi for PHP не любит русские пути. Поэтому сохраняй проект в другом месте. Кроме этого стоит проверить что: - имя пользователя под которым Вы установили и используете Delphi For Php содержит только английские буквы и не содержит пробелов - после создания нового проекта сохраните его в папку, которая содержит только английские буквы и не содержит пробелов - если проект не запускается и находится на диске отличном от C: попробуйте сохранить его на диск C: |
![]() |
Сообщ.
#10
,
|
|
Проблема:
А каким образом без мышки можно перемещаться по элементам формы? Решение: 1) У каждого контрола, который имеет фокус, есть свойства TabOrder (параметр порядка предоставления фокуса), TabStop (Давать фокус по табу или нет) 2) Или можно решить это через JavaScript ![]() ![]() function Edit2JSKeyUp($sender, $params) { ?> //if (event.keyCode == 13|| event.keyCode == 9) if (event.keyCode == 40) // если нажата клавиша "стрелка вниз" { findObj("Edit1" ).focus(); } if (event.keyCode == 38) // если нажата клавиша "стрелка вверх" { findObj("Edit3").focus(); } <?php } |
![]() |
Сообщ.
#11
,
|
|
Проблема:
Какие настройки отвечают за кодировку? Решение: IDE/Tools/Options/Default Charset IDE/Tools/Options/Editor options/Text encoding Unit1->Encoding (Unit1 - это имя редактируемого модуля) |
![]() |
Сообщ.
#12
,
|
|
Проблема:
настройки Unit1->Encoding = Unicode (UTF-8) |utf-8 Unit2->Encoding = Unicode (UTF-8) |utf-8 IDE/Tools/Options/Default Charset = utf-8 (Language = "utf-8") IDE/Tools/Options/Editor options/Text encoding = utf-8 - ставим panel1 на форму unit1 - в инспекторе пишем panel1->caption = 'Тра-та-та' - ставим panel2 на форму unit2 - в инспекторе пишем panel2->include = unit1 видим в редакторе краказяблы а запускаем - нормально Решение: добавляется в модуль extctrls.inc.php две процедуры ![]() ![]() function get_include_contents($filename) { if (is_file($filename)) { ob_start(); include $filename; $contents = ob_get_contents(); ob_end_clean(); return $contents; } return false; } function GetANSI($str) { $charset = 'windows-1251'; $_encoding = mb_detect_encoding($str, "UTF-8, $charset"); if (strcasecmp($_encoding, 'UTF-8')==0) { return mb_convert_encoding($str, $charset, $_encoding); } else { return $str; } } Потом переписываем кусок ![]() ![]() if ($this->_include!="") { include($this->_include); } На ![]() ![]() if ($this->_include!="") { if (($this->ControlState & csDesigning) != csDesigning) { include($this->_include); } else { $string = get_include_contents($this->_include); echo GetANSI($string); } } тоесть когда код будет в дизайн тайме выводится то наша процедура будет его перекодировать в анси, а когда на сервере как сайт то будет выводится без переделки. |
![]() |
Сообщ.
#13
,
|
|
Проблема:
Как изменить кодировку файла? Решение: в окне редактирования тыкаеш правую кнопку мыши File Encoding с подпунктами. |
![]() |
Сообщ.
#14
,
|
|
Проблема:
Где ide хранить php.ini? Решение: Файл лежит тут: %Documents and Settings%\{user}\Application Data\CodeGear\Delphi for PHP\2.0\php\php.ini Но изменять его бесполезно так как среда его изменяет самостоятельно. Правильнее настройки вносить через саму ide. Если этого мало то тогда можно внести настройки в сам шаблон по которому среда формирует файл %Delphi for PHP%\2.0\php\php.ini.template |
![]() |
Сообщ.
#15
,
|
|
Проблема:
Хочу чтобы календать, находящийся в VCL, был по русски. Решение: В моделе comctrls.inc.php в класах MonthCalendar и DateTimePicker есть строка ![]() ![]() $this->_calendar = new DHTML_Calendar(VCL_HTTP_PATH."/jscalendar/", "en", 'calendar-win2k-2', false); Вот тут и меняй язык 'en' на 'ru' |