Вопрос № 56060: Уважаемые эксперты, помогите...
Есть в SQL таблице два поля (тип datetime) имеют напрмер вот такой вид: 10.09.2006 10:05:56
ну и второе поле к примеру 20.09.2006 10:10:56
Как узнать разницу времени между этими датами???????
...Вопрос № 56061: Доброго времени суток, господа эксперты!
Заранее прошу извинить меня за глупый вопрос)))
Предположим, в OnTimer примерно такая конструкция:
s:=’Text Text Text’;
inc(i);
if i<=Length(s) then
Memo1.Text:=Memo1.Text+...Вопрос № 56123: Уважаемые,эксперты.
Помогите решить проблему.Есть дерево папок:папка "А0",в ней 20 подпапок "Б0"-"Б19",в каждой по 30 подпапок "В0"-"В29", а в каждой по 28 подпапок "Д0"-"Д27" ...Вопрос № 56129: Как уменьшить размер exe-файла такого приложения, т.е. чтоб переписать на WinApi не используя Comobj, ActiveX, Variants.
Почему-то достаточно даже объявить переменную типа Variant в программе и начинает подключатся модуль Variants (без указания в...Вопрос № 56150: Ситуация такова:
Во время работы программы создаются пользователем компоненты Tshape.
как приписать им события на onclick,onmousedown etc.
у меня же по завершении работы события:showmessage возникает ошибка:
First chance exceptio...Вопрос № 56180:
сБЮФЮЕЛШЕ ЩЙЯОЕПРШ. оНЛНЦХРЕ ПЕЬХРЭ ОПНАКЕЛС. еЯРЭ ДЕПЕБН ОЮОНЙ: ю0 -> а0...а29 -> б0...б18 -> ц0...ц26, Ю СФЕ Б ОНДОЮОЙЮУ ц КЕФЮР ТЮИКШ РХОЮ *.cmt. йЮЙ ЯПЕДЯРБЮЛХ Delphi ХКХ WinAPI ХГ Delphi ЯЙНОХПНБЮРЭ БЯЕ ЩРХ ТЮИКШ Б НДМС ОЮОЙС МЮ ДП...Вопрос № 56182: Добрый день, уважаемые!
У меня вопрос по компонентам JEDI. Собственно установка проходит замечательно, Delphi ( у меня 2005-я ) запускается, все работает. Но потом начинается самое интересное - с каждым разом на запуск Delphi уходит все больше и ...
Вопрос № 56.060
Уважаемые эксперты, помогите...
Есть в SQL таблице два поля (тип datetime) имеют напрмер вот такой вид: 10.09.2006 10:05:56
ну и второе поле к примеру 20.09.2006 10:10:56
Как узнать разницу времени между этими датами???????
Пробовал на пустом проекте создавать две Label и вычитать их между собой получаеться результат: 09.01.1900 0:05:00
т.е. время то правильно вычитаеться вроде, а откуда береться 09.01.1900 ???
Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Пепеляев Александр Павлович!
Дело в том, что исчисление дат начинается с 31.12.1899.
Разницу между датами, временем можно узнать с помощью функций модуля DateUtils - DaysBetween, MonthsBetween, др.
Отвечает: sir henry
Здравствуйте, Пепеляев Александр Павлович!
Разницу между датами-временем можно вычислить обычным вычитанием:
Var
dt1: TDateTime;
dt2: TDateTime;
dt3: TDateTime;
Begin
dt3:=dt1-dt2;
{Далее можно либо преобразовать в строку для просмотра}
Label1.Caption:=DateTimeToStr(dt3);
{Либо декодировать дату-время на отдельные составляющие для дальнейшей обработки}
DecodeDateTime(const AValue: TDateTime; out AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word);
{Здесь каждая составляющая - год, месяц, день, час, минута, секунда - представлена поотдельности}
End;
Тип TDateTime - это число с запятой посередине. Левая часть числа (до запятой) это дата, а правая часть (после запятой) - это время. Таким образом если взять число 0,0 то это будет 30.12.1899 12:00, полдень. Эта дата и время соответствует нулю.
Если разницу между датами нужно получить в днях, то используйте специальную функцию из модуля DateUtils - ВфныИуецуут(), если в месяцах, то MonthsBetween(), если в часах, то HoursBetween() и т.д. Для каждой составляющей даты-времени есть специальная функция вычисления разницы между двумя датами.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 20.09.2006, 11:14
Вопрос № 56.061
Доброго времени суток, господа эксперты!
Заранее прошу извинить меня за глупый вопрос)))
Предположим, в OnTimer примерно такая конструкция:
s:=’Text Text Text’;
inc(i);
if i<=Length(s) then
Memo1.Text:=Memo1.Text+s[i];
Собственно, вопрос в том, как заставить двигаться курсор за текстом?
Отправлен: 20.09.2006, 10:39
Вопрос задал: UnRe@l (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 6)
Отвечает: n0name
Здравствуйте, UnRe@l!
if i<=Length(s) then
begin
Memo1.Text:=Memo1.Text+s[i];
inc(Memo1.CaretPos.X)
end;
Ответ отправил: n0name (статус: 6-ой класс)
Ответ отправлен: 20.09.2006, 10:46
Вопрос № 56.123
Уважаемые,эксперты.
Помогите решить проблему.Есть дерево папок:папка "А0",в ней 20 подпапок "Б0"-"Б19",в каждой по 30 подпапок "В0"-"В29", а в каждой по 28 подпапок "Д0"-"Д27" с файлами типа *.uni.Можно ли средствами Delphi (или WinAPI из Delphi) скопировать все файлы типа *.uni из подпапок "Д0"-"Д27" в одну папку на др.диске?Причем,имена папок написаны какие латиницей,а какие кириллицей,что исключает применение DOS-функций типа XCOPY или
COPY.Спасибо.
Отправлен: 20.09.2006, 20:57
Вопрос задал: Alexela (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Lev
Здравствуйте, Alexela!
for i := 0 to 20 do
for j := 0 to 30 do
for k := 0 to 28 do begin
SrcDir := Format('A0Б%dВ%dД%d', [i,j,k]);
Далее в цикле определяем имена файлов, пользуясь функциями API, FindFirstFile,
FindNextFile, FindClose, и для каждого найденного файла используем функцию
API CopyFile
end;
Ответ отправил: Lev (статус: 1-ый класс)
Ответ отправлен: 20.09.2006, 22:56
Отвечает: Савенко Вадим Иванович
Здравствуйте, Alexela!
Используйте SHFileOperation. Примеры использования можете посмотреть здесь:
http://www.megalib.com/books/478/544.htm
Еще можете воспользоваться компонентами JEDI, в частности JvSHFileOperation.
Ответ отправил: Савенко Вадим Иванович (статус: Студент)
Ответ отправлен: 21.09.2006, 06:45
Вопрос № 56.129
Как уменьшить размер exe-файла такого приложения, т.е. чтоб переписать на WinApi не используя Comobj, ActiveX, Variants.
Почему-то достаточно даже объявить переменную типа Variant в программе и начинает подключатся модуль Variants (без указания в uses), а с ним SysUtils и т.д (Среда Delphi7, да и в Delphi6 аналогично).
Отвечает: sir henry
Здравствуйте, Данилевич Игорь Владимирович!
Смотря какую программу Вы будете писать. В некоторых без ComObj и не обойтись. :)
Для того чтобы написать махонькую программку, надо полностью исключить использование VCL. А чтобы не терять необходимые объекты и прочие полезности, можно использовать модуль KOL (http://bonanzas.rinet.ru), в котором большинство нужных объектов переписаны без наворотов (диалоговые окна, списки и т.д.)
Кроме того, Вы можете создавать свои паскалевские модули, которые вытягивают необходимые Вам функции из DLL операционной системы. Это не так удобно как KOL, но тоже приводит к значительному сокращению размера программы. Но этот путь потребует от Вас внимательного и вдумчивого изучения MSDN.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 21.09.2006, 08:00 Оценка за ответ: 5 Комментарий оценки: Напишите в минифорум: какие еще знаете библиотеки для уменьшения размеров готового приложения.
Например, http://www.lenininc.com/
Вопрос № 56.150
Ситуация такова:
Во время работы программы создаются пользователем компоненты Tshape.
как приписать им события на onclick,onmousedown etc.
у меня же по завершении работы события:showmessage возникает ошибка:
First chance exception at $7C81EB33. Exception class EAccessViolation with message 'Access violation at address 00000000. Read of address 00000000'. Process Paths.exe (1924)
В чем ошибка?Подскажите пожалуйста.
Приложение:
Отправлен: 21.09.2006, 01:25
Вопрос задал: _Lexxus_ (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: sir henry
Здравствуйте, _Lexxus_!
Для начала Вы должны создать саму процедуру, в которой происходит обработка события. Например:
Procedure ShapeOnClick(Sender: TObject);
Begin
{Шырым-бырым}
End;
Далее, после создания самого объекта, свойству OnClick нужно присвоить эту процедуру:
MyShape:=TShape.Create(Form1);
...
MyShape.OnClick:=ShapeOnClick;
Вот, в принципе, и все. Теперь, когда Вы по фигурке кликните мышкой, будет запускаться процедура ShapeOnClick.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 21.09.2006, 08:29 Оценка за ответ: 2
Отправлен: 21.09.2006, 09:40
Вопрос задал: Alexela (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: mvp
Здравствуйте, Alexela!
Приблизительно так как в приложении. Легко переделать под универсальность (если количество узлов будет меняться.
P. S. Надеюсь, что если и сделал ошибки, то идею Вы поняли
Приложение:
--------- Моя совесть чиста - не бывшая в употреблении
Ответ отправил: mvp (статус: Студент)
Ответ отправлен: 21.09.2006, 13:50
Вопрос № 56.182
Добрый день, уважаемые!
У меня вопрос по компонентам JEDI. Собственно установка проходит замечательно, Delphi ( у меня 2005-я ) запускается, все работает. Но потом начинается самое интересное - с каждым разом на запуск Delphi уходит все больше и больше времени. Для интереса один раз засек время - ждал 29 минут (!).Причем загрузка все время останавливается на строке "Loading package JvDBD9D.bpl".Далее, запускаю инсталлятор JVCLSetup.exe ,выбираю опцию "Compile already installed packages/Update IDE",и все начинается
сначала. Первый запуск проходит быстро, потом с каждым разом все дольше и дольше. BPL-файлы джедаевские находятся в папке
"C:Documents and SettingsАдминистраторМои документыBorland Studio ProjectsBPL". Может быть кто-нибудь сталкивался с такой проблемой? Как ее решить?
Отвечает: Н.В.
Здравствуйте, Савенко Вадим Иванович!
Delphi 2005 - очень ненадёжная и неотлаженная версия. Под неё почти никто не пишет компоненты и не настраивает уже написанные.
Сейчас уже вышла Delphi 2006, которая является самой надёжной из всех уже существующих Delphi.
Попробуйте поставить Delphi 2006 + JEDI или Delphi 7 + JEDI. На Delphi 7 всё будет гарантированно работать. Я не думаю, что Вы используете какие-то возможности 2005-ой версии, которых нет в седьмой.
Статью о Delphi 2006 можно прочитать здесь: http://forum.vingrad.ru/index.php?s=f854bba20d3bdb3383b9d8d21489da7a&showtopic=75381&view=all
Удачи!
--------- http://TheDelphi.Ru
Ответ отправил: Н.В. (статус: 5-ый класс)
Ответ отправлен: 21.09.2006, 10:03 Оценка за ответ: 5
Отвечает: sir henry
Здравствуйте, Савенко Вадим Иванович!
Я с таким не сталкивался, но лучше вместо D2005 поставить D2006. Я с D2005 немного повозился, а потом плюнул и снес - сильно много глюков. Вдобавок к D2005 Борланд выпустил уже 2 сервис пака на 100 МБ. По-моему это говорит не в пользу этого мастодонта. :) А вот D2006 вроде нормально работает. По крайней мере ничего из ряда вон выходящего я пока там не заметил.
И еще. Лучше всего исходники и компоненты устанавливать в каталоги без русских букв и без пробелов в имени. Иногда бывают глюки из-за этого.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 21.09.2006, 11:04 Оценка за ответ: 5