Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Си++ Билдер]кнопка НАЗАД, как довести ее до нормального состояния 
V
    Опции темы
ETQW
Дата 11.6.2009, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Знающие люди, просьба помогите, искал в справке, не нашел функцию для возврата файлов, только для перелистывания вперед. А как же тогда сделать кнопку НАЗАД? 0-о ничего не пойму... Вот текст. ниже, сама программа. Программа представляет собой просмотр иллюстраций с возможностью выбора их из каталога  и таймером . 

Цитата

#include <vcl.h>
#pragma hdrstop

#include "ShowPicMainForm.h"

#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
void __fastcall TForm1::Background()
{
    int x=0,y=0; // координаты левого верхнего угла битового образа

    if ( back->Empty ) // битовый образ не был загружен
        return;

    do {
      do {
        Canvas->Draw(x,y,back);
        x += back->Width;
      }
      while (x < ClientWidth);
      x = 0;
      y += back->Height;
    }
    while (y < ClientHeight);
}

// обработка события OnPaint
void __fastcall TForm1::FormPaint(TObject *Sender)
{
    Background(); // обновить фоновый рисунок
}

// обработка события OnResize
void __fastcall TForm1::FormResize(TObject *Sender)
{
    //Background(); // обновить фоновый рисунок
}



#include <FileCtrl.hpp>  // для доступа к SelectDirectory
#include <jpeg.hpp>      // обеспечивает работу с иллюстрациями в формате JPEG

AnsiString aPath;      // каталог, в котором находится иллюстрация
TSearchRec aSearchRec; // рез-т поиска файла
TSearchRec bSearchRec;

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    aPath = ""; // текущий каталог - каталог, из которого запущена программа
    FirstPicture(); // показать картинку, которая есть в каталоге программы
    PredPicture();

     back = new Graphics::TBitmap(); // создать объект - битовый образ

     // загрузить картинку
    try // в процессе загрузки картинки возможны ошибки
    {
        Form1->back->LoadFromFile("square.bmp");
    }
    catch (EFOpenError &e)
    {
        return;
    }
}

// щелчок на кнопке Каталог
void __fastcall TForm1::Button1Click(TObject *Sender)
{
     if (SelectDirectory("Выберикте каталог, в котором находятся иллюстрации",
                     "",aPath) != 0 )
     {
        // пользователь выбрал каталог и щелкнул на OK
        aPath = aPath + "\\";
        if ( FirstPicture() )  // вывести иллюстрацию
            CheckBox1->Enabled = true;
        else
            Label1->Caption = "В каталоге " + aPath +
                      " нет jpg-иллюстраций." ;
     }
}

// вывести первую картинку и найти следующую
bool __fastcall TForm1::FirstPicture()
{
    Image1->Visible = false;   // скрыть компонент Image1
    Button2->Enabled = false;  // кнопка Дальше недоступна
    CheckBox1->Enabled = false;
    CheckBox1->Checked = false;
    Label1->Caption = "";
    if ( FindFirst(aPath+ "*.jpg", faAnyFile, aSearchRec) == 0)
    {
        Image1->Picture->LoadFromFile(aPath+aSearchRec.Name);
        Image1->Visible = true;
        Label1->Caption = aPath + aSearchRec.Name;
        if ( FindNext(aSearchRec) == 0 )  // найти след. иллюстрацию
        {
            // иллюстрация есть
            Button2->Enabled = true; // теперь кнопка Дальше доступна
            CheckBox1->Enabled = true;

            return true;
        }
    }
    return false;
}
bool __fastcall TForm1::PredPicture()
{
    Image1->Visible = false;   // скрыть компонент Image1
    Button3->Enabled = false;
    CheckBox1->Enabled = false;
    CheckBox1->Checked = false;
    Label1->Caption = "";
    if (FindFirst(aPath+ "*.jpg", faAnyFile, bSearchRec)==0)
    {
        Image1->Picture->LoadFromFile(aPath+bSearchRec.Name);
        Image1->Visible = true;
        Label1->Caption = aPath + bSearchRec.Name;
        if ( FindNext(bSearchRec) == 0 )  // найти след. иллюстрацию
        {
            // иллюстрация есть
            Button3->Enabled = true; // теперь кнопка Дальше доступна
            CheckBox1->Enabled = true;

            return true;
        }
    }
    return false;
}

// вывести текущую и найти следующую картинку
bool __fastcall TForm1::NextPicture()
{
    Image1->Picture->LoadFromFile(aPath+aSearchRec.Name);
    Label1->Caption = aPath + aSearchRec.Name;
    if ( FindNext(aSearchRec) != 0 )  // найти след. иллюстрацию
    {
        // иллюстраций больше нет
        Button2->Enabled = false;   // теперь кнопка Дальше недоступна
        CheckBox1->Enabled = false;
        return false;
    }
    return true;
}
bool __fastcall TForm1::PredNPicture()
{
    Image1->Picture->LoadFromFile(aPath+bSearchRec.Name);
    Label1->Caption = aPath + bSearchRec.Name;
    return true;
}

// щелчок на кнопке Дальше
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    NextPicture();
  {
   if(!Timer1->Enabled)
    Timer1->Enabled=false;
   else
    Timer1->Enabled=true;
   }
}
// щелчок на переключателе "непрерывно"
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
    if ( CheckBox1->Checked)
        Timer1->Enabled = true;  // слайд-шоу
    else
        Timer1->Enabled = false; // по кадрам
}

// Сигнал от таймера - вывести следующую иллюстрацию
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    if ( ! NextPicture())
        Timer1->Enabled = false;
}

void __fastcall TForm1::Button3Click(TObject *Sender)
{
      PredNPicture();
}
//---------------------------------------------------------------------------




Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  __________.rar 935,72 Kb
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




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


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

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