Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1428874204
Юрий
2015-04-13 00:30
2015.12.06
С днем рождения ! 13 апреля 2015 понедельник


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


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


2-1402877839
nokia4ever
2014-06-16 04:17
2015.12.06
crc


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский