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

Интернет для Delphi-программиста


Информационный Канал Subscribe.Ru

Интернет для Delphi программиста.

Выпуск : № 18


Здравствуйте уважаемые подписчики рассылки "Интернет для Delphi программиста". Данная рассылка предназначена для всех кого интересует Delphi, здесь будут выкладываться ссылки на различные ресурсы интернета так или иначе связанные с Delphi: книги, исходники, программы... Изучайте Delphi один из лучших языков программирования!!!


ЗАДАТЬ ВОПРОС :

Правила рассылки: 
1. Не присылайте ответов на вопросы типа "да, нет".  
2. Если отвечаешь на вопрос - то отвечай подробно с примерами (желательно с исходником примера).
3. Тема вопросов - программирование на Delphi.
Внимание авторам: - Я не указываю ваши адреса из-за спама, но кто хочет, чтобы его email был - пишите, иначе только имя.
Отправить вопрос


Новые вопросы.


Вопрос № 23 задаёт: Костик Z Ответить
Здраствуйте! Я раньше баловался бейсиком, теперь перешёл на Дельфи. Конечно, вопрос откровенно чайниковский (я им не
являюсь!)...
У меня имеется программка из двух форм, причём вторая форма - основная. В её событии FormShow находится код:
Form1.ShowModal; (*Показывается вторая форма*) Form2.Hide (*Основная форма прячется*); В unit1 (первая форма) выполняются
действия, затем показывается основная форма (Form2.Show;) и скрывается текущая (Form1.Hide;). И всё это не работает, точнее
работает, но вылетает с ошибкой. Подскажте, как делать корректно. Спасибо!
Вопрос № 24 задаёт: Виктор Ответить
Всем всего доброго,
Не подскажете, как добавить свое поле в контекстное меню Проводника.
Делаю архиватор – и хотелось, чтобы была возможность архивации файлов как в Rar’e.
Вопрос № 25 задаёт: SOURCE Ответить
Как найти все ListBox - ы, имя которых начинается с "Channel_"
и удалить из них строку, значение которой равно строковой переменной S ?

********************************************************
Добро пожаловать на мою страничку http://sources.h11.ru/
********************************************************

Ответы.

