Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: TMS components. TAdvStringGrid.  (Прочитано 7915 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« : 31-07-2008 06:47 » 

Вопрос первый: кто-нибудь пользуется этими компонентами?

Вопрос второй, более сложный.
Есть объект типа TAdvStringGrid, а у него метод AddPicture.
Код: (C++)
TPicture *pic;

pic = new TPicture;
pic->Bitmap = bitmap; // назначаю некую картинку, но это тут не важно
tbl->AddPicture(col, row, pic, true, noStretch, 0, haBeforeText, vaCenter);
И в какой-то момент делаю:
Код: (C++)
tbl->Clear();
Вопрос: что произойдет с картинкой? Будет ли уничтожен объект или произойдет утечка памяти?

P.S.: дока очень жиденькая - такие вещи даже не рассматриваются.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Eugene
Гость
« Ответ #1 : 29-09-2008 21:57 » 

Bitmaps
The functions available to handle bitmaps in cells are:
function CreateBitmap(ACol,ARow: Integer;transparent:Boolean;hal:TCellHalign;val:TCellValign):TBitmap;
procedure AddBitmap(ACol,ARow: Integer;ABmp:TBitmap;Transparent:Boolean;hal:TCellHalign;val:TCellValign);
procedure RemoveBitmap(ACol,ARow: Integer);
function GetBitmap(ACol,ARow: Integer):TBitmap;

The difference between CreateBitmap and AddBitmap is that with CreateBitmap, the bitmap
instance is created, maintained and destroyed by the grid while with AddBitmap it is the
responsibility of the programmer to create the instance and destroy it.
In code this difference becomes clear:
Код:
// add bitmap from resource to the grid
Grid.CreateBitmap(2,3,True,haBeforeText,vaTop).LoadFromResourceName(HInstance,’TEST’);
var
Bmp: TBitmap;
Bmp := TBitmap.Create;
Bmp.LoadFromResourceName(HInstance,’TEST’);
Grid.AddBitmap(2,3,True,haBeforeText,vaTop);
// at the end of the application, the bitmap needs to be destroyed
Bmp.Free;

Pictures
Adding pictures is very similar to adding bitmaps to a cell. The CreatePicture and AddPicture are
available to add a picture that is either created, maintained and destroyed by the grid or a picture
that is created, maintained and destroyed by the application.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 30-09-2008 03:30 » 

Eugene, спасибо. В жизни не нашел бы этих строк - мне Bitmap-функции совершенно не нужны были.

Я, правда, перешел на другие методы: AddMultiImage() и CellImages[][]->Add() - это позволяет вставлять в ячейку несколько картинок. Сами картинки хранятся в GridImages.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines