Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 3

Модерирует : ShIvADeSt

ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

AntonVA1



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
Не обязательно. Если все dataset-ы исходно закрыты, а открываются только при активации соответствующих форм, то все вполне неплохо - при активации формы - данные актуальны, а при закрытии (и закрытии датасета) - записываем изменения.  
Да и необходимость тащить ВСЮ базу - преувеличена. Если тащить только нужное - то можно все датасеты открыть сразу. Ну подождет юзер секунды 3-5. Зато формы потом мгновенно будут выстреливаться  
 
Согласен, все зависит от реализации, можно открывать только в onshow.
Но вручную вормы нужно обязательно! Читаем классику (Стив Тейксейера Ксавье Пачеко Delphi 5 для разработчика Том 1 стр. 230)

Цитата:
Все остальные формы ДОЛЖНЫ БЫТЬ УДАЛЕНЫ из списка автоматического создания, расположенного в диалоговом окне Project Options
 
и далее

Цитата:
Все модули форм должны содержать функцию реализации формы, которая предназначена для создания, настройки, отображения... и т.д.
 
Стоит не забывать, что память все еще нужно экономить, что бы не создавать монстров а-ля Виста

Всего записей: 474 | Зарегистр. 17-09-2003 | Отправлено: 16:01 11-10-2007
demonster666



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
АААААААААААААА!!!!!!!!!! ПРИВЕТ ВСЕМ!!!!!!!! Люди! подскажите как в Дельфи можно написать прогу чтобы она лазила браузером Опера  (по wml-страницам) с заданной периодичностью.  


Цитата:
В каком смысле? Оперой управлять  

Да. прогу для управления Оперой.
Или хоть как Дельфи можно wml страницы просматривать?

Всего записей: 33 | Зарегистр. 23-07-2005 | Отправлено: 18:37 11-10-2007
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
demonster666
Мне кажется данную задачу можно решить с помощу скрипта.

Всего записей: 558 | Зарегистр. 05-04-2006 | Отправлено: 20:02 11-10-2007
demonster666



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
RedPromo
че за скрипт? я тока в дельфи немного умею програмить. а его встроеный брайзер wml не распознает вроде. ПОМОГИТЕ!!!

Всего записей: 33 | Зарегистр. 23-07-2005 | Отправлено: 22:42 11-10-2007
nuker2015



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
по скриптам и DOM http://dev.opera.com/
а тут http://www.winwap.com/ найдешь SDK для работы с WML. Ведь тебе не сама опера нужна а WML браузер, так?

Всего записей: 132 | Зарегистр. 26-10-2005 | Отправлено: 22:59 11-10-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Armag3000
Поток он на то и поток - определенная последовательность операций, выполняющихся по очереди, не видел нигде, чтобы как-то этому помогала многопроцессорность.  
Попробуй посмотреть что по потокам происходит в дубе при запуске так и из под кнота, например процессэксплорером, в конце концов скачай исходники кнота - на делфях писано - и посмотри что да как там делается.

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 00:42 12-10-2007
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста:
есть вызов функции в операторе
 
if ChkSubDirs(TreeViewFolders.Path)=False then
 
сама функция, описанная в разделе implementation:
 
function ChkSubDirs(sInitDir:string):Boolean;
  var
   srSearch: TSearchRec;
   sSearchPath: string;
  begin
    sSearchPath := sInitDir+'\';
    ChkSubDirs := False;
    if FindFirst(sSearchPath + '*', faDirectory, srSearch) = 0 then ChkSubDirs := True;
  end;
 
При компиляции никаких ошибок, но функция не работает. При попытке отследить значения выражений и переменных в окне Watches пишется:
FindFirst - Not enough actual parameters
ChkSubDirs - Not enough actual parameters
 
В чем я ошибся? Я уже глаза протер в поисках кривизны - ничего не вижу.

Всего записей: 3144 | Зарегистр. 29-09-2005 | Отправлено: 03:36 12-10-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DmitryKz
Отладчик тоже не всесильный - нормально обработать довольно сложную функцию FindFirst, котрая к тому же еще через var-параметр возвращает результат он скорее всего не может даже вызвать.
Зайди в свойства проекта, в параметрах компилятора включи "Use debug DCUs", и тогда сможешь во время отладки зайти внутрь FindFirst
 
Ну и из разряда вкусовщины
 "ChkSubDirs(TreeViewFolders.Path)=False" имхо лучше писать  
"not ChkSubDirs(TreeViewFolders.Path)"
 
Результат функции лучше присваивать не переменной с именем функции, а переменной Result:
Result := False;
if FindFirst(sSearchPath + '*', faDirectory, srSearch) = 0 then Result := True;

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 08:01 12-10-2007
SergeBS



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim
Ну уж тогда так:
result := not (FindFirst(sSearchPath + '*', faDirectory, srSearch) = 0);
DmitryKz

Цитата:
sSearchPath := sInitDir+'\';  

Не так!
sSearchPath := IncludeTrailingBackSlash(sInitDir);
А ошибка  - TreeViewFolders.Path = nil (пустая строка, '')
Вот и нет параметра вызова у ChkSubDirs
 
 
Добавлено:
И вообще зачем такие сложности. Есть DirectoryExists function