Вопрос № 21 задаёт: Адександр Журавлёв Ответить
Здравствуйте. У меня такая проблема. Как сделать так, чтобы текст,
вводимый с Edit по нажатии кнопки находил в массивах соответствующие
ответы по ключевым словам и выводил эти ответы в Listbox или Memo?
Неплохо было бы привести пример.
Отвечает: Крези.ru
А очень просто,перебрать массив в цикле For/do или Repeat/until(но лучше For/do) на совпадение ключевого слова заданного в TEdit и вывода ответа в TListbox или TMemo.Массив должен сформирован или заполнен.Примера нет,потому что всё просто до нельзя.
Отвечает: Vadim
Удобнее для этих целей использовать базу данных.
Сам поиск в таблице был бы сведён всего в одну строку.
Например, данные представляют запись:
'Field1','Field2','Field3',
где
Field1 - Ключевое_поле1,
Field2 - Ключевое_поле2,
Field3 - Поле3_ответ;
-тогда поиск в таблице с такими записями по нажатию на кнопку
с занесением результата в Memo-поле мог бы выглядеть так:
procedure TMainForm.Button1Click(Sender: TObject);
begin
Memo1.Clear;
if Table1.Locate('Field1;Field2', VarArrayOf([Edit1.Text,Edit2.Text]),[loCaseInsensitive])
then Memo1.Lines.Add('Ответ: '+ Table1.FieldByName('Field3').AsString)
else Memo1.Lines.Add('Ответ не найден.');
end;
Вопрос № 22 задаёт: Ирина Ответить
Добрый день! Прошу помочь разобраться по работе с записями таблиц, баз данных.
Как переносить запись из одной БД в другую? Обработчик событий записей данных.
Если можно с примером и ссылкой , где можно почитать.
Отвечает: Vadim
Вопрос о копировании одной БД в другую достаточно индивидуален и зависит от того, насколько похожи их структуры. Не зная конкретную организацию таблиц, могу рассказать про общие идеи, используемые в подобных задачах:
  1. Поскольку подобный вопрос возникает обычно при необходимости перехода от одной СУБД к другой и после его решения сразу отпадает, то обработчик записи данных - это просто процедура нажатия некой клавиши, например Button1, которая контролируется Вами и ,при её успешном выполнении, используется один раз.
  2. Еще до перехода на новую СУБД перед программистом встаёт задача планирования структуры и создания пустой новой БД. При этом, если поля таблиц одной БД идентичны или очень похожи на поля таблиц другой БД, то процедура копирования не представляет особой сложности. В любом случае необходимо иметь в запасе копию новой пустой БД. 
  3. После того, как новая БД создана и обе БД подключены к тестовому приложению (удобно для копирования использовать новую независимую программку), которое создается отдельно для подобных целей, процедуру копирования можно разбить на несколько этапов. Сначала сделать процедуру для копирования данных из простейшей таблицы второстепенного значения. Затем из следующей таблицы и т.д. При копировании главных таблиц важно не упустить из внимания другие таблицы, связанные с ними ключевыми полями. Такие таблицы надо заполнять одновременно с главными.
  4. Создание процедуры копирования таблицы начинается с создания функции, которая позволяет скопировать всего одну (текущую) запись и возвращает True только в случае успеха. В этой функции используется проверка события любого исключения, произошедшего при вставке записи в новую БД, для сброса флага упеха. Контроль успеха операции позволяет применить или отменить транзакцию, а также остановить запись (для выяснения и устранения причин возникновения ошибки). Далее, в процедуре копирования таблицы делается установка на первую запись и в цикле с контролем конца таблицы вызывается функция копирования одной записи и смещение на следующую. При создании процедуры копирования главной таблицы, если она достаточно велика - имеет 1000 и более записей, можно сделать дополнительный цикл с копированием порциями, например по 20 записей и отображением состояния процесса на форме в ProgressBar или Gauge.
  5. После успешного копирования БД новая заполненная данными БД подключается в основную программу, а механизмы заполнения её таблиц копируются из тестовой.(Механизмы работы со старой БД и сама старая БД из основной программы удаляется.)
О мелких нюансах реализации  чтения/записи баз данных можно прочитать в любой литературе по Delphi, в которой есть раздел "Базы данных". Наиболее популярный автор такой литературы - А.Я.Архангельский.

 



Исходники http://mcgusto.info/progc.shtml?cprog/delphi.shtm

Сегодня представляю вам исходники с сайта http://mcgusto.info.
Иногда полезно посмотреть, как решают разные задачи другие люди, чтобы и самому научиться. Да по исходникам и учиться легче, так что качаем пока ссылки вроде не битые :))

Поиск в глубину
Реализация алгоритма поиска в графе, а именно поиска в глубину.
Скачать исходный код
Курсовая работа : Корзина

Курсовой проект по Объектно-Ориентированному Программированию. Задание звучит так:
"Разработка программы - утилизатора файлов. Функции: Формирование на диске каталога с файлами предназначеными для удаления, при необходимости восстановление файлов в исходные каталоги (аналогично Recycled Bin). Список файлов формируется за разными признаками: Имя, тип файла, дата и время создания/удаления."
Я добавил в программу возможность восстановления/удаления файлов из корзины по маске (имя, расширение, путь к файлу, дата создания/удаления), очистку корзины, восстановление всех удаленных файлов...
Оценка - естественно 5! :)

Скачать исходный код
Игра "Жизнь"

