Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Смена картинок 
:(
    Опции темы
Ram1reS
Дата 22.3.2010, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 25.4.2008
Где: Москва

Репутация: 3
Всего: 5



Не инициализирован rect.
--------------------
 
PM MAIL ICQ   Вверх
bango
Дата 22.3.2010, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



Вообще засада компилируется все без ошибок но картинки я не вижу вот код smile 
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace банер_2
{
    public partial class Form1 : Form
    {
        // область, в которой находится картинка
        Rectangle scr;
        Rectangle kadr;
        // рабочая графическая поверхность
        System.Drawing.Graphics g;
        // битовы образ
        System.Drawing.Bitmap baner;
        const int NKADR = 6;
        int c,w,h;
        public Form1()
        {
            InitializeComponent();
            try
            {
                // рабочая графическая поверхность
                g = this.CreateGraphics();
                // загрузить рисунок на форме
                baner = new Bitmap("risk_1.bmp");
                h = baner.Height;
                w = baner.Width / NKADR;
                scr = new Rectangle(10, 10, 10 + w, 10 + h); // положение и размер
                kadr = new Rectangle(0, 0, w, h);        // положение и размер 
            }
            catch (Exception exception)
            {
                MessageBox.Show("Файл  не найден.\n",
                    "Вот это потеря потерь",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                this.Close();// закрыть приложение
                return;
            }
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (c < NKADR)
            {
                c++;
                kadr.Height += w;// воспроизводимый в данный момент
                kadr.Width += w;// кадр не последний
            }
            else
            {
                c = 0;
                kadr.Height = 0;
                kadr.Width = 0;
            }
        }
    }
}

PM MAIL   Вверх
nmn
Дата 22.3.2010, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: 1
Всего: 1



а где что то вроде DrawImage?
PM Skype   Вверх
bango
Дата 23.3.2010, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



а можно по подробней у меня картина выводится как фон заранее благодарю за помощь.
PM MAIL   Вверх
nmn
Дата 23.3.2010, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: 1
Всего: 1



запятые, запятые, где же вы???
я имею ввиду: где уведомление о перерисовке изменившегося кадра, либо где эта перерисовка?
PM Skype   Вверх
bango
Дата 24.3.2010, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



Я и так пробовал у меня получается фон или вообще нечего прошу, окажите медвежью услугу выложите рабочий пример  я просто в отчаянье как тут все запутано такая казалось легкая задачка, а обернулась такой проблемой. smile 
PM MAIL   Вверх
bango
Дата 24.3.2010, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



Н.Култин Visual C# в задачах и примерах не предлагать пример PLANE не рабочий     
PM MAIL   Вверх
nmn
Дата 24.3.2010, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: 1
Всего: 1



Цитата(bango @  24.3.2010,  17:12 Найти цитируемый пост)
Я и так пробовал

будьте добры покажите как вы пробовали
PM Skype   Вверх
bango
Дата 25.3.2010, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



Делаю вот так.
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace банер_2
{
    public partial class Form1 : Form
    {
        // область, в которой находится картинка
        Rectangle scr;
        Rectangle kadr;
        // рабочая графическая поверхность
        System.Drawing.Graphics g;
        // битовы образ
        System.Drawing.Bitmap baner;
        const int NKADR = 6;
        int c, w, h;
        public Form1()
        {
            InitializeComponent();
            try
            {
                // рабочая графическая поверхность
                g = this.CreateGraphics();
                // загрузить рисунок на форме
                baner = new Bitmap("risk_1.bmp");
                h = baner.Height;
                w = baner.Width / NKADR;
                scr = new Rectangle(0, 0, 243 + w, 240 + h); // положение и размер
                kadr = new Rectangle(0, 0, w, h);        // положение и размер 

            }
            catch (Exception exception)
            {
                MessageBox.Show("Файл  не найден.\n",
                    "Вот это потеря потерь",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                this.Close();// закрыть приложение
                return;
            }
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (c < NKADR)
            {
                c++;
                kadr.Height += w;// воспроизводимый в данный момент
                kadr.Width += w;// кадр не последний
            }
            else
            {
                c = 0;
                kadr.Height = 0;
                kadr.Width = 0;
            }
            // рисуем  на рабочей поверхности
            // (фактически на поверхности формы),
            // но для того, чтобы изменеия появились,
            // надо инициировать обновление формы
            g.DrawImage(baner, new Point(0, 0));
            if (true)
                // обновить область формы,
                // в которой находится объект
                this.Invalidate(kadr);
            else
            {
                // если объект находится вне области,
                // указанной в качестве параметра метода
                // Invalidate, то от не будет виден
                 Rectangle reg = 
                           new Rectangle(0,0,
                           kadr.Width, kadr.Height);
                // показать обновляемую область
                g.DrawRectangle(Pens.Black,
                    reg.X, reg.Y, kadr.Width, kadr.Height);
                this.Invalidate(reg); // обновить область
            }
        }
    }
}

PM MAIL   Вверх
nmn
Дата 25.3.2010, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: 1
Всего: 1



Цитата(bango @  25.3.2010,  17:43 Найти цитируемый пост)

g.DrawImage(baner, new Point(0, 0));
            if (true)
                // обновить область формы,
                // в которой находится объект
                this.Invalidate(kadr);
            else
            {
                // если объект находится вне области,
                // указанной в качестве параметра метода
                // Invalidate, то от не будет виден
                 Rectangle reg = 
                           new Rectangle(0,0,
                           kadr.Width, kadr.Height);
                // показать обновляемую область
                g.DrawRectangle(Pens.Black,
                    reg.X, reg.Y, kadr.Width, kadr.Height);
                this.Invalidate(reg); // обновить область
            }

if(true)??? это странно smile
потом вызывается invalidate, это приводит к тому что вызывается обработчик отрисовки формы, он то и стирает изображение

PM Skype   Вверх
bango
Дата 25.3.2010, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



Ну и что делать?
PM MAIL   Вверх
nmn
Дата 25.3.2010, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: 1
Всего: 1



перемести g.DrawImage в обработчик отрисовки
PM Skype   Вверх
bango
Дата 25.3.2010, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



Не работает smile 
PM MAIL   Вверх
nmn
Дата 25.3.2010, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: 1
Всего: 1



это уже странно
а хоть что то рисует? 
имей ввиду в FormPaint в параметрах передается уже готовый графический контекст, так что его самастоятельно получать через CreateGraphics не нужно
PM Skype   Вверх
bango
Дата 26.3.2010, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



С этой проблемой разобрался картинку стало показывать но теперь проблема в другом  у меня картинка выглядит вот так   |1|2|3|4|5|6| как мне вывести 1кадр, а потом производить смещение в лево                                                                                                        
                                                                                                                                                                                                                

PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.