![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли в Stringgrid вставить картинку?
Muhan © (2004-12-03 16:40:00)Пытаюсь вставить в стринггрид картинку..не получается...ее просто не видно :( Как сделать чтобы картинка был поверх таблицы? И можно ли в ячейку вставить картинку?
Спасибо.
Muhan (2004-12-04 01:53:00) [1]Мне надо вставить картинки в таблицу размерности 25*25.. менять их местами, удалять..в этом духе..так чтобы они были привязаны к яцейкам
novice__man (2004-12-03 23:35:00) [2]
Muhan © (03.12.04 16:40)
Пытаюсь вставить в стринггрид картинку КАК ПЫТАЕТЕСЬ, КАКОЕ УСЛОВИЕ ДЛЯ ТОГО ЧТО БЫ БЫЛА КАРТИНКА???? ..не получается...ее просто не видно :( Как сделать чтобы картинка был поверх таблицы КАРТИНКА БУДЕТ ТОЛЬКО В ЯЧЕЙКЕ, А НИКАК ПОВЕРХ ТАБЛИЦЫ!!! ? И можно ли в ячейку вставить картинку?
Спасибо.
Какие точно действия пользователя должны приводить к появлению (исчезновению) картинки??
Если не получится пиши на мыло по подробнее, разберемся!
novice__man (2004-12-03 23:18:00) [3]
Muhan © (03.12.04 22:36) [17]
вот именно это и надо...что в одной выводить в другой нет....чтож делать то...тупит очень сильно если использовать это метод OnDrawCell :(
Так укажи как реализовано условие!!!
Muhan (2004-12-03 22:36:00) [4]вот именно это и надо...что в одной выводить в другой нет....чтож делать то...тупит очень сильно если использовать это метод OnDrawCell :(
TButton (2004-12-03 21:51:00) [5]
> Пытаюсь вставить в стринггрид картинку
и как же это вы, интересно, пытаетесь?
код в студию.
> Как сделать чтобы картинка был поверх таблицы?
эээ... да!
> И можно ли в ячейку вставить картинку?
эээ... нет!
картинку можно присвоить свойству objects стринг грида
и потом если тебе нужно в одной ячейке выводить картинку, в другой не выводить, в десятой выводить но другую. ты не забывай что у тебя стринг грид, что у него есть свойство cells. надо выводить картинку - запиши это в ячейке, когда будешь отрисовывать - проверяй что в ячейке написано.
novice__man (2004-12-03 21:41:00) [6]Что во что преобразовать?
Раскажите по подробнее о поставленной задаче.
Постараюсь помочь. Сам часто пользую этот метод, подмена шрифта, картинка, цвета...
begin...end (2004-12-03 21:39:00) [7]> [13] Muhan © (03.12.04 21:36)
StringGrid.MouseToCell(X, Y, Col, Row). Col, Row - переменные.
P.S. Я ушёл спать.
Muhan (2004-12-03 21:36:00) [8]а как преобразовать то ? не понятно малех :(
novice__man (2004-12-03 21:24:00) [9]Может просто нужно выводить рисунок по какому-либо условию??
Например в ячейке встретился 0.
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with Canvas do
begin
if StringGrid1.Cells[ACol, ARow] = '1' then
Draw(Rect.Left, Rect.Top, ImageNul.Picture.Graphic);
end;
end;
begin...end (2004-12-03 21:13:00) [10]> [10] Muhan © (03.12.04 21:02)
В смысле, координаты картинки имеются в виде координат X/Y, а не в виде Col/Row? Но ведь X/Y можно преобразовать в Col/Row с помощью TStringGrid.MouseToCell.
Muhan (2004-12-03 21:02:00) [11]я имею ввиду координаты даются таблицы ..то есть 250*300,
а не номер ячеки(ряд, строка)
хотя может я чего то не понимаю. :(
Спасибо за разъяснения.
begin...end (2004-12-03 20:57:00) [12]> [8] Muhan © (03.12.04 20:29)
> все понятно..но там координаты :( хотелось бы конкретно
> ячейки...
Ну теперь уже я Вас не понимаю. :-)
А как же ещё обращаться к ячейкам, как не по их координатам?
Допустим, таблица состоит из 5 строк и 5 столбцов.
Объявляете в форме переменную:
MyArray: array [1..5, 1..5] of Boolean
При старте программы (в TForm.OnCreate) заполняете массив значениями False. Хотя не помню - может быть, массив проинициализируется автоматически.
В обработчике OnDrawCell задаёте проверку, нужно ли для данной ячейки рисовать картинку или нет:
if MyArray[ACol, ARow] then // рисуем
При нажатии кнопки (в обработчике OnClick) указываете, что, например, в третьей строке второго столбца должна быть картинка:
MyArray[2, 3] := True
и обновляете таблицу:
StringGrid.Refresh
Muhan (2004-12-03 20:29:00) [13]все понятно..но там координаты :( хотелось бы конкретно ячейки...и еще маленько не понятно почему когда ввожу свои цифры то одна ячейка заполняется...а когда не трогаю все ячейки заполняются :(
begin...end (2004-12-03 18:37:00) [14]> [6] Muhan © (03.12.04 18:26)
Это возможно. По нажатию кнопки в каких-нибудь переменных указываете, в какие именно ячейки нужно вставлять картинки. И вызываете метод TStringGrid.Refresh. А в начале работы программы в этих переменных должно быть указано, что картинки не нужны. Понятно?
Muhan (2004-12-03 18:26:00) [15]мне надо чтобы она появлялась не при создании таблицы...а в любой момент!! это возможно?
begin...end (2004-12-03 17:38:00) [16]> [3] Muhan © (03.12.04 17:13)
Ну можно где-нибудь хранить номера ячеек, в которых надо прорисовывать картинки, и в обработчике OnDrawCell проверять, нужно рисовать картинку в очередной ячейке или нет.
Muhan (2004-12-03 17:28:00) [17]ответте плиз
Muhan (2004-12-03 17:13:00) [18]Я малеха не дотягиваю до вашего уровня... :)
У меня есть обработчик, я туда загнал код, который вы показали...
Он заполняет все мои ячейки этой самой картинкой....
Как сделать чтобы я сам когда захотел тогда и вбивал.
Вот такая процедурка: ввел ячейку(не координату), нажал кнопку...и картинка появилась...:) вот
wisekaa (2004-12-03 16:50:00) [19]Можно,
http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988625107&n=21
cae (2004-12-03 16:46:00) [20]http://delphiworld.narod.ru/base/bitmap_in_stringgrid_cell.html