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

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

DrawGrig - исчезающие картинки. [D6, XP]


Pavelkq ©   (2009-01-08 18:54:00) 

Только начал осваивать компонент. Пишу следующее:
 DrawGrid1.Visible:=true;
 FName:='';
 if OpenPictureDialog1.Execute then
   FName:=OpenPictureDialog1.FileName;
 if FName='' then exit;
 MyBMP := TBitmap.Create;
 MyJPEG := TJPEGImage.Create;

 MyJPEG.LoadFromFile(FName);
 MyBMP.Assign( MyJPEG );

 Rect:= DrawGrid1.CellRect(0, 0);
 DrawGrid1.Canvas.Brush.Bitmap:=MyBMP;
 DrawGrid1.Canvas.FillRect(Rect);
 MyJPEG.Free;
 MyBMP.Free;

Картинка чудесно отрисовывается, но когда над ней проплывают другие окна или сворачиваю/разворачиваю свою форму, картинка исчезает, ячейка остается пустой. Где тут собака порылась?


Плохиш   (2009-01-10 00:16:00) [1]


> Действительно раскусил OnDrawCel + ImageList.

Велосипед с треугольными колёсами.

> bmp: tbitmap
>

Не об этом спрашивалось.


Pavelkq   (2009-01-09 22:09:00) [2]

Длого мучился и получилось все. Действительно раскусил OnDrawCel + ImageList.
bmp: tbitmap


Плохиш   (2009-01-09 14:16:00) [3]


> Pavelkq   (08.01.09 21:48) [2]
>
> Создал обработчик
>
> procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol,
>  ARow: Integer;
>  Rect: TRect; State: TGridDrawState);
> begin
> DrawGrid1.Canvas.StretchDraw(Rect, bmp);
> end;
>
> Теперь после занесения в каждую ячейку новой картинки все
> картинки заменяются на нее. Люди, помогите, пожалуйста!
>

И кто-такой этот бмп?


KilkennyCat   (2009-01-09 11:28:00) [4]


> Pavelkq   (09.01.09 09:33) [6]


ну тогда вообще всем выше сказанное непонятно.
в 7 есть пример, вроде и в 6-ке он также был :C:\Program Files\Borland\Delphi7\Demos\Db\FishFact


Pavelkq   (2009-01-09 09:33:00) [5]

У меня имеется некий текст, который отображается в Memo. Под ним нарисовал DrawGrig и хочу чтобы к каждому тексту прикреплялись фотографии. Вся эта конструкция хранится с БД. Короче, надо сделать просто перечисление привязанных к определенному тексту фотографий. + возможность самой привязки/отвязки.


KilkennyCat   (2009-01-08 23:00:00) [6]

Мытарства твои понятны. А цель не ясна.
В конечном итоге, что ты хочешь сделать-то? Фон у грида?


Германн   (2009-01-08 22:14:00) [7]

A draw grid (TDrawGrid) displays arbitrary data in tabular format. Write an OnDrawCell event handler to fill in the cells of the grid.


Pavelkq   (2009-01-08 22:06:00) [8]

Интернет меня уговорил, решил попробовать ImageList.
Приписываю
 ImageList1.Add(MyBMP,nil);
Но голова уже не соображает, как запихать в ячейки DrawGrid-a все сореджимое ImageList-a?


Pavelkq   (2009-01-08 21:48:00) [9]

Создал обработчик

procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
begin
DrawGrid1.Canvas.StretchDraw(Rect,bmp);
end;

Теперь после занесения в каждую ячейку новой картинки все картинки заменяются на нее. Люди, помогите, пожалуйста!


Pavelkq   (2009-01-08 21:06:00) [10]

Хм, перепробовал разные методы:
 Rect:= DrawGrid1.CellRect(1, 0);
 DrawGrid1.Canvas.StretchDraw(Rect,MyBMP);

или
 Rect:= DrawGrid1.CellRect(1, 0);
 DrawGrid1.Canvas.Draw(0,0,MyBMP);

Результат одинаков. Может дело в каких-то свойстах DrawGrid-a? Или надо обработать собыние OnDrawCell? Что делать?


Наверх

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