Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ну слишком медленный StringGrid. Что делать? [D7]


Страницы:   1 2

DmitrichJ ©   (2007-01-17 05:07:00) 

Вопрос в том, что вывожу данные в StringGrid. При около 100 записей это дело слишком затягивается. Делаю так:

form1.IBQuery1.First;
while not form1.IBQuery1.Eof do begin
 count:=count+1;
 StringGrid1.RowCount:=count+1;
   StringGrid1.Cells[0,count]:=Form1.IBQuery1.FieldByName('npfiz').AsString;
   StringGrid1.Cells[1,count]:=Form1.IBQuery1.FieldByName('fizfamil').AsString+' '+
                               Form1.IBQuery1.FieldByName('fizname').AsString+' '+
                               Form1.IBQuery1.FieldByName('fizotch').AsString;
end;

Примерно так.

Подскажите как выводить данные лучше? Или каки компонентом воспользоваться, кроме DBGrid.

Спасибо.


evvcom   (2007-01-18 08:42:00) [1]

> [33] ЮЮ ©   (18.01.07 03:19)

А... Да, да... Кажется все ж использовал. Давно. Склероз, видимо, начинает проявляться. :)


ЮЮ   (2007-01-18 03:19:00) [2]


> Я такого свойства тоже не помнил.(Query1.DataSource) Сейчас почитал. Никогда  не использовал. ИМХО, ненужное свойство, может даже вредное, в чем мы только что и убедились.
>


:)  Это для организвции Master-Details связи двух DataSet-ов. Вешь вполне необходимая и полезная


DmitrichJ   (2007-01-17 22:51:00) [3]

Если кому интересно: сделл замеры времени. Всё дело оказалось в IBQuery.next. Т.е. в переходе к следющей записи. А StringGrid выдерживает хорошее время даже на 4000 строчек. Буду думать что делать.


Fredy314   (2007-01-17 15:39:00) [4]

> [30] evvcom ©   (17.01.07 15:17)
Если чтото нужно сделать, пользуемся таким алгоритмом:
1. Методом тыка, вдруг получится.
2. Спросить на форуме.
3. Поискать на Яндексе.
4. Прочесть наконец хелп.

шутка.

зы. а хелп я читаю, и книжки тоже, и поиском пользоватся умею. Но всякое бывает.


evvcom   (2007-01-17 15:17:00) [5]

> [29] Fredy314 ©   (17.01.07 15:06)

Ты бы хоть хелп почитал. Я такого свойства тоже не помнил. Сейчас почитал. Никогда не использовал. ИМХО, ненужное свойство, может даже вредное, в чем мы только что и убедились.


Fredy314   (2007-01-17 15:06:00) [6]

Извиняюсь у всех, всё работает, я просто TDataSource и TQuery лишний раз соединил
Query1.DataSource присвоил DataSource1 и как результат
DataSource1.DataSet не хотел принимать Query1, вот ведь как бывает.


Elen   (2007-01-17 14:53:00) [7]


> TDataSource+ТDBGrid+TТable

Разве так? путь такой :
TDbGrid.DataSource:=TDataSource; TDataSource.DataSet:=Ttable (или TQuery)
Так ведь?


stone   (2007-01-17 14:52:00) [8]


> TDataSource+ТDBGrid+TQuery не хочет.

Это что за связка такая? ты последовательность не перепутал?
ТDBGrid -> TDataSource -> TQuery


Fredy314   (2007-01-17 14:47:00) [9]

D7 так-же связка TDataSource+ТDBGrid+TТable нормально работает, а вот
TDataSource+ТDBGrid+TQuery не хочет.


Elen   (2007-01-17 14:44:00) [10]


> Пробовала? я какраз про ето и говорю TDataSource принимает
>  TTable и промто не видит TQuery

Хм. Незнаю как в D7, а у меня  в D6 это только через TDataSource. DBGrid Ttable так просто без посредника DataSource не подключается.


Fredy314   (2007-01-17 14:39:00) [11]

[19]ту3.14шьБывает


Fredy314   (2007-01-17 14:37:00) [12]

> [22] Elen ©   (17.01.07 14:30)
Пробовала? я какраз про ето и говорю TDataSource принимает  TTable и промто не видит TQuery

Можно конечно и TTable использовать свойствa Filter и Filtered Но как быть к запросам к нескольким таблицам?


Elen   (2007-01-17 14:30:00) [13]


> DataSource не принимает ТQuery в качестве ДатаСета

DataSource это в Гриде. Он принимает TDataSource, который принимает в свой  DataSet тот самый TQuery


Думкин   (2007-01-17 14:26:00) [14]

> Fredy314 ©   (17.01.07 14:20) [20]

DataSource не принимает ТQuery в качестве ДатаСета

А как не принимает?


Fredy314   (2007-01-17 14:20:00) [15]

> [19] Думкин ©   (17.01.07 14:17)

Ето именно те самые три цыфры.
Но как отобразить результат ТQuery в DBGrid я не понял. Ткните пальцем пожалуйста.


Думкин   (2007-01-17 14:17:00) [16]

> Fredy314 ©   (17.01.07 14:14) [18]

Извини, но три цифры в твоем нике, это не начало тизвестного слова? Ничего личного, но это таки опять 3.14...шь.


Fredy314   (2007-01-17 14:14:00) [17]

И как соединить ТQuery с DBGrid если DataSource не принимает ТQuery в качестве ДатаСета


Fredy314   (2007-01-17 13:52:00) [18]

Возможно и так. Лёгких путей не ищем.
Чтото вне в нём не понравилось, не помню уже.


Amoeba   (2007-01-17 13:43:00) [19]


> потому что ненашёл в DBGrid-е OnDrawCell мне нужно поразному
> отрисовырать разные данные(Раравнивание по запятой например).
>
>

Плохо искал, и в результате пришлось удалять гланды через анус.


Думкин   (2007-01-17 13:30:00) [20]


> что ненашёл в DBGrid-е OnDrawCell мне нужно поразному отрисовырать
> разные данные(Раравнивание по запятой например).

??

В Ф1 даже пример есть:

he following example conditionally changes the font color of rows in a DB Grid. The following code is added to the DB Grid’s OnDrawDataCell event. If the field Size is greater than 10, the row’s font will be red.

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);

begin
 if Table1.FieldByName('Size').AsFloat > 10 then
   DBGrid1.Canvas.Font.Color := clRed;
 DBGrid1.DefaultDrawDataCell(Rect, Field, State);
end;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо