Форум: "Начинающим";
Текущий архив: 2015.12.06;
Скачать: [xml.tar.bz2];
ВнизНесколько действий для одной кнопки Найти похожие ветки
← →
Imagination (2014-06-20 14:14) [0]Добрый день! Нужна ваша помощь!
Написал код, по которому картинка вставляется в ячейку (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.
← →
Dimka Maslov © (2014-06-20 14:48) [1]Ерунда полная написана, вот и не работает.
Во-первых "вставлять" картинку в StringGrid надо в OnDrawCell самого СтрингГрида.
Во-вторых, какая религия мешает сразу присвоить y := Button1.Tag и написать код один раз без всякого case?
Ну а про вычисление координат я вообще молчу.
← →
Imagination (2014-06-20 15:22) [2]Не могли бы помочь примером, а то я новичек и не понимаю(((
← →
Inovet © (2014-06-20 15:28) [3]Это всё та же вставка картинки в Эксель что и 2 месяца назад?
← →
Imagination (2014-06-20 15:29) [4]Что?
← →
Германн © (2014-06-20 15:59) [5]
> Inovet © (20.06.14 15:28) [3]
> Это всё та же вставка картинки в Эксель что и 2 месяца назад?
Угу. Только он ник сменил (но не на всех форумах :)
← →
Imagination (2014-06-20 16:02) [6]Удалено модератором
← →
Германн © (2014-06-20 16:07) [7]
> Imagination (20.06.14 16:02) [6]
> Я конечно не пойму о чем вы
http://delphimaster.net/view/2-1400830587/
http://www.cyberforum.ru/delphi-beginners/thread1213109.html
← →
Imagination (2014-06-20 16:14) [8]Удалено модератором
← →
Imagination (2014-06-20 16:17) [9]Удалено модератором
← →
Dimka Maslov © (2014-06-20 16:32) [10]В OnClick кнопки записываем в глобальную переменную (можно в поле формы, или даже в базу данных) некоторый признак, который будет указывать на то, что и где надо рисовать в СтрингГрид. После чего явно вызвать перерисовку СтрингГрида.
В OnDrawCell у СтрингГрида для нужной нам ячейки (её координаты передаются в качестве параметров) мы читаем этот самый глобальный признак и рисуем всё, что мы хотим.
ЗЫ Засорение эфира есть любимое занятие на этом форуме, иначе он давно уже бы кончился.
← →
Imagination (2014-06-20 16:46) [11]Dimka Maslov ©
Спасибо большое за отклик. Я новичек и много не понимаю.
Понимаете, нужно чтобы я любую картинку в Image1 загрузил и нажав кнопку она появилась например в ячейке 0,0. Потом выбрав другую картинку в Image1 она пошла в ячейку 0,1. Думал сделать так - выбрал картинку, нажал первый раз на кнопку - она в яч.0,0. Выбрав другую картинку нажав кнопку - она в яч.0,1.
Может я вам в личку всю прогу скину чтобы Вам было нагляднее?
← →
Dimka Maslov © (2014-06-20 16:48) [12]Не надо мне в личку ничего кидать, у меня без этого работы достаточно.
← →
Imagination (2014-06-20 16:57) [13]А можно ли форму TImage прикрепить к ячейке Stringgrida?
← →
sniknik © (2014-06-20 16:59) [14]http://delphimaster.net/view/2-1400830587/
> Нужно картинку image1 вставить в ячейку (1,1) таблицы Ворд нажав кнопочку! Потом другую картинку image1 в ячейку (1,2)! Потом следующую картинку в ячейку (3,1) и т.д.
...
> в таком случае не буду заморачиваться)))
найми уже программиста. или обращайся с конкретными проблемами...
вот что непонятно в сказанном не раз, в разных темах (тех что по стринг гриду) что рисовать нужно в предназначенном для этого событии (OnDrawCell)?
← →
sniknik © (2014-06-20 17:00) [15]> А можно ли форму TImage прикрепить к ячейке Stringgrida?
нет
← →
sniknik © (2014-06-20 17:04) [16]у тебя должен быть какой-то "накопитель" массив например (рекордсет тоже пойдет, как и список объектов), сохранять картинку нужно туда, не рисовать, а сохранять, а рисовать в событии соотнеся координаты грида с твоим массивом (в случае одномерного/рекордсета/списка может не сходится 1 в 1). ищешь по "гридовским" нужную в массиве и рисуешь.
← →
имя (2014-06-20 18:51) [17]Удалено модератором
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2015.12.06;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.002 c