Эволюционная игра "Жизнь", придуманная Д.Конвеем , позволяет проследить увлекательную картину "эволюции" фигур на игровом поле, происходящую по законам, подобным законам эволюции в настоящих эхологических системах.
Суть "Жизни" очень проста, как и суть обычной человеческой жизни. На игровом поле располагается в некотором начальном порядке определенное количество фишек, которые задают начальные условия эволюционного процесса. Каждая ячейка игрового поля может находиться в двух состояниях - либо оставаться пустой, либо быть занятой фишкой. Игра состоит из "циклов жизни", или из последовательности дискретных шагов, с помощью которых имитируется смена поколений. Переход от предыдущего поколения к следующему происходит по определенным правилам, которые применяются одновременно ко всем клеткам доски.
Вашему вниманию предлагается запрограммированая мною игра "Жизнь". В моей версии программы есть возможность устанавливать параметры игрового поля, регулировать скорость процесса эволюции, следить за статистикой процесса эволюции (в том числе на графике популяций) а также сохранять и загружать сохраненные игры!

Скачать исходный код
Фракталы

Первый раз картину фрактала я увидел в журнале "Мой компютер", и сказал себе - "Я сделаю это!". Представляю мои первые три фрактала - "Дракон" Хартера-Хейтуэя, "Дерево" и "Треугольник Серпинского". Описаниями фракталов изобилует интернет. Получаются очень красивые картины. Любуйтесь, и ждите новых фракталов...

