Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 664
от 28.11.2006, 22:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 411, Экспертов: 63
В номере:Вопросов: 5, Ответов: 13


Вопрос № 63773: Доброго времени суток, друзья ! Я недавно программирую на Delphi. И наверное исходя из этого и столкнулся с проблемой. Работаю через ADO c базой Access. Значит есть программа у меня (!) (что-то типа телефоного справочника). В одной ее части я...
Вопрос № 63845: Уважаемые эксперты! Помогите, пожалуйста в следующем: Задача: создать дерево с Chekbox'ами (примерно как в инсталляторах). Галочки в чекбоксах будут расставлять пользователи и нужно также их ставить программно. При этом необходимо, чтобы при выб...
Вопрос № 63849: Здраствуйте уважаемые эксперты. Давно занимаюсь Delphi, но такой глюк ловлю впервые. Стояла 7 работала отлично, отчего то захотелось воткнуть 2005, воткнул, не понравилась, снес. у 7 пошли глюки, снес и ее, переставил 7 запускаю а там такой глюк...
Вопрос № 63855: Здравствуйте! Извените за откровенно ламерский вопрос. Я после учёбы долго ничего не писал, вот и появляются тупые вопросы. Получаю дату: var date:tdatetime; begin date:=time; //18:11:21 к примеру мне нужно прибавить...
Вопрос № 63901: Здравствуйте, эксперты!!! Помогите, пожалуйста, вот с такой задачкой. На шахматной доске заданы координаты двух полей. Нужно определить наименьшее количество шагов, за которое конь может попасть с одного поля на другое. Заранее спасибо, Д...

Вопрос № 63.773
Доброго времени суток, друзья !
Я недавно программирую на Delphi. И наверное исходя из этого и столкнулся с проблемой. Работаю через ADO c базой Access.
Значит есть программа у меня (!) (что-то типа телефоного справочника). В одной ее части я применяю программое сжатие БД используя JRO (CompactDatabase если точнее). Так вот, перед ее применением нужно ведь отключить БД (Листинг 1) ? Все равно ошибка : Операция не может быть выполнена ,т.к. БД открыта в монопольном режиме ..... и т.д. и т.п.
Хотя при отладке проверял вроде файлиk *.ldb , который появляется когда БД Access отрывается , исчезает в каталоге .....
Уважаемые эксперты подскажите что делаю не так ?
Или как нужно правильно ?

Приложение:

Отправлен: 22.11.2006, 22:16
Вопрос задал: Мединцев Василий (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Kotof!

В приложении вариант, который у меня работает.
Если будут проблемы - посмотрите, нет ли у Вас еще одного ADOConnection, которое подключено к той же базе.

Удачи!

P.S. (sBase - глобальная переменная - содержит полный путь к базе).

Приложение:

---------
Ответы на все вопросы - на сайте www.ya.ru

Ответ отправил: Устинов Сергей Евгеньевич (статус: Практикант)
Ответ отправлен: 22.11.2006, 23:38


Вопрос № 63.845
Уважаемые эксперты! Помогите, пожалуйста в следующем:
Задача: создать дерево с Chekbox'ами (примерно как в инсталляторах). Галочки в чекбоксах будут расставлять пользователи и нужно также их ставить программно. При этом необходимо, чтобы при выборе родительской ветви отмечались галочками и все дочерние узлы этой ветви и соответственно наоборот - при снятии галочки снимались и все дочерние. Мои попытки реализовать это (см. код) успехом не увенчались.

Приложение:

Отправлен: 23.11.2006, 12:16
Вопрос задал: Alexius1979 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Melamed
Здравствуйте, Alexius1979!
Воспользуйся компонентом TJvgCheckTreeView из библиотеки Jedi VCL. Сама библиотека имееет более 400 компонент. Скачать ее можно с http://sourceforge.net/projects/jvcl/
Ответ отправил: Melamed (статус: 8-ой класс)
Ответ отправлен: 23.11.2006, 12:46

Отвечает: PaVeL_Ekt
Здравствуйте, Alexius1979!

можно попробовать все сделать еще проще, через images
отрисовать 3 чекбокса нажатый, пустой и затемненный нажатый и при нажатии на ветвь просто менять imageindex на нужный !!!

если ветка не имеет Child объектов то только нажатый или отпущеный !!!
если имеет то делать проверку всех child-ов на предмет нажатия (по imageindex) определять !!!

мне кажется так будет проще !!!
---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 5-ый класс)
Ответ отправлен: 23.11.2006, 12:52


Вопрос № 63.849
Здраствуйте уважаемые эксперты.
Давно занимаюсь Delphi, но такой глюк ловлю впервые. Стояла 7 работала отлично, отчего то захотелось воткнуть 2005, воткнул, не понравилась, снес. у 7 пошли глюки, снес и ее, переставил 7 запускаю а там такой глюк, можно создавать только модули, dll и прочие прелести не имеющие формы. компонентов нет ни фига нет, понять не могу уже раз 5 переставил и бесполезно, мож у кого было такое или кто знает че за глюк?
Помогите пожалуйста, я без дельфей как без рук. На работе сижу за сервером, стоит 2003 server, народ работает в терминалке и как вы наверно уже поняли снести систему не представляется возможным.
Отправлен: 23.11.2006, 12:31
Вопрос задал: Кулаков Антон Сергеевич /SandroNec (статус: 3-ий класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: monah
Здравствуйте, Кулаков Антон Сергеевич /SandroNec!
Было такое... Справился удалив все файлы от Delphi в ручную. Кроме проектов, их в архиве сохранял. Потом чистка реестра Norton WinDoctor. Перезагрузка и установка Delphi. Помогло.
---------
festina lente
Ответ отправил: monah (статус: Студент)
Ответ отправлен: 23.11.2006, 12:41
Оценка за ответ: 5

Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Кулаков Антон Сергеевич /SandroNec!

Снесите Делфи
Откройте редактор реестра, [HKCU\software\borland\delphi] и [HKLM\software\borland\delphi] , в обоих ветках удалите папку 7.0 и можете ставить делфи заново - должно быть нормально, мне помогало
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 6-ой класс)
Ответ отправлен: 23.11.2006, 12:42
Оценка за ответ: 5