Всего записей: 272 | Зарегистр. 19-04-2005 | Отправлено: 09:19 12-10-2007
MDMDVD



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Столкнулся с такой проблемой  
Есть программа для управления базой данных
Драйвер Paradox  
Необходимо следующее Имеется два поля типа DBEdit1 и 2
В таблицах парадокса ячейки имеют тип Number я написал код
который преобразовывает StrToInt и выполняю сложение или деление этих полей
вПри компиляции пишет несовместимые типы Integer/Extended
Подскажите как правилбно сделать

Всего записей: 77 | Зарегистр. 03-10-2007 | Отправлено: 09:36 12-10-2007
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MDMDVD
Результат деления всегда будет дробное.
проверь тип переменной которая принимает результат либо привети результат к integer.
 
Вот тебе подсказка как привести к типу int.

Код:
System.Frac  
System.Round  
System.Trunc  
 


Всего записей: 558 | Зарегистр. 05-04-2006 | Отправлено: 10:16 12-10-2007 | Исправлено: RedPromo, 10:22 12-10-2007
demonster666



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
nuker2015

Цитата:
по скриптам и DOM http://dev.opera.com/  
а тут http://www.winwap.com/ найдешь SDK для работы с WML. Ведь тебе не сама опера нужна а WML браузер, так?

 
Про скрипты есть инфа на русском?  
Мне нужно узнать как в Дельфи можно получить данные с wap-сайтов? Тоесть программа должна просматривать wml страницы и брать с них текстовую информацию, с которой я уже более-менее могу програмно разобраться и сам. help!

Всего записей: 33 | Зарегистр. 23-07-2005 | Отправлено: 10:56 12-10-2007
greenpc

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim
FindFirst(sSearchPath + '*.*', faDirectory, srSearch) = 0

Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 11:00 12-10-2007
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
demonster666
Мне кажется тут тебе Opera совсем не кчему, выше nuker2015 тебе давал на ссылку на SDK, тебе скорее всего нужен парсер WML, либо руками. Тут описание формата Ссылка
А получать можно в делфи с помощу Indy.

Всего записей: 558 | Зарегистр. 05-04-2006 | Отправлено: 11:49 12-10-2007
Aladdinych



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть DbGrid подключенный к датасету. Одна из колонок булевская.
Как сделать, чтобы в колонке вместо значения отображался checkbox?

Всего записей: 322 | Зарегистр. 18-10-2005 | Отправлено: 15:24 12-10-2007
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim
Да я так и писал, просто когда увидел, что функция не работает, стал "упрощать" код
Спасибо за ценные советы. У меня все равно не работает функция FindFirst так, как хочу.
SergeBS
Насколько я понял, функция DirectoryExists проверяет существование каталога с конкретным именем. Мне же необходимо узнать, существует ли по указанному пути (т. е. в данном конкретном каталоге) хоть один подкаталог (не файл). Фунция FindFirst не работает как я хочу, запускаю ее в таком виде:
 
Result := (FindFirst(sSearchPath + '*', faDirectory, srSearch) = 0);
 
Но она всегда возвращает истину, вне зависимости от того, существуют в ней подкаталоги или нет. Что не так делаю?

Всего записей: 3144 | Зарегистр. 29-09-2005 | Отправлено: 17:43 12-10-2007
nuker2015



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Про скрипты есть инфа на русском?  
Мне нужно узнать как в Дельфи можно получить данные с wap-сайтов? Тоесть программа должна просматривать wml страницы и брать с них текстовую информацию, с которой я уже более-менее могу програмно разобраться и сам. help!

Раз тебе рендеринг ненужен, то ничего сложного нет:
получаешь страницу wml любой библиотекой по http,
а wml можно разобрать DOM парсером так как он базируется на XML, возьми вот тут например:
 http://omnixml.com
 http://htmlp.sourceforge.net
Инфу по WML ищи тут: http://ru.wikipedia.org/wiki/WML на русском, или на w3c.org
 

Всего записей: 132 | Зарегистр. 26-10-2005 | Отправлено: 17:46 12-10-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz -- вероятно, функция FindFirst находит директории "." и "..".  

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 18:03 12-10-2007
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
И что теперь делать? Что использовать?

Всего записей: 3144 | Зарегистр. 29-09-2005 | Отправлено: 18:08 12-10-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz -- примерно так (програмеры поправят):

Код:
 
function ChkSubDirs(sInitDir:string):Boolean;
  var
   srSearch: TSearchRec;
   sSearchPath: string;
   res: integer;
  begin
    sSearchPath:= sInitDir+'\';
    Result:= False;
 
    res:= FindFirst(sSearchPath + '*', faDirectory, srSearch);
 
    while (res = 0) and
          ((srSearch.Name = '.') or
          (srSearch.Name = '..')) do
      res:= FindNext(srSearch);
 
    Result:= res = 0;
  end;  

 
 
Добавлено:
и вместо sSearchPath:= sInitDir+'\' уже рекомендовали использовать IncludeTrailingBackSlash или IncludeTrailingPathDelimiter

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 19:05 12-10-2007
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 3
ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru