четверг, 21 апреля 2011 г.

Выборка записей по году. Lazarus+SQLite

Частенько спрашивают как выбрать записи по году (т.е. указав только год) в Lazarus+SQLite.
Отвечаю - вот так:

            with SQLQuery1 do
            begin
            Close;
            SQL.Clear;
            SQL.Add('select tDate,tRemark from Table1 where tDate BETWEEN '+QuotedStr(cbxYear.Text +'-01-01')+'AND '+QuotedStr(cbxYear.Text +'-12-31')+';');   //у меня в таблице формат даты ГГГГ-ММ-ДД! потому так и ищу!
            Open;
            end;

Вот бинарник примера:
date_bin.zip
И исходник:
date_src.zip

понедельник, 18 апреля 2011 г.

HP 1018: муар справа от напечатанных символов

Итак, очередная проблема и ее победа.
Имеем лазерный принтер HP 1018
И проблему:
Словами это можно описать так - "смещение(муар,двоение) части напечатанного символа(изображения,буквы) вправо.
Читать подробнее в моем блоге по ремонту принтеров

воскресенье, 17 апреля 2011 г.

Узнать количество записей в фильтрованном Dataset в Lazarus.

procedure TFmMain.Button1Click(Sender: TObject);
var
cnt: Integer;
bmk: TBookmark;
begin
inherited;
DbGrid1.DataSource.DataSet.DisableControls; // Это - датасет грида
cnt := 0;
bmk := DbGrid1.DataSource.DataSet.GetBookmark; // Запомнили позицию
try // Считаем
DbGrid1.DataSource.DataSet.First;
while not FmMain.ListKvit.DataSource.DataSet.Eof do
begin
Inc(cnt);
DbGrid1.DataSource.DataSet.Next;
end;
DbGrid1.DataSource.DataSet.GotoBookmark(bmk); // Вернулись
finally
DbGrid1.DataSource.DataSet.FreeBookmark(bmk);
DbGrid1.DataSource.DataSet.EnableControls;
end;
ShowMessage('Всего записей = ' + IntToStr(cnt));
end;