Вопрос № 133384: Уважаемые программисты, памагите плз у миня такая ситуация: хачу сделать таг, чтоб на Edit1 отображалось время, делаю таг:
var
data: TDateTime;
begin
Edit1.Text := TimeToStr(Now);
end;
Но у меня время стоит, а что нада ...Вопрос № 133388: добрый день.
необходимо выполнить поиск(обход) в ширину. имеется "лабиринт".
лабиринт допустим нарисовать можно на draw- или stringgrid'e.
интерисует сам алгорим решения в таком случае. Может у кого есть исходники похожие... ...Вопрос № 133402: Здрасти, подскажите, как программно завершить один из запущенных процессов и удалить этот файл, зная только имя файла-процесса?...
Вопрос № 133.384
Уважаемые программисты, памагите плз у миня такая ситуация: хачу сделать таг, чтоб на Edit1 отображалось время, делаю таг:
var
data: TDateTime;
begin
Edit1.Text := TimeToStr(Now);
end;
Но у меня время стоит, а что нада прописать, чтоб оно шло так же как в трее.....отображение до секунды......памагите плиз.......очень прошу.
пожалуста, срочна нада
Отправлен: 21.04.2008, 16:13
Вопрос задал: Koffi (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Drbear
Здравствуйте, Koffi!
Попробуйте использовать TTimer с вкладки System, установив Interval, к примеру, на 1000 мс (1 сек). И повесить Ваш код на событие OnTimer. Например:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Edit1.Text := TimeToStr(Now);
end;
Время в Edit будет обновляться с периодичностью, установленной в свойстве Interval.
Запускать Timer можно или при проектировании, установив Enabled в True, или во время работы, например при открытии формы:
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Enabled := True;
end;
в этом случае желательно при проектированиии установить Enabled таймера в False.
Ответ отправил: Drbear (статус: 9-ый класс)
Ответ отправлен: 21.04.2008, 16:24 Оценка за ответ: 5
Вопрос № 133.388
добрый день.
необходимо выполнить поиск(обход) в ширину. имеется "лабиринт".
лабиринт допустим нарисовать можно на draw- или stringgrid'e.
интерисует сам алгорим решения в таком случае. Может у кого есть исходники похожие...
картинка с видом лабиринта http://i.piccy.kiev.ua/i2/18/3b/2299e92df281995ca47a61a77ccd.jpeg
Точнее, известно, что любой лабиринт проходится по часовой стрелке. Вот и весь алгоритм.
Поясню, как же это реализовать.
Возьмем матрицу 5*5.
Вы находитесь в ячейке 1.1.
Вы указываете направление скажем по ряду 1 сдвигаете влево в ячейку 1.2 - проверяете она "занята"(синяя) или "нет"(белая) если нет, идете дальше на 1.3 - занята смотрите 2.3.
----
За один шаг Вы смещаетесь только на одну ячейку причем не диагональную. т.е. +1 к любой из координат.
----
Если 2.3. свободна то следующий будет 2.4 потом 2.5 потом 3.5 и обратно до 3.1.
Если "уперлись" т.е. в матрице ходов по этой ячейке Вы уже ходили и "вокруг" стены - возвращаетесь и проверяете "ходы" влево вправо вверх вниз на каждой ступеньке "возврата". А все те ячейки с которых хода нет помещаете в матрицу "мертвые"(синии).
Примерно так. Но Вы не получите оптимальный вариант. Вы получите гарантированный "проход".
На самом деле лабиринт решается с помощью рекурсивной программы и построения деревьев решения.
ФУХ, как то запутанно я написал :(.
Попробую еще вариант пояснения - может он будет понятнее?
Вариант тот же с обходом по часовой стрелке.
1] Находите 1ое решение (при этом заполняете матрицу "мёртвых" ячеек - т.е. тупиков.
Вариант тот же с обходом против часовой стрелки.
2] Находите 2ое решение (при этом заполняете матрицу "мёртвых" (черных) ячеек 2 - т.е. тупиков.
У Вас получится ДВА решения из которых Вы сможете выбрать какое из них лучше (по количеству шагов).
ПОСЛЕ этого Вы можете программно "закрыть" какую нибудь из клеток и попробовать пропустить 1] и 2] алгоритм, при этом у Вас будет матрица "синих" и матрица "черных". И матрица "пробных" - т.е. те которые условно "мертвые".
Это не универсальный алгоритм, но решение найдете :).
P.S. На практике "движение" по часовой это увелечение Х до (макс), затем Y+1 и возврат Х (макс) к Х (мин).
--------- Пусть все будет хорошо! Давайте жить дружно! :) И будет жить еще лучше!
Ответ отправил: LanK (статус: Практикант)
Ответ отправлен: 23.04.2008, 16:35
Вопрос № 133.402
Здрасти, подскажите, как программно завершить один из запущенных процессов и удалить этот файл, зная только имя файла-процесса?
Пример с комментариями приведен в приложении. Имя процесса берется из поля ввода Edit1.
Не забудьте добавить в uses модули TLHELP32, PsAPI.
Прим.:
Если будет запущено два процесса с одинаковыми именами файлов, но разными путями, то удален, в итоге, будет только один из них, но завершены будут оба.
Удачи!
Приложение:
--------- Будь осторожен, когда молишься ради чего-то, потому что можешь это получить...
Ответ отправил: Denisss (статус: Профессионал) Россия, Москва ICQ: 281599577 ---- Ответ отправлен: 21.04.2008, 20:28 Оценка за ответ: 5 Комментарий оценки: пасиба!!