Скачать исходный код
Курсовая работа : Спуск с горы
Постановка задачи :
Дана пирамида из чисел :
a
b c
d e f
g h i j k
...
Спустится с вершины горы на первый ярус собрав минимальную сумму пройденного пути. Учитывая что идти можно в нижнее-левую или нижнее-правое число. Данные вводятся в файл inn.krs. В исходном коде прокоментирована каждая строка, так что будет легко в нем разобраться.
Курсовая работа по Теории алгоритмов.
Скачать исходный код
Скачать отчет по курсовой работе
Алгоритм Дейкстры
Программа реализации алгоритма Дейкстры - поиск минимального пути в неориентированом графе. Легкий но запутаный алгоритм. В программе реализована графическая интерпритация результата.
Лабораторная работа по Теории алгоритмов.
Скачать исходный код
Алгоритм Крускала
Программа реализации алгоритма поиска минимального остовного графа - алгоритма Крускала. Сложная, но выполнимая задача. Лично у меня ушло 5 часов на эту программу от начала до конца. Программа не просто расчитывает, но и рисует граф-задание, и граф-результат.
Лабораторная работа по Теории алгоритмов.
PS: В скором времени также будет доступен отчет по лабораторной работе.
Скачать исходный код
Ханойские башни + факториал
Программа реализует всем известный рекурсивный алгоритм. Есть три стержня, на одном из них лежит несколько дисков, которые нужно переставить на другой диск. Одновременно переставлять можно только 1 диск, и больший диск не может лежать на меньшем.
Плюс на второй форме - вторая часть лабораторной, тоже на рекурсию. Самый тривиальный пример - вычисление факториала.
Скачать исходный код
ASMEdit 2 - Редактор ассемблерных программ
Когда в университете пошел ассемблер, мне с самого начала он очень понравился. Не понравилось только то что писать программы приходилось на синем фоне стандартного редактора в FAR-е или в NC, также ненравилось что нужно каждый раз ручками прописывать tasm имя.файла , tlink имя.файла , Td имя.файла чтобы скомпилировать программу.После первой же лабы мне это порядком надоело. Сразу же родилась идея написать редактор, который не напрягал бы зрение, и выполнял компиляцию нажатием одной кнопки. Сказано - сделано. Представляю вам редактор который попросила скинуть ей на дискету преподаватель ассемблера в университете :) Любуйтесь, пользуйтесь, пишите что добавить/убрать.
Скачать исходный код
Coder - кодировщик файлов
Если не первая, то вторая по счету программа написаная мною на Delphi. Без литературы под рукой. Программа кодирует простейшим алгоритмом файлы, используя пароль. Возможно вы заметите что для достаточно простых вещей применялись достаточно сложные методы, но я делал как мог.
Скачать исходный код
Дихотомия
Программа расчета корня уравнения методом дихотомии (деления пополам). Весьма простая программа, но реализует непростой алгоритм. Лабораторная работа 1 семестра 2 курса, предмет - теория алгоритмов.
Сдана на 5.
Отчет по лабораторной работе прилагается!
Скачать исходный код
Сортировка
Программа реализует три алгоритма сортировки (вставками, пузырьком, выбором). Лабораторная работа 1 семестра 2 курса, предмет - теория алгоритмов.
Сдана на 5.
Отчет по лабораторной работе прилагается!
Скачать исходный код
Системы уравнений
Была написана мной, когда мы Delphi в университете еще не начали учить. Предполагалось что курсовая работа будет выполнена половиной группы - каждый человек сдаст по одному методу решения систем линейных уравнений. Я же писал интерфейс, куда все эти методы нужно было "пришить". Но такой метод сдачи курсовой носил несколько экспериментальный характер, и в итоге ничего не молучилось. Пришил я к интерфейсу только подпрограмму работы с графикой.
Курсовая работа 1 курса.
Отчет по курсовой работе прилагается!
Скачать исходный код
INI -файлы
Лабораторная работа 19.04.2004 на использование невизуальных компонентов и работе с ini-файлами. Работу я сделал просто по тому что было скучно. Как только выдали задание, я сразу же сдал ASMEdit как пример работы с ini файлами, написаный на досуге :) Учитесь!
Скачать исходный код
Сортировка Шелла
Программа реализует алгоритм сортировки Шелла. Достаточно легкая программа. Оценка - 5 :) Курсовая работа по теории алгоритмов.
Скачать исходный код
База данных студентов.
База данных (студент, № зачётки) , с сохранением/загрузкой из файла, добавлением/удалением студента, поиском по одному из признаков...
Лабораторная работа на потоки (Класс TStream) , работу с файлами, StringGrid -ом.
Скачать исходный код
Лабораторные работы на Delphi
Лабораторная работа 3.
Одна из первых лабораторных работ по Delphi. Учим Shape, Group и Radio Box-ы , CheckBox-ы и Radiobutton.
Скачать исходный код
Лабораторная работа 4.
Учим События, Statusbar.
Скачать исходный код
Лабораторная работа 5.
Опять же события, предки потомки на форме. Скучная лабораторная работа.
Скачать исходный код
Лабораторная работа 6.
Очень веселая лабораторная работа. Учим Shape, MainMenu, Popupmenu и Panel.
Скачать исходный код
Лабораторная работа 7.
Веселая лабораторная работа - создание текстового редактора. Кстати, стала шаблоном при написании ASMEdit-а.
Скачать исходный код
Лабораторная работа 8.
Работа в три строчки. Изучаем Timer, Shape.
Скачать исходный код
Лабораторная работа 9.
Работа по изучению многооконных (MDI) приложений.
Скачать исходный код
Лабораторная работа 10.
Учимся вводить из edit в массив числа. + незначительные мат. действия с ними
Скачать исходный код
Лабораторная работа 11.
Работа с массивами и StringGrid-ом. Вариант:6.
Скачать исходный код
Лабораторная работа 11.
Вариант:7. Работа с массивами и StringGrid-ом.
Скачать исходный код
Лабораторная работа 14.
Изучаем фреймы и перегруженные подпрограммы.
Скачать исходный код
Лабораторная работа 15.
Лабораторная работа на создание и использование DLL . Вызов функции из DLL по имени, индексу, псевдониму.
Скачать исходный код
Лабораторная работа 16.
Лабораторная работа на невизуальный компонент application (application.exename, path и т. д.).
Скачать исходный код
Лабораторная работа 17.
Лабораторная работа на использование технологии Drag-n-Drop.
Скачать исходный код
Индивидуальные работы на Delphi

     Индивидуальные работы 1 семестра II курса.

     Все задания на индивидуальные работы звучали примерно одинаково - "Создать класс для ..." , "методы класса - ...". Так что в описании я буду писать какой класс создавался, его методы, и поля - как было указано в задании. Своими вариантами со мной с радостью поделились мои одногрупники.

