Страница 3 из 3

Re: Запуск функции

Добавлено: 22 июл 2009, 11:49
Rycharg
А можно код посмотреть?

Re: Запуск функции

Добавлено: 22 июл 2009, 12:01
Arbis
Rycharg писал(а):А можно код посмотреть?
Unit1.h :

Код: Выделить всё

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
private:	// User declarations
public:		// User declarations
	__fastcall TForm1(TComponent* Owner);
};
class TMyFrm : public TForm
{
__published:	// IDE-managed Components
private:	// User declarations
public:		// User declarations
	__fastcall TMyFrm(TComponent* Owner);
	void __fastcall CallMyFunc(TObject *Sender);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Unit1.cpp (вместо функции для проверки поставил Beep() ):

Код: Выделить всё

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void MyFunc()
{
	Beep();
}
//---------------------------------------------------------------------------
__fastcall TMyFrm::TMyFrm(TComponent* Owner) : TForm(Owner)
{
	this->OnPaint = &CallMyFunc;
}
//---------------------------------------------------------------------------
void __fastcall TMyFrm::CallMyFunc(TObject *Sender)
{
   MyFunc();
   this->OnPaint = NULL;
}
//---------------------------------------------------------------------------

Re: Запуск функции

Добавлено: 22 июл 2009, 12:08
Rycharg

Код: Выделить всё

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
private:    // User declarations
public:  // User declarations
    __fastcall TForm1(TComponent* Owner);
   void __fastcall CallMyFunc(TObject *Sender);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Код: Выделить всё

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
   this->OnPaint = &CallMyFunc;
}
//---------------------------------------------------------------------------
void MyFunc()
{
    Beep();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CallMyFunc(TObject *Sender)
{
   MyFunc();
   this->OnPaint = NULL;
}
//---------------------------------------------------------------------------
Я имел ввиду так.

Re: Запуск функции

Добавлено: 22 июл 2009, 12:24
Arbis
Спасибо! Это то что хотелось получить! :D :D :D :D :D

Re: Запуск функции

Добавлено: 22 июл 2009, 12:48
rangerx
Arbis писал(а):Проблема не в том, чтобы запустить функцию один раз а в том что нужно сначала нарисовать форму программы а только потом запустить мою функцию.
Это должно отработать именно так, как вам и нужно. Правда билдера под рукой сейчас нет...
Arbis писал(а):Функция работает примерно 10 секунд и пользователь просто не будет понимать что происходит если увидит пустой экран :)
Вы думаете, что пользователю будет более понятно, что происходит, если он будет в течении 10 секунд смотреть на зависшую форму? :) Используйте splash-screen, как вам уже и было предложено.

Re: Запуск функции

Добавлено: 22 июл 2009, 13:12
Arbis
rangerx писал(а):Вы думаете, что пользователю будет более понятно, что происходит, если он будет в течении 10 секунд смотреть на зависшую форму?
Есть идея повесить на форму программы ProgressBar + Timer + Label ...

Re: Запуск функции

Добавлено: 22 июл 2009, 13:28
Rycharg
Назревает новая тема: "Заставка в Turbo C++".
Arbis, если у тебя получится пвесить эту связку(ProgressBar + Timer + Label) на главную форму и она будет работать как надо, скинь мне код. Я хочу это видеть!

Re: Запуск функции

Добавлено: 22 июл 2009, 15:01
Arbis
Rycharg писал(а):Назревает новая тема: "Заставка в Turbo C++".
Arbis, если у тебя получится пвесить эту связку(ProgressBar + Timer + Label) на главную форму и она будет работать как надо, скинь мне код. Я хочу это видеть!
Да - неполучается пока, всё работает пока я не запускаю свою функцию (пробовал вешатьTimer2 на запуск функции). Буду думать ...
А с заставками проблем нет, информация есть http://www.citforum.ru/programming/advi ... ce01.shtml

Re: Запуск функции

Добавлено: 22 июл 2009, 16:04
Rycharg
А с заставками проблем нет, информация есть http://www.citforum.ru/programming/a...advice01.shtml
:D Только, вот беда, параллельно с этими заставочками не поработаешь. Они для "красоты", а не для отвлечения внимания пользователя на время загрузки.

Re: Запуск функции

Добавлено: 24 июл 2009, 12:32
Arbis
Rycharg писал(а):Назревает новая тема: "Заставка в Turbo C++".
Arbis, если у тебя получится пвесить эту связку(ProgressBar + Timer + Label) на главную форму и она будет работать как надо, скинь мне код. Я хочу это видеть!
Всё получилось! Запустил свою функцию в другом потоке с TThread и работает прекрасно! :D :D :D :D :D