![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Несколько действий для одной кнопки [D7, XP]
Imagination © (2014-06-20 14:14:00)Добрый день! Нужна ваша помощь!
Написал код, по которому картинка вставляется в ячейку (0,0) Stringgrida! А в (0,1) не хочет(((
В Tag кнопки Button установил 2 (два действия). Вот сам код. Подскажите что не так пожалуйста.
procedure TForm1.Button2Click(Sender: TObject);
var R: TRect;
x,y: Integer;
begin
case Button1.Tag of
0:
begin
x := 0; // номер строки
y := 0; // номер столбца
R.Left := StringGrid1.DefaultColWidth * x + x;
R.Top := StringGrid1.DefaultRowHeight * y + y;
R.Right := StringGrid1.DefaultColWidth * x + StringGrid1.DefaultColWidth + x;
R.Bottom := StringGrid1.DefaultRowHeight * y + StringGrid1.DefaultRowHeight + y;
StringGrid1.Canvas.CopyRect(R, Image1.Canvas, Rect(0, 0, Image1.Width, Image1.Height));
end;
1:
begin
x := 0; // номер строки
y := 1; // номер столбца
R.Left := StringGrid1.DefaultColWidth * x + x;
R.Top := StringGrid1.DefaultRowHeight * y + y;
R.Right := StringGrid1.DefaultColWidth * x + StringGrid1.DefaultColWidth + x;
R.Bottom := StringGrid1.DefaultRowHeight * y + StringGrid1.DefaultRowHeight + y;
StringGrid1.Canvas.CopyRect(R, Image1.Canvas, Rect(0, 0, Image1.Width, Image1.Height));
end;
end;
end;
end.
(2014-06-20 18:51:00) [1]Удалено модератором
sniknik (2014-06-20 17:04:00) [2]у тебя должен быть какой-то "накопитель" массив например (рекордсет тоже пойдет, как и список объектов), сохранять картинку нужно туда, не рисовать, а сохранять, а рисовать в событии соотнеся координаты грида с твоим массивом (в случае одномерного/рекордсета/списка может не сходится 1 в 1). ищешь по "гридовским" нужную в массиве и рисуешь.
sniknik (2014-06-20 17:00:00) [3]> А можно ли форму TImage прикрепить к ячейке Stringgrida?
нет
sniknik (2014-06-20 16:59:00) [4]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1401097358&n=18
> Нужно картинку image1 вставить в ячейку (1,1) таблицы Ворд нажав кнопочку! Потом другую картинку image1 в ячейку (1,2)! Потом следующую картинку в ячейку (3,1) и т.д.
...
> в таком случае не буду заморачиваться)))
найми уже программиста. или обращайся с конкретными проблемами...
вот что непонятно в сказанном не раз, в разных темах (тех что по стринг гриду) что рисовать нужно в предназначенном для этого событии (OnDrawCell)?
Imagination (2014-06-20 16:57:00) [5]А можно ли форму TImage прикрепить к ячейке Stringgrida?
Dimka Maslov (2014-06-20 16:48:00) [6]Не надо мне в личку ничего кидать, у меня без этого работы достаточно.
Imagination (2014-06-20 16:46:00) [7]Dimka Maslov ©
Спасибо большое за отклик. Я новичек и много не понимаю.
Понимаете, нужно чтобы я любую картинку в Image1 загрузил и нажав кнопку она появилась например в ячейке 0,0. Потом выбрав другую картинку в Image1 она пошла в ячейку 0,1. Думал сделать так - выбрал картинку, нажал первый раз на кнопку - она в яч.0,0. Выбрав другую картинку нажав кнопку - она в яч.0,1.
Может я вам в личку всю прогу скину чтобы Вам было нагляднее?
Dimka Maslov (2014-06-20 16:32:00) [8]В OnClick кнопки записываем в глобальную переменную (можно в поле формы, или даже в базу данных) некоторый признак, который будет указывать на то, что и где надо рисовать в СтрингГрид. После чего явно вызвать перерисовку СтрингГрида.
В OnDrawCell у СтрингГрида для нужной нам ячейки (её координаты передаются в качестве параметров) мы читаем этот самый глобальный признак и рисуем всё, что мы хотим.
ЗЫ Засорение эфира есть любимое занятие на этом форуме, иначе он давно уже бы кончился.
Imagination (2014-06-20 16:17:00) [9]Удалено модератором
Imagination (2014-06-20 16:14:00) [10]Удалено модератором
Германн (2014-06-20 16:07:00) [11]
> Imagination (20.06.14 16:02) [6]
> Я конечно не пойму о чем вы
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1400830587&n=18
http://www.cyberforum.ru/delphi-beginners/thread1213109.html
Imagination (2014-06-20 16:02:00) [12]Удалено модератором
Германн (2014-06-20 15:59:00) [13]
> Inovet © (20.06.14 15:28) [3]
> Это всё та же вставка картинки в Эксель что и 2 месяца назад?
Угу. Только он ник сменил (но не на всех форумах :)
Imagination (2014-06-20 15:29:00) [14]Что?
Inovet (2014-06-20 15:28:00) [15]Это всё та же вставка картинки в Эксель что и 2 месяца назад?
Imagination (2014-06-20 15:22:00) [16]Не могли бы помочь примером, а то я новичек и не понимаю(((
Dimka Maslov (2014-06-20 14:48:00) [17]Ерунда полная написана, вот и не работает.
Во-первых "вставлять" картинку в StringGrid надо в OnDrawCell самого СтрингГрида.
Во-вторых, какая религия мешает сразу присвоить y := Button1.Tag и написать код один раз без всякого case?
Ну а про вычисление координат я вообще молчу.