1 Вариант.
Работа с комплексными числами. Класс - комплексное число. Методы - прибавление, отнимание, умножение комплексных чисел. Поля - действительная и мнимая часть комплексного числа.
Индивидуальная работа 1 семестра 2 курса.
Скачать исходный код
2 Вариант.
Это моя индивидуалка. Действия с дробями. Класс - десятичная дробь. Методы класса - прибавление, отнимание, умножение, деление десятичных дробей. Поля класса - целая и дробная часть числа.
Индивидуальная работа 1 семестра 2 курса.
Отчет по индивидуальной работе прилагается!
Скачать исходный код
3 Вариант.
Класс - натуральная дробь. Методы класса - прибавление, отнимание, умножение, деление натуральных дробей. Поля класса - числитель и знаменатель дроби.
Индивидуальная работа 1 семестра 2 курса.
Скачать исходный код
5 Вариант.
Класс - строка символов. Методы класса - Расчет длины, и кол-ва слов. Поля класса - Строка, длина строки, кол-во слов в строке.
Индивидуальная работа 1 семестра 2 курса.
Скачать исходный код
6 Вариант.
Класс - прямая линия. Методы - расчет своего центра и длины. Поля класса - координаты начала, конца, центра и длина.
Индивидуальная работа 1 семестра 2 курса.
Отчет по индивидуальной работе прилагается!
Скачать исходный код
9 Вариант.
Класс - окружность. Методы - расчет длины окружности и ее площади. Поля класса - координаты центра, радиус, длина, площадь окружности.
Индивидуальная работа 1 семестра 2 курса.
Скачать исходный код
10 Вариант.
Класс - квадратное уравнение. Методы - расчет корней уравнения. Поля - корни уравнения, коэфициенты a,b,c .
Индивидуальная работа 1 семестра 2 курса.
Скачать исходный код
11 Вариант.
Класс - шар. Методы - расчет площади, и объема шара. Поля - координаты центра (x,y,z) , радиус шара.
Индивидуальная работа 1 семестра 2 курса.
Скачать исходный код
12 Вариант.
Класс - конус. Методы - расчет площади, и объема конуса. Поля - радиус основания, высота конуса.
Индивидуальная работа 1 семестра 2 курса.
Скачать исходный код
13 Вариант.
Класс - паралелепипед. Методы - расчет площади поверхности и объема паралелепипеда. Поля - рёбра a,b,c , площадь и объем.
Индивидуальная работа 1 семестра 2 курса.
Скачать исходный код
16 Вариант
Класс - шахматная фигура Ферзь. Методы - ходьба по шахматной доске. Поля - координаты на шахматной доске, путь к файлу с графическим изображением.
Индивидуальная работа 1 семестра 2 курса.
Скачать исходный код

Немного юмора:  :))

Приходит программист в библиотеку и говорит:
- Позовите мне архивариуса! Мне надо его спросить!
- Я его отправил в архив. Могу я вам помочь?
- Разархивируйте его, он мне срочно нужен!


Сидит как то программист, налаживает свою пятилетнюю работу,
обложился справочниками, документацией, неделю сидит - ни фига не
получается. Мужик уже похудел весь, зарос щетиной... Тут входит в
комнату его мама и говорит ему с горечью в голосе:
- Hу что, все играешь???


Умом Россию не понять - с умом она не совместима!


Поступило предложение педерачу "Дом 2" переименовать в "Doom 2" и всех их там...


Дружественная рассылка:

Рассылки Subscribe.Ru
Программирование на Delphi.
Всё о Delphi


Если вы встретили в интернете интересный сайт или статью, да и вообще, что угодно связанное с Delphi, поделитесь ссылкой.
Если можете написать статью связанную с Delphi - присылайте с радостью выложу.
Давайте поможем друг другу!  Архив рассылки.

Предложения, критику и пожелания пишите на e-mail.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiinternet
Отписаться

В избранное