Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.029 c
1-1091591383
mixam
2004-08-04 07:49
2004.08.22
работа с файлами


3-1090842348
-=VaaL=-
2004-07-26 15:45
2004.08.22
Access и прога на CD


1-1091691282
СержК
2004-08-05 11:34
2004.08.22
Можно ли вставить в свой проект фрагмент кода на VB


14-1091621884
sucer
2004-08-04 16:18
2004.08.22
Странный глюк на рабочем столе WinXP


9-1082992489
S.W.I.N.E.
2004-04-26 19:14
2004.08.22
Алгоритм созжания карты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский