Приглашаються авторы статей для сотрудничества с сайтом. Подробности о том как добавить свою статью на сервер читайте здесь
На сайте Delphi Coding собрано большое количество статей, книг и различной компьютерной документации. В рассылке вы сможете увидеть последнии поступления на сайте, а также более подробно ознакомиться с некоторыми материалами.
Пример WinApi программирования от Dem@nXP. Рассмотрены основы "минимального приложения": создание формы, кнопок, поля ввода, метки, меню, таймера. Всё сопроваждено прекрасными комментариями.
Очень часто нужно иметь возможность внутри программы перетаскивать объекты из одного компонента в другой. Например, нужно перетаскивать строки между двумя ListBox.ами. Задача несложная, но нудная, особенно если решать ее по всем правилам с правильными курсорами.
Не всегда удобно читать и писать файлы стандартными методами. Часто приходится загружать файл в память и только потом использовать его, что отнимает очень много времени. А как хорошо было бы работать с фалом сразу же без загрузки, как с памятью! Ось же умеет делать это. Классический пример такой работы - файл подкачки, с которым система
работает как с оперативной памятью. Однако некоторые программисты не используют функции отображения файлов в паимяти из-за их "сложности". Этот компонент максимально упрощает задачу.
EhLib 3.6 содержит компоненты и классы для Borland Delphi 4-9 и C++ Builder 4-6, направлена на расширение возможностей клиентской части программы базы данных, при взаимодействии пользователя с приложением
TDBGridhEh TDBGridEh поддерживает всю функциональность TDBGrid'а и добавляет новые возможности
TPrintDBGridEh TPrintDBGridEh предназначена для предварительного просмотра и печати компоненты TDBGridEh:
TDBLookupComboboxEh TDBLookupComboboxEh обеспечивает всю функциональность стандартного компонента TDBLookupCombobox и добавляет несколько новых возможностей
TDBEditEh TDBEditEh предназначена для редактирования строковых значений или значений полей базы данных.
TDBDateTimeEditEh TDBDateTimeEditEh предназначена для редактирования даты или времени или значений полей базы данных.
TDBComboBoxEh TDBComboBoxEh компонента это строка ввода с выпадающим прокручиваемым списком значений подключенным к нему. Пользователь может выбирать значения из списка или ввести текст вручную.
TDBNumberEditEh TDBNumberEditEh предназначена для редактирования числовых значений или значений полей базы данных.
TDBSumList Компонента предназначена для подсчета сумм и количества записей в TDataSet'е с динамическим отслеживанием изменений.
TPreviewBox Позволяет создавать настраиваемое окно предварительного просмотра.
TPrinterPreview (no visual object) Позволяет записывать необходимые для печати данные в буфер для последующего вывода их на принтер или на экран.
TPropStorageEh Реализует технологию для сохранения свойств компонент в хранилище свойств таких как ini файлы, реестр и т.д.
Текст выглядит лучше, если он выровнен по двух
краям. Для этого пробелы в каждой строке нужно удлинять или укорачивать так, чтобы все строки имели одну длину.
Здесь создана процедура GetLine, которая возвращает одну строку, начиная с заданного символа. Программа находит разницу между шириной текста и реальной длинной строки и при выводе компенсирует эту разницу удлинением пробелов.
Эта программа выводит на экран текст из файла C:\text.txt, выравнивая его по двум краям.
Листинг 1. Выравниваниетекста
type
...
TLine=record
s:string;
wrap:boolean;
length:integer; end;
var
Form1:TForm1;
implementation
{$R*.DFM}
const
FileName='C:\text.txt';
var
s:string;
bm:TBitMap;
LineH:integer;
MaxTextWidth:integer;
procedureTForm1.FormCreate(Sender:TObject); var
F:TFileStream;
buf:array[0..127]ofchar;
l:integer; begin
ScrollBar1.Kind:=sbVertical;
bm:=TBitMap.Create; withbm.Canvas.Fontdobegin
Name:='Serif';
Size:=12; end;
LineH:=bm.Canvas.TextHeight('123');
functionRealTextWidth(s:string):integer; var
i:integer; begin
result:=bm.Canvas.TextWidth(s); fori:=1toLength(s)do ifs[i]=#9then
inc(result,40-bm.Canvas.TextWidth(#9)); end;
На этом позвольте проститься с Вами и пожелать удачи. Свои замечания и предложения отправляйте на е-майл, указанный ниже.
С уважением, Виталий (NoilTeam@gmail.com)