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

Вниз

TStringGrid - скроллинг   Найти похожие ветки 

 
greenrul   (2002-06-28 22:32) [0]

у меня в StringGird рисуются картинки из ImageList, рисуются при OnDrawCell. Беда в том, что как только появился скроллинг, начались страшные глюки: последняя картинка становилась первой, и далее при скроллинге где ячейка была верхней и левой там картинка СНОВА менялась на последнюю... Может кто чего и понял из описанного 8) но приведу пример:

procedure TMainForm.cellBrowserDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var i,ir,ic,l,t:integer;
begin
ic:=0;
ir:=0;
for i:=1 to stotal {общее кол-во картинок} do
begin
If ic=cellBrowser.ColCount then
begin
Inc(ir);
ic:=0;
end;
t:=cellBrowser.CellRect(ic,ir).top
l:=cellBrowser.CellRect(ic,ir).left;
ImageList1.Draw(cellBrowser.Canvas,l,t,i-1);
Inc(ic);
end;
end;



Подскажите плиз!


 
greenrul   (2002-06-28 23:56) [1]

Ну помогите ради бога!

ТРИ ЧАСА над этим мучался, и все без толку....

ПЛИЗ,,..

я уверен, мастера - вам это на пять минут, не больше


 
greenrul   (2002-06-29 02:04) [2]

HELP!


 
greenrul   (2002-06-29 03:17) [3]

please....

оччень нужно


 
MBo   (2002-06-29 06:39) [4]

procedure TMainForm.cellBrowserDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
ImageList1.Draw(cellBrowser.Canvas,Rect.Left+1,
Rect.Top+1,ARow*cellBrowser.ColCount+ACol);
end;


 
greenrul   (2002-06-29 13:04) [5]

СПАСИБО!!

не представляете, как выручили, только один вопросик - как узнать номер ячейки по такому принципу:


1 2
3 4
5 6

как узнать какой номер сейчас перерисовывают


 
Юрий Зотов   (2002-06-29 17:37) [6]

> как узнать какой номер сейчас перерисовывают

Тот, который который находится на пересечении строки с номером ARow и столбца с номером ACol (а эти данные приходят в обработчик). Как написал MBo:

ARow * cellBrowser.ColCount + ACol

Только учтите, что ARow и ACol базированы на нодь, а не единицу (то есть, нумерация строк и столбцов идет с нуля). Если Вам надо базировать отсчет ячеек на единицу, то сделайте сдвиг:

ARow * cellBrowser.ColCount + ACol + 1


 
greenrul   (2002-06-29 18:54) [7]

Спасибо огромное, только сам уже догадался 8)

если не трудно, посмотрите немного аналогичный вопрос - http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1025360912&n=0



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

Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.015 c
1-47498
race1
2002-07-04 12:47
2002.07.15
procedure


4-47869
Serd_hhc
2002-05-12 07:33
2002.07.15
Что это такое?


7-47853
XEL
2002-04-24 23:11
2002.07.15
ИЗМЕНЯТЬ СКОРОСТЬ CD-ROM ПРОГРАМНО?


1-47260
James007
2002-06-23 16:36
2002.07.15
Сохранение настроек формы и всех компонентов в файл


14-47769
Malder
2002-06-02 16:42
2002.07.15
GTA 1





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский