Различные простые и
не очень простые программы. (Иногда - халява.)
Master
Программа для заполнения счет-фактур, платежных поручений, накладных.
(Коммерческая)
Arhivarius
Программа для ведения архива. (сделана специально для администраций).
(Коммерческая)
Audience
Программа для ведения учета обратившихся за аудиенцией. (сделана
специально для администраций). (Коммерческая)
HozBook
Программа для ведения похозяйственной книги. Учет проживающих,
выдача справок, куча всяких отчетов и выборок. Например выборка
по количеству избирателей или пенсионеров. Сколько человек положено
на подселение в военное время и т.д. (Коммерческая)
MainBook
Главная книга (бухгалтерия). Оборотная ведомость, шахматная ведомость,
карточка счета, главная книга (сама форма).(Коммерческая)
Не бойтесь присылать исходники (если конечно программа
не коммерческая). От ошибок никто не застрахован, а если тыкнут носом,
то тоже хорошо. Лучше знать свои ошибки, чем думать что программа совершенна.
У профессоров их полно и они об ошибках своих знают, просто их исправлять
иногда некогда. (Имеются ввиду ошибки которые не влияют на функциональность,
а только на скорость работы программы.) Даже если кажется, что программа
сделана через заднюю ногу, присылайте - будем разбираться на ваших ошибках.
Чайники будут рады найти все ошибки и их исправить. Ведь иначе как стать
Мастером.
Сплошная математика.
Odd(X) - Нечетное число. (Выдается результат - истина или ложь)
X mod Y - результат - остаток деления X на Y
X div Y - результат деления - целое число
X and Y - истина, если X и Y - истина
X or Y - истина, если X или Y - истина
X hor Y - истина, если (или X или Y) - истина, но только один. (Либо X,
либо Y)
Операции отношения используются при сравнении двух операндов. Они возвращают
true - истина, если указанное соотношение операндов выполняется, и false
- ложь, если соотношение не выполняется. Определены следующие операции
отношения:
Операнды должны иметь совместимые типы, за исключением типов realи integer,
которые могут сравниваться друг с другом.
Строки сравниваются по расширенным кодам множества символов ASCII. Символьный
тип трактуется как строка единичной длины. Упакованные строки можно сравнивать
друг с другом только при одинаковом числе символов. Если упакованная строка
из n символов сравнивается с типом string, то она трактуется как строка
длиной n.
Операции <, >, <= и >= можно применять к операндам PChar
только если оба указателя указывают на один и тот же массив символов.
Операции = и <> могут применяться к операндам типа классов и ссылок
на классы. В этом случае для классов C = D вернет true, только если C
и D указывают на один и тот же объект класса. Применительно к ссылкам
на классы C = D вернет true, только если C и D указывают на один и тот
же класс. Аналогичные правила действуют и при операндах типа указателей.
Различная вкуснятина
If (N = 2) or (N = 4) or (N = ?) = If N in [2,4,?]
Label1.Show = Label1.Visible := True
Label1.Hide = Label1.Visible := False
If Key = 13 Then//KeyDown
SelectNext(screen.ActiveControl, True, True)//переходит как при
нажатии Tab SystemParametersInfo(spi_SetDeskWallPaper,0,0,0); //Читает из реестра рабочий стол(заодно очищает всякие несанкционированные
записи на нем) Form1.Brush.Style := bsClear;//невидимая форма
Form1.BorderStyle := bsNone //перетаскиваем за что угодно
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(Handle,WM_SYSCOMMAND, $F012,0);
end; //круглая форма
procedure TForm3.FormCreate(Sender: TObject);
var
formrgn:hrgn;
begin {очищаем форму}
form3.brush.style:=bsclear; {делаем форму круглой}
GetWindowRgn(form3.Handle, formRgn);
DeleteObject(formRgn);
formrgn:=
CreateroundRectRgn(0,
0,form3.width,form3.width,form3.width,form3.width);
SetWindowRgn(form3.Handle, formrgn, TRUE);
end; //Показывает все файлы определенной маски и заполняет им листбокс
procedure TForm1.Button1Click(Sender: TObject);
var
s : String;
begin
s:='c:\windows\*.bmp'#0;
ListBox1.Perform(LB_DIR, DDL_READWRITE, Longint(@s[1]));
end; //Обратились не важно к какому объекту
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if ActiveControl is TEdit then
(ActiveControl as TEdit).OnExit(ActiveControl);
end; //Поиск и замена в текстовом редакторе (Винворд) Причем данные дожны
быть OleVariant
WordApplication1.Selection.Find.ExecuteOld(F,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam
,R,EmptyParam); //Путь в коренную папку программы
ExtractFilePath(Application.ExeName) //Определяет высокосный год
Case StrToInt (Copy (DateRez,4,2)) Of
1,3,5,7,8,10,12: DateRez := '31' + Copy (DateRez,3,8);
4,6,9,11: DateRez := '30' + Copy (DateRez,3,8);
2: If (StrToInt (Copy (DateRez,7,4)) mod 4) = 0 Then
DateRez := '29' + Copy (DateRez,3,8)
else
DateRez := '28' + Copy (DateRez,3,8) //Позиционирует курсор SQL
DM1.QPlanSchet.Locate('Number',Edit1.Text,[loCaseInsensitive,loPartialKey])
var
FormRgn:HRGN;
I : Integer;
hTaskBar : THandle;
S : TStringList;
begin
S := TStringList.Create;
Воспользоваться функцией PackTable из rxLib. Для перегенерации индексов:
Table1.Exclusive := True;
Table1.Open;
Check(dbiRegenIndexes(Table1.Handle);
Скрываем прогу от Ctrl+Tab
//Далее я добавил новую переменную
var EStyle : integer; begin Application.Initialize;
//Далее идет установка невидимости приложения
EStyle:=GetWindowLong(application.Handle,GWL_EXSTYLE);
SetWindowLong(Application.Handle, GWL_EXSTYLE, EStyle or WS_EX_TOOLWINDOW);
//Остальное не менять и не забыть добавить в Uses - Windows
Application.CreateForm(TForm1, Form1);
//Ну и так далее
Application.Run;
end.
//Делаю задержку в 100 мс.
h:=CreateEvent(nil, true, false, ''); WaitForSingleObject(h, 100); CloseHandle(h)