![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
есть данные полученные с помощью ADOQuery1
они выводятся в DBGrid1 все никак не могу найти способ как обратится к записям в этой DBGrid1 нету свойств Row или Cell надо всего лишь заполнить ListBox1 значениями первого столбца ![]() |
|
#2
|
||||
|
||||
|
Этих свойств нету у TDBGrid, но есть у TCustomGrid (они protected и можно их вытащить в классе-наследнике).
Можно попробовать это: Код:
{
Код улучшенного TDBGrid, имеющего свойства Col,
Row и Canvas и метод CellRect. Это чрезвычайно
полезно в случае, если вы, к примеру, хотите
получить выпадающий список на месте редактируемой
пользователем ячейки.
}
unit VUBComps;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Grids, DBGrids, DB, Menus;
type
TDBGridVUB = class(TDBGrid)
private
{ Private declarations }
protected
{ Protected declarations }
public
property Canvas;
function CellRect(ACol, ARow: Longint): TRect;
property Col;
property Row;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('VUBudget', [TDBGridVUB]);
end;
function TDBGridVUB.CellRect(ACol, ARow: Longint): TRect;
begin
Result := inherited CellRect(ACol, ARow);
end;
end.
©Drkb::03050
Взято с http://delphiworld.narod.ruПоследний раз редактировалось Viajero, 25.07.2011 в 20:50. |
|
#3
|
||||
|
||||
|
ну так оставь в DBGrid1 только первый столбец тогда и ListBox1 не нужен)
|
|
#4
|
|||
|
|||
|
нашел ehlib 5.3 (http://rghost.ru/4706141)
но совершенно не знаю как устанавливать можете подсказать что делать с этими файлами? |
|
#5
|
||||
|
||||
|
Файлы dpk нужно запустить, а вообще ещё руководство к нему есть (отдельно в интернете можно найти). Кстати этот пакет какой-то неполный. У меня был 5.2 с руководством и с exe инстоллером. A чем не устроил VUBComps?
|
|
#6
|
|||
|
|||
|
Цитата:
потом ошибка : E2065 Unsatisfied forward or external declaration 'TDBGridVUB.Register' |
|
#7
|
|||
|
|||
|
а не, END надо поставить перед Register , тогда нет ошибок.
Как теперь вытащить компонент на панель инструментов? Последний раз редактировалось yurayura, 26.07.2011 в 13:46. |
|
#8
|
|||
|
|||
|
подстава
свойство Row имеет тип Integer ![]() ![]() |
|
#9
|
||||
|
||||
|
Я делал по другому. Используется обычный TDBGrid, если нужно использовать "новые" свойства например Row, пишется:
Код:
(DBGrid1 as TDBGridVUB).Row Метод Register при этом не нужен. Его можно удалить. Ну и юнит не забыть подключить. |
|
#10
|
|||
|
|||
|
толку от свойства Row который Integer
нужно получить данные из ячейки конкретной строки например в TstringGrid есть Cells[i,j]... ахтунг какойто, уже второй день мучаюсь с этой ерундой |
|
#11
|
||||
|
||||
|
Так а не вариант напрямую к полям ADOQuery обращаться, например через свойство FieldByName.
Или если их нужно вынести в ListBox, то использовать DBListBox он всё автоматом подцепит |
|
#12
|
||||
|
||||
|
Если не ошибаюсь (могу и ошибаться), эти свойства только для чтения.
Вообщето свойства Row и Col могут использоваться для того например, что бы узнать, в какой строке и столбце находится курсор, или реже в какой строке и столбце находятся какие-то данные в данный момент. А вот зачем вам доступ к определённой строке?? ТDBGrid в отличии от TstringGrid связан с данными, и номер строки не будет постоянный. Он меняется при прокручивании. Но у вас же есть доступ к Dataset, почему не использовать его? |
|
#13
|
||||
|
||||
|
Пример (не очень хороший):
Код:
ppFIBQuery.SQL.Text:=SQLstring;
ppFIBQuery.ExecQuery;
while not ppFIBQuery.Eof do ppFIBQuery.Next;
cLength:=ppFIBQuery.RecordCount;
ppFIBQuery.ExecQuery;
SetPopupLength(cLength);
for cCount:=0 to cLength-1 do begin
iID:=ppFIBQuery.FldByName[IdFldName].AsInteger;
sID:=ppFIBQuery.FldByName[IdFldName].AsString;
sValue:=ppFIBQuery.FldByName[ValueFldName].AsString;
............ здесь можно, например, ListBox1 заполнять
ppFIBQuery.Next;
end;
ppFIBQuery.Close; |
|
#14
|
|||
|
|||
|
как я понял вы использовали индекс при просмотре данных?
то есть вы последовательно просматривали все содержимое и считывали у меня запрос SELECT DISTINCT Продукция FROM [Лист1$] Метод Next тогда будет двигаться по найденным (возвращенным запросом) записям или по всем записям в БД? |
|
#15
|
|||
|
|||
|
нашел более полный Ehlib 5.3
http://depositfiles.com/files/goyxs7zrt В ReadMe все прошло до слов In "Package..." window click "Compile" button to compile the package and then click "Install" button to register EhLib components on the component palette. вот где замена этой кнопки Instal для Delphi XE? |