Сайту требуются администраторы и авторы статей. С предложениями пишите на rock-n-roll@tut.by.
13 февраля 2008

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

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

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

Далее »

Категория Контролы, Базы данных, Интерфейс, Delphi | 0 CommentsВерсия для печати Версия для печати

15 июня 2007

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

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

10 июня 2007

Компоненты ADO

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

Далее »

Категория Контролы, Базы данных, Delphi | 0 CommentsВерсия для печати Версия для печати

10 июня 2007

Цветной DBGrid

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

22 мая 2007

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

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

Категория Контролы, Базы данных, Delphi | 0 CommentsВерсия для печати Версия для печати

20 мая 2007

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

У 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 | 0 CommentsВерсия для печати Версия для печати

Друзья

  • Рубрики

  • Разное
  • Прочее