13
февраля
2008

Создайте на форме DataSource1, Table1, DataSource2, Table2, DBGrid1. Table1 и Table2 свяжите со своей базой данных. DataSource1 и DataSource2 свяжите соответственно с Table1 и Table2. DBGrid1 свяжите с DataSource1 Table2 и DataSource2 нужны для доступа к какой-нибудь ячейке. Другой способ без их использования: при отрисовке значений ячеек (соответствующее событие), необходимо запомнить значения всех ячеек, находящихся на экране и производить выбор среди них.
Далее »
Категория Контролы, Базы данных, Интерфейс, Delphi |
Версия для печати
15
июня
2007
Данный пример реализует диалог поиска и замены текста в компоненте TMemo. Пример можно легко переделать под RichEdit.
procedure TMainForm.FindItemClick(Sender: TObject);
begin
FPos:=Memo.SelStart;
FindDialog.FindText:=Memo.SelText;
FindDialog.Position:=Point(MainForm.Left+(MainForm.Width div 3),MainForm.Top);
FindDialog.Options:=FindDialog.Options+[frHideUpDown,frHideWholeWord];
FindDialog.Execute;
end;
procedure TMainForm.FindDialogFind(Sender: TObject);
begin
if frMatchCase in FindDialog.Options then
Memo.SelStart:=Pos(FindDialog.FindText,
Copy(Memo.Lines.Text,FPos+1,
Length(Memo.Lines.Text)))+FPos-1
else
Memo.SelStart:=Pos(AnsiLowerCase(FindDialog.FindText),
AnsiLowerCase(Copy(Memo.Lines.Text,FPos+1,
Length(Memo.Lines.Text))))+FPos-1;
if Memo.SelStart>=FPos then
begin
Memo.SelLength:=Length(FindDialog.FindText);
FPos:=Memo.SelStart+Memo.SelLength+1;
end
else
if Application.MessageBox(PChar('Текст "'+FindDialog.FindText+
'" не найден. Продолжить поиск?'),'Сообщение',
mb_YesNo or mb_IconQuestion)<>mrYes
then FindDialog.CloseDialog;
Memo.SetFocus;
end;
procedure TMainForm.ReplaceItemClick(Sender: TObject);
begin
FPos:=Memo.SelStart;
ReplaceDialog.FindText:=Memo.SelText;
ReplaceDialog.Position:=Point(MainForm.Left+(MainForm.Width div 3),MainForm.Top);
ReplaceDialog.Options:=FindDialog.Options+
[frHideUpDown,frHideWholeWord];
ReplaceDialog.Execute;
end;
procedure TMainForm.ReplaceDialogFind(Sender: TObject);
begin
if frMatchCase in ReplaceDialog.Options then
Memo.SelStart:=Pos(ReplaceDialog.FindText,
Copy(Memo.Lines.Text,FPos+1,
Length(Memo.Lines.Text)))+FPos-1
else
Memo.SelStart:=Pos(AnsiLowerCase(ReplaceDialog.FindText),
AnsiLowerCase(Copy(Memo.Lines.Text,FPos+1,
Length(Memo.Lines.Text))))+FPos-1;
if Memo.SelStart>=FPos then
begin
Memo.SelLength:=Length(ReplaceDialog.FindText);
FPos:=Memo.SelStart+RichEdit.SelLength+1;
end
else
if Application.MessageBox(PChar('Текст "'+ReplaceDialog.FindText+
'" не найден. Продолжить поиск?'),'Сообщение',
mb_YesNo or mb_IconQuestion)<>mrYes
then ReplaceDialog.CloseDialog;
Memo.SetFocus;
end;
procedure TMainForm.ReplaceDialogReplace(Sender: TObject);
begin
if Memo.SelText<>'' then
Memo.SelText:=ReplaceDialog.ReplaceText;
if frReplaceAll in ReplaceDialog.Options then
ReplaceDialogFind(Self);
end;
Категория Контролы, Delphi |
Версия для печати
15
июня
2007
Данный пример создает .fbd файл (база данных Firebird) средствами Delphi
IBDatabase1.DatabaseName := ChangeFileExt(Application.ExeName, '.fdb');
IBDatabase1.Params.Add('USER ''SYSDBA''');
IBDatabase1.Params.Add('PASSWORD ''masterkey''');
IBDatabase1.Params.Add('PAGE_SIZE 4096');
IBDatabase1.Params.Add('DEFAULT CHARACTER SET WIN1250');
IBDatabase1.CreateDatabase;
Категория Базы данных, Delphi |
Версия для печати
10
июня
2007
В Delphi 5.0 появились компоненты для работы с Microsoft® ActiveX® Data Objects (далее ADO). ADO это технология стандартного обращения к реляционным данным от Microsoft. Эта технология аналогична BDE по назначению и довольно близка по возможностям.
Далее »
Категория Контролы, Базы данных, Delphi |
Версия для печати
10
июня
2007
Данный пример иллюстрирует как стредствами Borland Delphi создать DBGrid с цвеными ячейками.
// Функция раскрашивания DBGrid (объявлена как private)
procedure TForm1.ColorGrid(dbgIn: TDBGrid; qryIn: TQuery; const Rect: TRect;
DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
iValue: LongInt;
begin
// color only the first field
if (DataCol = 0) then
begin
//Проверяем значение поля и присваеваем цвет
iValue := qryIn.FieldByName(′HINWEIS_COLOR′).AsInteger;
case iValue of
1: dbgIn.Canvas.Brush.Color := clGreen;
2: dbgIn.Canvas.Brush.Color := clLime;
3: dbgIn.Canvas.Brush.Color := clYellow;
4: dbgIn.Canvas.Brush.Color := clRed;
end;
dbgIn.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
ColorGrid(DBGrid1, Query1, Rect, DataCol, Column, State);
end;
Категория Контролы, Базы данных, Delphi |
Версия для печати
7
июня
2007
Данные пример показывает как программно создать базу MS ACCESS (mdb-файл) на Delphi.
uses
ComObj;
// You can with ADOX (Microsoft ADO Extensions for DDL and Security),
function CreateAccessDatabase(FileName: string): string;
var
cat: OLEVariant;
begin
Result := '';
try
cat := CreateOleObject('ADOX.Catalog');
cat.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FileName + ';');
cat := NULL;
except
on e: Exception do Result := e.message;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CreateAccessDatabase('c:\Testdb.mdb');
end;
Категория Базы данных, Delphi |
Версия для печати
22
мая
2007
Данный пример демонстрирует создание проекта с использованием компонента на основе DBGrid, реализующего drag and drop между полями двумя полями. Далее »
Категория Контролы, Базы данных, Delphi |
Версия для печати
20
мая
2007
Нижеследующая функция Locate может оказаться весьма полезной (конечно, она не может предложить вам глобальную функциональность типа чуствительность к регистрам, использование индексов, закладок, но все же...).
Далее »
Категория Базы данных, Delphi |
Версия для печати
20
мая
2007
У DBGrid есть свойство SelectedRows : TBookMarkList;
TBookMarkList - объект , котоpый хpанит список боокмаpок.
Доступ к выбpаным стpокам чеpез этот объект , чеpез свойство Items, но Item'ы почему-то типа TBookMarkStr (String) , а не TBookMark (Pointer), почему так сделано я никак понять не могу. Для обхождения выбpанных стpок бежишь по списку и вызываешь Table1.GotoBookMark(Pointer(Grid.SelectedRows.Items ))
Категория Контролы, Базы данных, Delphi |
Версия для печати