Timer: Text hochlaufen lassen

label1 wird in dem Header Fenster.h deklariert:

Code:
private: System::Windows::Forms::Label^  label1;

#pragma region Windows Form Designer generated code
		/// <summary>
		/// Erforderliche Methode für die Designerunterstützung.
		/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
		/// </summary>
		void InitializeComponent(void)
		{
			this->label1 = (gcnew System::Windows::Forms::Label());

			// 
			// label1
			// 
			this->label1->AutoSize = true;
			this->label1->Location = System::Drawing::Point(328, 413);
			this->label1->Name = L"label1";
			this->label1->Size = System::Drawing::Size(35, 13);
			this->label1->TabIndex = 0;
			this->label1->Text = L"label1";

		}
#pragma endregion

die Funktion ist in der Fenster.cpp:

Code:
#include "Fenster.h"

void Fenster::update(void){
	label1->Location = System::Drawing::Point(328, i);
}

Bekomme leider immer oben genannten Fehler.

Gruß, Gerd
 
Hmm, bin leider nicht so der großer Kenner von Managed C++.
Innerhalb von "InitializeComponent()" scheint's ja mit dem Label keine Probleme zu geben. Versuche doch mal, die Methode "update()" auch mit in die "Fenster.h" zu tun.

Gruß
MCoder
 
Wenn ich die Funktion nicht statisch deklarieren, und die aufrufe, funktioniert es.
Wenn ich das aber mit dem Timer kombinieren möchte, muss es aber statisch sein.
Gibt es da nicht noch eine möglichleit?

Danke
 
Hallo, du kannst einen anderen Timer nehmen:
C++:
// Deklaration
private:
    System::Windows::Forms::Timer^  m_oTimer;
    
// Initialisierung (z.B. im Konstruktor)
    m_oTimer = gcnew System::Windows::Forms::Timer();
    m_oTimer->Tick += gcnew System::EventHandler(this, &Fenster::OnTimerEvent); 
    m_oTimer->Interval = 1000; // Intervall in Millisekunden
    m_oTimer->Start();         // m_oTimer->Stop() zum Anhalten des Timers
    
// Timer Event
    System::Void OnTimerEvent(System::Object^ sender, System::EventArgs^ e)
    {
        // ...
    }
Gruß
MCoder
 
Zurück