Eh. Il componente sqlite3 di lazarus si appoggia sul package sqlite di freepascal. Questo package contiene tutti e due i wrapper per sqlite (versione "liscia" e versione 3). Nel package, se si utilizza la versione 3, viene incluso il file sqlite3.inc che contiene il link dinamico a sqlite3.dll:
const
{$IFDEF WINDOWS}
Sqlite3Lib = 'sqlite3.dll';
{$else}
Sqlite3Lib = 'libsqlite3.'+sharedsuffix;
{$endif}
Ergo, probabilmente a forza di tentativi andati male ti si è incasinato Lazarus. Potrebbe essere utile disinstallarlo e reinstallarlo da zero :)
EDIT: hai ripristinato la copia di backup di Lazarus prima di provare ad installare sqlite3laz?
dbedit4??
UN editor dataware?
Non serve, devi lanciare il comando dal dataset, non da query.
Altrimenti il codice lo devi cambiare in :
QLQuery1.SQL.text:='DELETE FROM Student WHERE StudentID='+dbedit4.Field.asString+';';
(Il codice l'ho scritto a memoria)
Nell'esempio da te citato:
Canvas.TextOut(LEFTMARGIN, YPos, Memo1.Lines.Text);
dovrebbe fare quello che ti serve
ho cercato sul forum ufficiale ed ho trovato questo thread
http://www.lazarus.freepascal.org/index.php?topic=8599.0 (http://www.lazarus.freepascal.org/index.php?topic=8599.0)
sembra che il codice qui sotto funzioni a dovere
procedure PrintTStrings(Lst : TStrings) ;
var
I,
//Line : Integer;
begin
I := 0;
//Line := 0 ;
Printer.BeginDoc ;
for I := 0 to Lst.Count - 1 do begin
Printer.Canvas.TextOut(0, Line, Lst);
{Font.Height is calculated as -Font.Size * 72 / Font.PixelsPerInch which returns
a negative number. So Abs() is applied to the Height to make it a non-negative
value}
Line := Line + Abs(Printer.Canvas.TextHeight('I'));
if (Line >= Printer.PageHeight) then
Printer.NewPage;
end;
Printer.EndDoc;
end;
Per ZeosLib
// Uses ZAbstractDataset, ZAbstractRODataset;
procedure TForm.DBGrid1TitleClick(Column: TColumn);
var
target: TZAbstractDataSet;
begin
target := TZAbstractDataSet(TDBGrid(Column.Grid).DataSource.DataSet);
if target.SortedFields <> Column.FieldName then
begin
target.SortedFields := Column.FieldName;
target.SortType := stAscending;
end
else
begin
case target.SortType of
stAscending:
begin
target.SortType := stDescending;
end;
stDescending:
begin
target.SortType := stIgnored;
end;
stIgnored:
begin
target.SortType := stAscending;
end;
end;
end;
end;