Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
21st
Фев
Компилятор домашнего приготовления. Часть 2
Ветер… У вас тоже на улице ветерок? Возможно, он принесет дождь, по крайней мере, разгонит эту изнурительную жару. Но пока этого не случится, людям стоит спрятаться от палящих лучей солнца в помещения с кондиционером и холодильником, в котором охлаждается квасок или живое пиво. Ну, а пока это счастье свежеет от фреонного холода, есть время продолжить разработку своего компилятора…
21st
Layered в windows. Использование слоев
Многие профессионалы и новички в программировании под Windows задаются вопросом, как создавать окна необычной формы с использованием различных эффектов, таких как тени, к примеру. Такие окна часто можно встретить в виде виджетов/дополнений на рабочем столе Windows 7/Vista или же заставки при запуске приложений – к примеру, Photoshop (все мы помним то перышко, выходящее за границу прямоугольника). Также имеет смысл создавать подобные окна с полноценными элементами управления: данная технология позволяет форматировать вывод окна попиксельно, то есть можно настроить прозрачность и цвет любого пикселя окна вашего приложения – разве не здорово?
20th
Фев
Беспроводная сеть масштаба микрорайона. Часть 2
В первой части нашего материала уже было сказано, что в качестве основной операционной системы для серверов сети была выбрана платформа Windows. Почему не Linux или, например, FreeBSD? Закономерный вопрос, причин такого выбора несколько…
20th
Маленькие помощники программиста. Часть 2
Часто самой большой проблемой программиста становится сохранение проекта в целости и сохранности. Как не допустить уничтожения проекта в процессе работы и создать сайт для любого браузера – об этом вы узнаете в статье «Маленькие помощники программиста».
Алексей Шишкин
by AlexCones http://flsoft.ru
В этой части нашего «путешествия» по обстановке программиста будущего я бы хотел рассказать о таком важном слове, как бекап*, и о моем «уголке веб-девелопера».
(англ) BackUp – резервная копия
Итак, начнем с бекапов, как самого важного в жизни программистов. Да, вы не ослышались, это важнее, чем знать в совершенстве какой-либо язык программирования, ибо, если дать двум программистам, новичку и профессионалу, в руки среду разработки и дать инструмент бекапа только в руки новичка, при повреждении данных именно он выйдет победителем. Итак, начнем. Для начала нам понадобится OpenSource** программа 7zip и Delphi-образная (к примеру, Lazarus) среда разработки.
- Для начала создадим на жестком диске папку, куда будем складывать наши бекапы (см. рисунок 1):
Рис. 1. Создаем директорию*** для копий
- Определившись с папкой, загружаем утилиту 7z http://www.7-zip.org
- Устанавливаем ее в папку по вашему усмот- рению. Отныне я буду называть ее %7ZFolder%, а папку, которую мы создали для хранения бекапов, – %CopyFolder%.
- Теперь зайдем в %7ZFolder% и создадим там *.txt файл следующего содержания:
7z.exe a %DATE%.7z D:\Finder
Move %DATE%.7z D:\Copy\Finder\
Cd D:\Copy\Finder
Renamer %DATE%.7zГде, в данном случае: D:\Finder – папка проекта, который мы будем бекапить, D:\Copy\Finder – %CopyFolder%.
- Переименовываем этот файл в *.bat
- Но что же значит загадочный Renamer? Его созданием мы сейчас и займемся.
- Открываем среду разработки и, создав Console Application, пишем:
Program Renamer;
Uses Windows, SysUtils;
Var
Name1, Name2,S : String;
I : Integer;
Begin
Name1 := ParamStr(1);
S := Name1;
Name2 := »;
While Pos(‘\’,S)<>0 Do Begin
Name2 := Name2 + S[1];
Delete(S,1,1);
End;
For I := 1 to Length(S) — 2 Do
Name2 := Name2 + S[I];
Name2 := Name2 + TimeToStr(Time) + S[Length(S)-2] +
S[Length(S)-1] + S[Length(S)];
For I := 1 To Length(Name2) Do
If Name2[I] = ‘:’ Then Name2[I] := ‘.’;
RenameFile(Name1, Name2)
end.Думаю, не надо пояснять, что делает этот код. Компилируем его и отправляем Renamer.exe в %CopeFolder%.
* Комментарий автора.
С открытым исходным кодом, распространяющаяся по лицензии
GNU GPL.* Комментарий автора.
Имена для папок желательно выбирать короткими и без кириллицы: будет меньше проблем с *.bat файлом. - Вернемся к нашей основной мысли: как же нам запустить все это вместе? Создадим новый проект (как и прошлый, он будет Console Application). Обратите внимание, что в обоих случаях строк {$ Console Application} НЕ БУДЕТ. Сделано это для того, чтобы консоль не мозолила нам глаза:
program Watcher;
uses ShellAPI, Windows;
Var
Look : Boolean = FALSE;
Gotcha : Boolean = FALSE;
Hand : Integer;
Begin
While True Do Begin
(* Search for Lazarus *)
Hand := 0;
Hand := FindWindow(‘Window’, ‘Lazarus IDE v0.9.28.2 бета — Finder.lpi’);
Gotcha := (Hand <> 0);
If (Look) And Not(Gotcha) Then Begin
ShellExecute(0,‘Open’,‘D:\Programs\7-Zip\Arc.bat’, Nil, Nil, SW_HIDE);
Look := FALSE;
End
Else If Not(Look) And (Gotcha) Then Look := TRUE;
Sleep(10 * 1000);
End
End.Разумеется, следует заменить директории в коде на свои. Обратите внимание, что я использовал для поиска заголовок и класс окна лазаруса, так как свой проект я создаю в нем. Замените их на класс и заголовок окна своей среды разработки.
- Итак, мы почти пришли, осталось поместить ярлык на эту программу в папку ПУСК ? Все программы ? Автозагрузка, и дело сделано. Теперь достаточно перезагрузить компьютер или вручную запустить Watcher.exe, и система начнет работать. Как же она работает? Очень просто:
Watcher раз в 10 секунд ищет заголовок и класс среды разработки с открытым проектом для бекапа:
- если она найдена, флаг Gotcha будет >0;
- продолжаем следить за процессом, и если окно не будет найдено, действуем;
- запускается bat файл Arc.bat;
- он бекапит папку с проектом и дает ей имя сегодняшней даты;
- затем он отправляет его Renamer`у, который переименовывает его согласно дате и времени.
Результат наших действий (см. рисунок 2):
Рис. 2. Часть бекапов в папке после часа работы (чтобы уменьшить их количество, измените число после Sleep в большую сторону)
Итак, мы научились бекапить свои проекты, и теперь перебои электричества и повреждения жесткого диска нам не страшны. Только не забывайте хотя бы изредка сбрасывать свои бекапы на съемный диск или CD/DVD.
Перейдем ко второй части нашего рассказа
ведь я еще обещал рассказать про свой «уголок» веб-девелопера… Понадобилось мне как-то сваять в блокноте сайт для одного из своих проектов. Разумеется, я обладал некоторыми основами сайтостроения, но, разумеется, я (как и большинство веб-девелоперов) не знал заранее, как сайт будет выглядеть во всех браузерах.
И сейчас расскажу, как я избавился от этой проблемы.
Для создания этого древнего заклинания нам потребуется:
- артефакт «Флеш карта» размером от 1 Гб; доступ в Интернет на 15-20 минут;
- Delphi-образная среда разработки;
- 10 минут приготовлений.
Итак, переходим на сайт http://torwald.ru/72 и выкачиваем ВСЕ браузеры, которые видим. По очереди запускаем инсталляторы и устанавливаем их на флешку. Некоторые из браузеров даже не потребуют установки – их просто копируем.
Далее пробуем воссоздать такую схему (см.рисунок 3):
Рис. 3. Папки с программами
Теперь, когда мы все это установили, объединим все это одним заклинани- ем, чтобы не утруждать себя чтением древних свитков каждые пять минут:
Uses ShellAPI, Windows;
Var
FileName : String;
CurDir : String;
F : TextFile;
Begin
FileName := ParamStr(1);
CurDir := ‘H:\WEB’;
AssignFile(F, CurDir + ‘\Run.bat’);
Rewrite(F);
WriteLn(F, CurDir + ‘\InternetExplorer-6\ie6.exe ‘ +FileName);
WriteLn(F, CurDir + ‘\InternetExplorer-7\ie7.exe ‘ +FileName);
WriteLn(F, CurDir + ‘\InternetExplorer-8\ie8.exe ‘ +FileName);
WriteLn(F, CurDir + ‘\Chrome-4.0\Chrome.exe ‘ + FileName);
WriteLn(F, CurDir + ‘\Safari-3.2\safari.exe ‘ + FileName);
WriteLn(F, CurDir + ‘\Firefox-2\firefox2.exe ‘ + FileName);
WriteLn(F, CurDir + ‘\Firefox-3\firefox3.exe ‘ + FileName);
WriteLn(F, ‘pause’);
CloseFile(F);
ShellExecute(HWND(0), ‘Open’, PChar(‘Run.bat’), »,
PChar(‘H:\WEB’), SW_SHOWNORMAL);
End.
Вместо H:\ следует подставить букву диска своей флешкарты. Поместим эту программу в папку WEB на флешкарте и создадим ярлык на ней, который поместим в директорию C:\Documents and settings\%Username%\SendTo. Не забудьте переименовать ярлык в WEB test.lnk
Все, заклинание готово! Запускать его будем так: клик правой кнопкой на HTML\HTM документ, который необходимо проверить, и выбираем ОТПРАВИТЬ – WEB test. Документ откроется по очереди в разных браузерах, и вы сможете увидеть, как он выглядит у пользователей.
Заключение
При разработке использовалась среда разработки – Lazarus 0.9.28 и блокнот. Дело шло, как ни странно, под «окошками».
Итак, мы научились сохранять свои проекты в условиях глобальных катаклизмов и создавать сайты для каждого браузера. Это лишь часть знаний, которые помогут вам в жизни, но надеюсь, что когда-нибудь они вам пригодятся.
Удачи!
Ссылки
- 7zip архиватор http://www.7-zip.org
- Portable версии браузеров http://torwald.ru/72
- Скачать среду разработки Lazarus http://www.lazarus.freepascal.org
Статья из седьмого выпуска журнала «ПРОграммист».
Обсудить на форуме — Маленькие помощники программиста. Часть 2
20th
Может-ли ПО работать быстрее или взгляд изнутри
В наше время повсеместно используются компьютеры. Современный человек просто не представляет свою жизнь без компьютера. На сегодняшний день программные и технические средства ЭВМ развиваются очень быстро. Увеличивается скорость выполнения операций. В связи с этим многие пользователи и начинающие программисты считают, что с помощью современного компьютера можно «в лоб» решить любые задачи и, к сожалению, не задумываются, что при решении многих задач можно сэкономить как компьютерные, так и временные ресурсы. Конечно, при написании простых обывательских программ эти вопросы не актуальны. Но, когда речь заходит о таких серьезных отраслях как: криптография, архитектура, дизайнерские и графические приложения, то эти вопросы становятся очень актуальными и важными. Ведь при реализации этих приложений нужно проводить сложные математические вычисления. Важно, чтобы эти вычисления проходили быстро, так как таких вычислений нужно проводить очень много за малый промежуток времени. А в связи с этим важно, чтобы эти вычисления были реализованы оптимальным и экономичным способом.
18th
Фев
История одного лексического анализатора
В данной статье будет рассмотрено самостоятельное построение лексического анализатора (далее ЛА). В нем нуждаются как начинающие программисты (желая получить больше свободы и писать так, как вздумается), так и опытные (с целью поддержки собственных API, создания скриптов)…
26th
Ноя
Восьмой выпуск журнала «ПРОграммист»
Сегодня, во всемирный день информации, мы рады представить Восьмой выпуск журнала «ПРОграммист». (читать всё…)
12th
Окт
О сайте нашего Журнала [ПРОграммист] …
Осмелюсь завести отдельную тему о жизни сайта нашего с Вами журнала [ПРОграммист].
Облако меток
css реестр ассемблер timer SaveToFile ShellExecute программы массив советы word MySQL SQL ListView pos random компоненты дата LoadFromFile form база данных сеть html php RichEdit indy строки Win Api tstringlist Image мысли макросы Edit ListBox office C/C++ memo графика StringGrid canvas поиск файл Pascal форма Файлы интернет Microsoft Office Excel excel winapi журнал ПРОграммист DelphiКупить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)