Поиск:

Ответ в темуСоздание новой темы Создание опроса
> рисовать 2-й рисунок на ячейку DBGrid 
:(
    Опции темы
zorro777
Дата 3.10.2013, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.10.2013

Репутация: нет
Всего: нет



Здравствуйте.  Вот я хочу в нажатие кнопки добавит рисунок скажем сперва на первую, потом вторую, потом на третю строку DBGrid различные рисунки. .Но у меня рисунки все одни появляется. Только последний выходит на все строк. Помогите пожалуйста.
PM MAIL   Вверх
DYUMON
Дата 3.10.2013, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 17.6.2006
Где: Новосибирск

Репутация: 2
Всего: 3



а вот я велосипед покрасил зеленой краской, можно ли им копать картошку?


--------------------
Всех программистов надо посадить на целероны, что бы впредь головой думали что пишут.
user posted image
PM MAIL ICQ Skype   Вверх
zorro777
Дата 4.10.2013, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.10.2013

Репутация: нет
Всего: нет



А как можно решит такую проблему? ну пусть с другим гридом

Это сообщение отредактировал(а) zorro777 - 4.10.2013, 08:46
PM MAIL   Вверх
Чучмек
Дата 4.10.2013, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 1
Всего: 41



У грида есть событие OnDrawColumnCell в нем и рисуй.
Код

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  bmp: TBitmap;
  BlobStream: TBlobStream;
begin
  if Column.Field.IsBlob{ and (DataCol = N) (*Если есть неграфические blob поля*)}then
  begin
    bmp := TBitmap.Create; //Можно содать один раз в FormCreate
    BlobStream := TBlobStream.Create(Column.Field as TBlobField, bmRead);
    if GetBitmap(BlobStream, bmp) then
      (Sender as TDBGrid).Canvas.StretchDraw(Rect, bmp)
    else
      (Sender as TDBGrid).Canvas.FillRect(Rect);
    bmp.Free;    //И соответственно уничтожить в FormDestroy
    BlobStream.Free;
  end;
end;


GetBitmap
Код

function GetBitmap(BlobStream: TStream; Bitmap: TBitmap): Boolean;
var
  BitmapStream: TMemoryStream;
  BlobStreamInterface,
  BitmapStreamInterface: IStream;
  GPImage: TGPImage;//unit GDIPOBJ.pas
  gbmp: TGUID;
  v: int64;
begin
  result := False;
  if not Assigned(Bitmap) or not(Bitmap is TBitmap) then
    Exit;
  BlobStreamInterface := TStreamAdapter.Create(BlobStream);
  BlobStreamInterface.Seek(0, 0, v);
  GPImage := TGPImage.Create(BlobStreamInterface);
  BitmapStream := TMemoryStream.Create;
  if Ok = GPImage.GetLastStatus  then
  begin
    BitmapStream := TMemoryStream.Create;
    BitmapStreamInterface := TStreamAdapter.Create(BitmapStream);
    GetEncoderClsid('image/bmp', gbmp); //unit GDIPUTIL.pas
    GPImage.Save(BitmapStreamInterface, gbmp);
    BitmapStreamInterface.Seek(0, 0, v);
    Bitmap.LoadFromStream(BitmapStream);
    BitmapStream.Free;
    BitmapStreamInterface := nil;
    Result := True;
  end else
  begin
    Bitmap.Canvas.Brush.Color := 0;
    Bitmap.Canvas.FillRect(Rect(0, 0, Bitmap.Width, Bitmap.Height));
  end;
  BlobStreamInterface := nil;
  GPImage.Free;
end;


Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  Пример.zip 160,10 Kb


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
zorro777
Дата 7.10.2013, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.10.2013

Репутация: нет
Всего: нет



Чучмек спасибо большое. Помогло мне.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0919 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.