Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2013, 20:05   #1
Alexandr17-10
Пользователь
 
Регистрация: 12.08.2013
Сообщений: 99
По умолчанию как рисовать Canvas по нажатию на Button

вот код
Код:
procedure TForm1.BitBtn3Click(Sender: TObject);
var i,i1:Integer;
  Bmp:TBitmap;
begin
  Image1.Height:=150;
  Image1.Width:=150;
  Image1.Left:=0;
  Image1.Width:=0;
  Bmp:=TBitmap.Create;
  bmp.LoadFromFile(ExtractFilePath(Application.ExeName)+'resRub.bmp');
  Image1.Canvas.Draw(0,0,bmp);
end;
Как рисовать по нажатию кнопки. Знаю почему неработает но как сделать чтоб работал. Рисовать можно только используя графические события но мне нужно рисовать по нажатию кнопки
Alexandr17-10 вне форума Ответить с цитированием
Старый 06.09.2013, 20:37   #2
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

bmp.free не забыл? А то будешь потом орать, что память программа съела.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 06.09.2013, 20:52   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А ширина Image по какой задумке нулевая?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.09.2013, 21:02   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А почему не загружать рисунок в сам Image сразу?
Зачем еще битмап левый юзать?

По теме:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var b:TBitmap;
begin
 b:=TBitmap.Create;
  b.LoadFromFile('d:\Бздынь-Бздынь.bmp');
  with Image1 do begin
    Width:=b.Width;
    Height:=b.Height;
    Canvas.Draw(0,0,b);
  end;
 b.Free;
end;
I'm learning to live...

Последний раз редактировалось Stilet; 06.09.2013 в 21:09.
Stilet вне форума Ответить с цитированием
Старый 07.09.2013, 04:39   #5
Alexandr17-10
Пользователь
 
Регистрация: 12.08.2013
Сообщений: 99
По умолчанию

Он мне неотрисовывает картинку в событие кнопки

Вообще это пример размеры поля крестики нолики этап 1 150 на 150 размеры одной ячейки 50 на 50 отрисовка будет идти через Draw в двойном цикле for

Последний раз редактировалось Stilet; 07.09.2013 в 10:44.
Alexandr17-10 вне форума Ответить с цитированием
Старый 07.09.2013, 10:45   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Мой пример помог?
Цитата:
Вообще это пример размеры поля крестики нолики
Для крестиков-ноликов подошел бы DrawGrid как поле. Image тут только мешать будет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.09.2013, 11:09   #7
Alexandr17-10
Пользователь
 
Регистрация: 12.08.2013
Сообщений: 99
По умолчанию

Ну сначала его нужно настроить. А где про него это написано
Alexandr17-10 вне форума Ответить с цитированием
Старый 07.09.2013, 11:57   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
сначала его нужно настроить.
Что там настраивать? Указал кол-во колонок и строк, и описывай событие OnDrawCell для отрисовки ясейки (есть ли в нем крестик или нолик)
Цитата:
где про него это написано
В хелпе конечно же.

Вот примеры есть на форуме:
http://www.programmersforum.ru/showthread.php?t=810
Вот пример шашек: http://www.programmersforum.ru/showthread.php?t=218324
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.09.2013, 14:58   #9
Alexandr17-10
Пользователь
 
Регистрация: 12.08.2013
Сообщений: 99
По умолчанию

1 Все равно на канве в событие Button click не ресуется

2 Все свойства перепробывал и не одно из них не уберает начальное выделения а выделение вообще нужно убрать и оставить только контур

есть ли в drawgrid событие клик по ячейки и чтобы можно получить координатый ячейки на которую нажал

Последний раз редактировалось Stilet; 08.09.2013 в 17:25.
Alexandr17-10 вне форума Ответить с цитированием
Старый 08.09.2013, 15:45   #10
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Alexandr17-10, рисование твое работает...Возможно где-то затираешь изображение...
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как привязать компоненту TComboBox к Button, чтобы при нажатии Button, данные из ComboBox вводились в TstringGrid Marta_ Помощь студентам 2 15.10.2011 01:02
Открывать/создавать папку по нажатию на Button Akemi Общие вопросы Delphi 5 01.09.2010 19:47
Как рисовать через Canvas на TPageControl Манжосов Денис :) Компоненты Delphi 2 24.01.2010 21:33
Как по нажатию на Button открыть документ, выбранный в OpenDialog Stranger333 Общие вопросы Delphi 4 12.11.2009 14:27
Как рисовать на Canvas объектов Jean-Esther Общие вопросы Delphi 2 02.03.2009 02:57