Отвечает: PaVeL_Ekt
Здравствуйте, Кулаков Антон Сергеевич /SandroNec!

нда модный глюк, у меня еще помимо чистки всего еще получилось реанимировать делфу посредством установки в др. директорию !!! (думал уже с финта все сносить !!!)
---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 5-ый класс)
Ответ отправлен: 23.11.2006, 12:44
Оценка за ответ: 4

Отвечает: KiberZero
Здравствуйте, Кулаков Антон Сергеевич /SandroNec!
Да, такое бывает, особенно если переустанавливаешь с верхней на нижнюю версиию без перезагрузки!Подобного типа глюки(они связаны с компонентами формы; при деинсталяции не удаляются из реестра некоторые компоненты Delphi) я встречал не раз.Бывает, что вообще ничего не помогает.Первая мысль,которая приходила - это переустановка системы.Оказалось она не причём.Всё дело в работе реестр.Короче - удаляете в ручную все файлы Delphi из установленной папки.Саму папку не удаляете!Затем выполняете деинсталяцию.Система выведет ошибку отсутствия файлов и спросит удалить запись или нет.Соглашаетесь.В результате этого удаляется информация о системных файлах программы из реестра в память компа.После этого нужно сделать перезагрузку.Всё готово,можете переустанавливать.Без перезагрузки файлы вновь будут занесены системой в реестр и ошибка будет повторяться.
Ответ отправил: KiberZero (статус: 2-ой класс)
Ответ отправлен: 23.11.2006, 16:15
Оценка за ответ: 5


Вопрос № 63.855
Здравствуйте!
Извените за откровенно ламерский вопрос. Я после учёбы долго ничего не писал, вот и появляются тупые вопросы.
Получаю дату:

var date:tdatetime;
begin
date:=time; //18:11:21 к примеру

мне нужно прибавить к этому времени 23 минуты и проверить с текущим временем. Вот как прибавить меня интересует. Сам придумал способ только через преобразование сначало к строковому типу, а потом к int. но хочется как-то по проще.
Заранее благодарю.
Отправлен: 23.11.2006, 13:15
Вопрос задал: Prowler (статус: 1-ый класс)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: monah
Здравствуйте, Prowler!
Тип TDateTime эвивалентен типу Real. Где дробнаЯ часть соответствует доли суток.
Значит 23 мин:=1/(23*60*24)

Приложение:

---------
festina lente

Ответ отправил: monah (статус: Студент)
Ответ отправлен: 23.11.2006, 13:25

Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Prowler!

Используйте функцию IncMinute из модуля DateUtils
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 6-ой класс)
Ответ отправлен: 23.11.2006, 13:26

Отвечает: Gh0stik
Здравствуйте, Prowler!

Воспользуйтесь функцией IncMinute.

Пример использования:

procedure TForm1.Button1Click(Sender: TObject);
var tm:TDateTime;
begin
tm:=IncMinute(GetTime(),23);
ShowMessage(TimeToStr(tm));
end;

---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Практикант)
Ответ отправлен: 23.11.2006, 13:33

Отвечает: Писарев, Павел, Юрьевич
Здравствуйте, Prowler!
В модуле DateUtils есть функции работы со временем в Delphi. Следующая функция выполняет данну задачу.

function IncXXXX (const AValue: TDateTime; const ANumberOfXXXX: Integer = 1): TDateTime;

где XXXX - Day, Hour, MilliSecond, Minute, Month, Second, Week, Year. Увеличивает указанную дату на нужное количество дней (часов, миллисекунд, минут, месяцев, секунд, недель, лет).
Ответ отправил: Писарев, Павел, Юрьевич (статус: 1-ый класс)
Ответ отправлен: 23.11.2006, 13:58

Отвечает: KiberZero
Здравствуйте, Prowler!
Можно складывать и сравнивать так:

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=FormatDateTime('hh:nn:ss',Time);
Edit2.Text:=TimeToStr(Time + StrToTime('0:23'));
end;
Ответ отправил: KiberZero (статус: 2-ой класс)
Ответ отправлен: 24.11.2006, 19:48


Вопрос № 63.901
Здравствуйте, эксперты!!!
Помогите, пожалуйста, вот с такой задачкой.
На шахматной доске заданы координаты двух полей. Нужно определить наименьшее количество шагов, за которое конь может попасть с одного поля на другое.
Заранее спасибо, Денис
Отправлен: 23.11.2006, 18:15
Вопрос задал: Гусев Денис (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Mexes
Здравствуйте, Гусев Денис!
Это вопрос скорее по алгоритму, а не по языку. Для большей теоретической подготовки рекомендую найти материалы по поиску в ширину (aka волновой алгоритм aka "заливка")

Приложение:

Ответ отправил: Mexes (статус: 5-ый класс)
Ответ отправлен: 25.11.2006, 13:49
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо за решение, с уважением, Денис


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное