Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Здесь есть возможность читать онлайн «Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Советы по Delphi. Версия 1.4.3 от 1.1.2001: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Советы по Delphi. Версия 1.4.3 от 1.1.2001»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Советы по Delphi. Версия 1.4.3 от 1.1.2001», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

[skipped]

if IsSequenced then begin

SINew.nMin := 1;

SINew.nPage := Self.VisibleRowCount;

SINew.nMax := RecordCount + SINew.nPage -1;

ifState in[dsInactive, dsBrowse, dsEdit] thenSINew.nPos := RecNo; // else keep old pos

end else begin

SINew.nMin := 0;

SINew.nPage := 0;

SINew.nMax := 4;

ifBOF thenSINew.nPos := 0

else ifEOF thenSINew.nPos := 4

elseSINew.nPos := 2;

end;

[skipped]

unitdbtables;

functionTBDEDataSet.IsSequenced: Boolean;

begin

Result := (FRecNoStatus = rnParadox) and( notFiltered);

end;

То есть, к примеру, все будет работать «красиво» на таблицах BDE, если они:

• таблицы Paradox;

• на них не установлен фильтр.

TClientDataSetв режиме single-tier (briefcase) также работает «красиво».

Изменение месторасположение колонок в TDBGrid

Delphi 1

Var

i: Integer;

fName: string;

…………

{ Определение изменения месторасположения колонок }

…………

with dbgrid1.datasource.dataset asttable do

for i := 0 toindexdefs.count – 1 do begin

fName := DBGrid1.Fields[0].FieldName;

ifcopy(indexdefs[i].fields, 1, length(fname)) = fname thenIndexName := IndexDefs[i].Name

end;

Решение проблемы передачи фокуса TDBGrid

В данном документе содержится решение проблемы невозможности получения DBGrid-ом фокуса после щелчка на каком-либо элементе управления родительской формы, в то время, как DBGrid находится на ее дочерней MDI-форме.

Относится ко всем версиям Delphi.

Очевидно, DBGrid имеет некоторые проблемы с управлением фокусом, если он находится на дочерней MDI-форме. Эта проблема решена в приведенном ниже наследнике TDBGrid, в котором обрабатываются мышиные сообщения и выясняется когда фокус должен быть передан сетке. Наследник создан в виде компонента, который легко устанавливается в Палитру Компонентов. Примечание: код адаптирован для всех версий Delphi. Проблемы могут быть в Delphi 2 и 3, если вы забудете заменить устаревшие в этих версиях модули "winprocs" и "wintypes" на "windows."

unitFixedDBGrid;

interface

usesWinprocs,wintypes, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids;

typeTFixedDBGrid = class(TDBGrid)

private

{ Private declarations }

protected

{ Protected declarations }

public

{ Public declarations }

procedureWMRButtonDown( var Message: TWMRButtonDown); messageWM_RBUTTONDOWN;

procedureWMLButtonDown( var Message: TWMLButtonDown); messageWM_LBUTTONDOWN;

published

{ Published declarations }

end;

procedure Register;

implementation

procedureTFixedDBGrid.WMRButtonDown( var Message: TWMRButtonDown);

begin

winprocs.SetFocus(handle); {помните, что winprocs относится только к Delphi 1!}

inherited;

end;

procedureTFixedDBGrid.WMLButtonDown( var Message: TWMLButtonDown);

begin

winprocs.SetFocus(handle); {помните, что winprocs относится только к Delphi 1!}

inherited;

end;

proceduretfixeddbgrid.wmlbuttondown( var Message: twmlbuttondown);

begin

winprocs.SetFocus(handle); {помните, что winprocs относится только к Delphi 1!}

inherited;

end;

procedure Register;

begin

RegisterComponents('Samples', [TFixedDBGrid]);

end;

end.

Как отучить TDBGrid от автодобавления новой записи?

Добавьте в обработчик события вашего TTable «BeforeInsert» следующую строку:

procedureTForm1.Tbable1BeforeInsert(DataSet: TDataset);

begin

Abort; ← эту строчку

end;

Осуществляем перехват нажатия клавиши и проверку на конец файла (end-of-file):

procedureTForm8.DBGrid1KeyDown(Sender: TObject; varKey: Word; Shift: TShiftState);

begin

if(Key = VK_DOWN) then begin

TTable1.DisableControls;

TTable1Next;

ifTTable1.EOF thenKey := 0

elseTTable1.Prior;

TTable1.EnableControls;

end;

end;

Две таблицы в одном TDBGrid

Delphi 2

Если у вас D2, вы можете воспользоваться свойством Lookup. Для этого выберите в контекстном меню объекта table редактор полей (fields editor). Затем для добавления нового поля нажмите +N. Просто раскройте combobox и выберите lookup-поле. TDBGrid автоматически создаст выпадающий список, в котором пользователь сможет выбрать нужный элемент.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Представляем Вашему вниманию похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Обсуждение, отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x