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

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Rycharg
Сообщения: 28
Зарегистрирован: 15 апр 2009, 14:23
Откуда: SPb

А можно код посмотреть?
Arbis
Сообщения: 25
Зарегистрирован: 05 авг 2008, 14:40

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;
}
//---------------------------------------------------------------------------
Rycharg
Сообщения: 28
Зарегистрирован: 15 апр 2009, 14:23
Откуда: SPb

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

#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;
}
//---------------------------------------------------------------------------
Я имел ввиду так.
Arbis
Сообщения: 25
Зарегистрирован: 05 авг 2008, 14:40

Спасибо! Это то что хотелось получить! :D :D :D :D :D
rangerx
Сообщения: 28
Зарегистрирован: 01 июл 2009, 10:30

Arbis писал(а):Проблема не в том, чтобы запустить функцию один раз а в том что нужно сначала нарисовать форму программы а только потом запустить мою функцию.
Это должно отработать именно так, как вам и нужно. Правда билдера под рукой сейчас нет...
Arbis писал(а):Функция работает примерно 10 секунд и пользователь просто не будет понимать что происходит если увидит пустой экран :)
Вы думаете, что пользователю будет более понятно, что происходит, если он будет в течении 10 секунд смотреть на зависшую форму? :) Используйте splash-screen, как вам уже и было предложено.
Arbis
Сообщения: 25
Зарегистрирован: 05 авг 2008, 14:40

rangerx писал(а):Вы думаете, что пользователю будет более понятно, что происходит, если он будет в течении 10 секунд смотреть на зависшую форму?
Есть идея повесить на форму программы ProgressBar + Timer + Label ...
Rycharg
Сообщения: 28
Зарегистрирован: 15 апр 2009, 14:23
Откуда: SPb

Назревает новая тема: "Заставка в Turbo C++".
Arbis, если у тебя получится пвесить эту связку(ProgressBar + Timer + Label) на главную форму и она будет работать как надо, скинь мне код. Я хочу это видеть!
Arbis
Сообщения: 25
Зарегистрирован: 05 авг 2008, 14:40

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

А с заставками проблем нет, информация есть http://www.citforum.ru/programming/a...advice01.shtml
:D Только, вот беда, параллельно с этими заставочками не поработаешь. Они для "красоты", а не для отвлечения внимания пользователя на время загрузки.
Arbis
Сообщения: 25
Зарегистрирован: 05 авг 2008, 14:40

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