Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.22;
Скачать: CL | DM;

Вниз

Class   Найти похожие ветки 

 
Igor_thief ©   (2004-08-03 17:34) [0]

Есть такая структра: Name: string; ColorFont, ColorBk: TColor; Есть также БД в которой есть поле содержащее некое (меняющееся) количество Name. Мне надо прорисовывать таблицу с учетом више указаной структуры. Т.е. если одно из Name = содержимому поля таблицы, то эта запись прорисовывается с учетом цветов которые указанны в ColorBk и ColorFont для совпавшего Name. Внимание вопрос: я создаю (TDarwParams = class(Tobject)) класс а потом создаю список в который в objects запихую экземпляр класса. Каждый item списка имеет значение Name. Далее при прорисовке я нахожу нужный мне item и делаю прорисовку с учетом данных в List.objects. Мне кажется что это самый оптимальный вариант. Насколько я прав? Если вам известны более оптимальные варианты, то поделитесь.


 
Алхимик ©   (2004-08-03 17:37) [1]

Сумбурно написано, но вроде верно.


 
Sandman25 ©   (2004-08-03 17:39) [2]

Вместо класса можно использовать указатель на запись. Если, конечно, в классе нет методов.


 
Игорь Шевченко ©   (2004-08-03 17:42) [3]

Отсортированный массив записей не проще будет ?


 
Гаврила ©   (2004-08-03 17:46) [4]

>>Игорь Шевченко ©   (03.08.04 17:42) [3]

А какая разница ? Этот список по сути и есть массив, массив указателей на запись. Который можно и отсортировать его же методом


 
Игорь Шевченко ©   (2004-08-03 17:49) [5]

Гаврила ©   (03.08.04 17:46)


> А какая разница ?


Дополнительные классы не создавать, к примеру


 
Igor_thief ©   (2004-08-03 18:44) [6]

Игорь Шевченко ©   (03.08.04 17:42) [3]
Масив предется делать динамическим. Количество элементов ведь меняется. Я об этом говорил.


 
Igor_thief ©   (2004-08-03 18:46) [7]

Да и сортировать ничего не надо. Есть же в листбоксе быстрый поиск.


 
Игорь Шевченко ©   (2004-08-03 21:11) [8]


> Масив предется делать динамическим. Количество элементов
> ведь меняется. Я об этом говорил.


1) Массив пишется с двумя "с".
2) Количество структур Name,ColorFont,BkColor насколько я понял, у тебя не меняется, поэтому, на мой взгляд, массив-таки лучше, именно отсортированный, чтобы по Name сразу определять нцжные цвета.

ЗЫ: Каким боком сюда ListBox относится ?


 
Гаврила ©   (2004-08-03 21:59) [9]

Мы тут посовещались с Игорме, и решили
Оптимальней по скорости работы программы - массив записей.
Оптимальнее по скорости кодинга - твой вариант

разница не велика, ни в первом, ни во втором
выбор за тобой :-)


 
Igor_thief ©   (2004-08-04 12:14) [10]

Спасибо!

З.Ы.: ничего сортировать не надо!

procedure TfrmMain.DBGMainDrawDataCell(Sender: TObject; const Rect: TRect;
 Field: TField; State: TGridDrawState);
var
 ind: integer;
begin
 ind := lbColors.Perform(LB_SELECTSTRING, -1 , longint(Pchar(DM.tMainTCompany.AsString)));
 if ind <> -1 then
   begin
     DBGMain.Canvas.Font.Color := TDrawColorsData(lbColors.Items.Objects[ind]).ColorFont;
     DBGMain.Canvas.Brush.Color := TDrawColorsData(lbColors.Items.Objects[ind]).ColorBk;
   end
 else
   DBGMain.Canvas.Font.Color := clBlack;
 DBGMain.DefaultDrawDataCell(Rect, Field, State);
end;


 
Игорь Шевченко ©   (2004-08-04 12:37) [11]

ListBox-то нафига ?

Обычный TStringList с этой задачей справляется куда быстрее


 
Igor_thief   (2004-08-04 14:28) [12]

Игорь Шевченко ©   (04.08.04 12:37) [11]
А вы сделайте с TStringList такое: ind := lbColors.Perform(LB_SELECTSTRING, -1 , longint(Pchar(DM.tMainTCompany.AsString)));


 
Sandman25 ©   (2004-08-04 14:29) [13]

[12] Igor_thief   (04.08.04 14:28)

IndexOf.


 
Igor_thief   (2004-08-04 14:31) [14]

Sandman25 ©   (04.08.04 14:29) [13]
Точно. И как я про такое забыл?


 
Sandman25 ©   (2004-08-04 14:35) [15]

[14] Igor_thief   (04.08.04 14:31)

Даже если бы не было, можно было в цикле поискать.


 
Igor_thief ©   (2004-08-05 13:55) [16]

Sandman25 ©   (04.08.04 14:35) [15]
Не, в цыкле не прикольно.


 
Sandman25 ©   (2004-08-05 14:10) [17]

[16] Igor_thief ©   (05.08.04 13:55)

Ага, прикольнее ненужные объекты создавать. Типа невидимых TMemo и TListBox.



Страницы: 1 вся ветка

Текущий архив: 2004.08.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
1-1091707980
Menel
2004-08-05 16:13
2004.08.22
Вопрос по окружностям и знакам...


14-1091425347
ИдиотЪ
2004-08-02 09:42
2004.08.22
Что делать с "народ.ру" ?


1-1091949297
gs
2004-08-08 11:14
2004.08.22
Автоустановка BDE и Mdac_type


14-1091345889
Protoss
2004-08-01 11:38
2004.08.22
Просто интересно


3-1091351030
Guest
2004-08-01 13:03
2004.08.22
AdoQuery - Fields - DisplayFormat