Sites of the week

ads ads ads ads

Вывод Hint для ячейки DBGrid

Posted by admin | Delphi, Базы данных, Интерфейс, Контролы | Среда 13 Февраль 2008 01:01

 Как вывести Hint для ячейки DBGrid

Создайте на форме DataSource1, Table1, DataSource2, Table2, DBGrid1. Table1 и Table2 свяжите со своей базой данных. DataSource1 и DataSource2 свяжите соответственно с Table1 и Table2. DBGrid1 свяжите с DataSource1 Table2 и DataSource2 нужны для доступа к какой-нибудь ячейке. Другой способ без их использования: при отрисовке значений ячеек (соответствующее событие), необходимо запомнить значения всех ячеек, находящихся на экране и производить выбор среди них.

далее...

Delphi: Поиск и замена текста в TMemo или RichEdit

Posted by admin | Delphi, Контролы | Пятница 15 Июнь 2007 11:38

 Данный пример реализует диалог поиска и замены текста в компоненте 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;

Компоненты ADO

Posted by admin | Delphi, Базы данных, Контролы | Воскресенье 10 Июнь 2007 14:12

В Delphi 5.0 появились компоненты для работы с Microsoft® ActiveX® Data Objects (далее ADO). ADO это технология стандартного обращения к реляционным данным от Microsoft. Эта технология аналогична BDE по назначению и довольно близка по возможностям.

далее...

Цветной DBGrid

Posted by admin | Delphi, Базы данных, Контролы | Воскресенье 10 Июнь 2007 12:33

Данный пример иллюстрирует как стредствами 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;

Drag and Drop между DBGrid (Delphi)

Posted by admin | Delphi, Базы данных, Контролы | Вторник 22 Май 2007 05:37

Данный пример демонстрирует создание проекта с использованием компонента на основе DBGrid, реализующего drag and drop между полями двумя полями. далее...

Выбранные записи DBGrid

Posted by admin | Delphi, Базы данных, Контролы | Воскресенье 20 Май 2007 18:26

У 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 ))

Страница 1 из 11