Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.12.06;
Скачать: CL | DM;

Вниз

Несколько действий для одной кнопки   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.008 c
15-1428960604
Юрий
2015-04-14 00:30
2015.12.06
С днем рождения ! 14 апреля 2015 вторник


6-1277274057
night_light
2010-06-23 10:20
2015.12.06
передача нескольких изображений по сети


15-1429047002
Юрий
2015-04-15 00:30
2015.12.06
С днем рождения ! 15 апреля 2015 среда


2-1403259271
Imagination
2014-06-20 14:14
2015.12.06
Несколько действий для одной кнопки


6-1277417821
RGV
2010-06-25 02:17
2015.12.06
TIdMessage и иже с ним