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

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

Исчезает картинка [D7, XP]


Imagination ©   (2014-06-23 13:31:00) 

Привет всем!
Написал таки код! теперь проблема в том, что добавляю первую картинку, все ок, вторую,все ок, НО! при прокрутке stringgrida пропадает первая картинка, а вторая остается.
Что делать?

Добавлено через 4 минуты
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
B:=TBitmap.Create
else Exit;
B.LoadFromFile(OpenPictureDialog1.FileName);
x:=StringGrid1.Col;
y:=StringGrid1.Row;
Canvas.StretchDraw(StringGrid1.CellRect(x,y),B);
StringGrid1.SetFocus;
end;

procedure TForm1.StringGrid1OnDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (b<> nil) and (ACol=x) and (ARow=y) then
StringGrid1.Canvas.StretchDraw(Rect,B);
end;


KilkennyCat   (2014-06-23 15:18:00) [1]

Создай структуру, типа
col:integer;
row: integer;
bmp:Tbitmap;

объяви массив этой структуры

и будет что-то типа:

procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
var e : boolean;
begin
if OpenPictureDialog1.Execute then begin
 i := 0;
 while (i < Pict.length) do begin
   e := Pict[i].col = StringGrid1.Col) and (Pict[i].row = StringGrid1.Row);
   if e then break;
   inc(i);
 end;
 if not e then begin
   i := Pict.length + 1;
   SetLength(Pict, i);
   Pict[i].bmp.Create;
 end;
 Pict[i-1].bmp.LoadFromFile(OpenPictureDialog1.FileName) ;
 StringGrid1.repaint;
end;

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


KilkennyCat   (2014-06-23 15:00:00) [2]


> StringGrid1OnDrawCell

тут отрисовка только одной картинки


Наверх

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