Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

begin

 Label1.Caption := TEdit(Sender).Name;

end;

end.
 

Включение ComboBox в TDBGrid

Delphi 1 

Вот основные шаги чтобы сделать это:

1. Создавайте и рисуйте TComboBox (CB) при получении ввода ячейки необходимой колонки табличной сетки

2. Получайте текущее значение поля (если имеется) и помещайте его в CB

3. После всех манипуляций, поместите

новое значение обратно в поле

4. Избавляемся от CB 

DBLookupComboBox 

Предустановка DBLookupComboBox

Delphi 1 

Вы можете редактировать ваш источник данных. Говорят, вы хотите сохранить ваши lookuping-данные из таблицы customer в таблицу sales – 'Cust No'? Вы можете просто проинициализировать поля (задать значение по умолчанию), редактируя таблицу sales «Cust No»

with tbSales do begin

 Edit;

 FieldByName('Cust No').AsInteger := 1;

 Post;

end;
 

Сортировка DBLookupComboBox по вторичному индексу

Delphi 1 

Одним из способов вывести выши данные в другом порядке сортировки является использование TQuery и включение в SQL-запрос ключевого слова «order by». После чего вы можете установить этот запрос как DataSource в вашем DBLookupComboBox.

ПРИМЕР:

Если у вас имеется таблица Customer, содержащая «Customer_No» и «Customer_Name», и индексированная по Customer_No, то ваш запрос должен содержать в редакторе списка строк (свойство SQL) для вашего TQuery следующую строку:

select Customer_No, Customer_Name from Customer

 order by Customer_Name

Значение DBLookupComboBox

Я думаю что у меня есть то, что вы хотите. Если вы обратитесь к свойству LookUpValue, то вы получите поле, которое .... ищете.

Я надеюсь что помог вам.

unit clookup;

interface

uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, DBLookup;

type

 TDBJustLookupCombo = class(TDBLookupCombo)

 private

{ Private declarations }

 protected

{ Protected declarations }

function GetLValue: TField;

 public

{ Public declarations }

property LookUpValue: TField read GetLValue;

 published

{ Published declarations }

 end;

 TDBJustLookupList = class(TDBLookupList)

 private

{ Private declarations }

 protected

{ Protected declarations }

function GetLValue: TField;

 public

{ Public declarations }

property LookUpValue: TField read GetLValue;

 published

{ Published declarations }

 end;

procedure Register;

implementation

procedure Register;

begin

 RegisterComponents('Data Controls', [TDBJustLookupList, TDBJustLookupCombo]);

end;

function TDBJustLookupCombo.GetLValue: TField;

begin

 Result := LookupSource.DataSet.FieldByName(LookUpField);

end;

function TDBJustLookupList.GetLValue: TField;

begin

 Result := LookupSource.DataSet.FieldByName(LookUpField);

end;

end.
 

DBMemo 

Копирование

содержимого DBMemo в DBMemo другого поля

Delphi 1 

Попробуй:

DBMemo6.Lines:=DBMemo5.Lines.Assign;

Поиск текста в DBMemo

Delphi 1

Попробуйте так:

"Подключите" следующую процедуру к событию OnFind для FindDialog. Единственная проблема заключается в том, что в DBMemo я не могу получить выделенный текст, тем не менее в стандартном Memo такой проблемы нет.

procedure TMainForm.FindDialog1Find(Sender: TObject);

var

 Buff, P, FT : PChar;

 BuffLen : Word;

begin

 With Sender as TFindDialog do begin

GetMem(FT, Length(FindText) + 1);

StrPCopy(FT, FindText);

BuffLen:= DBMemo1.GetTextLen + 1;

Поделиться с друзьями: