Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: C++/CLI mit .NET ::  label-Inhalt nur für bestimmte Zeit einblenden     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
parabolis
Mitglied

Benutzerprofil
Anmeldungsdatum: 04.08.2010
Beiträge: 26
Beitrag parabolis Mitglied 11:56:18 31.07.2011   Titel:   label-Inhalt nur für bestimmte Zeit einblenden            Zitieren

Hallo Freunde,

sitze von einem Problem, wo ich keine Lösung finden kann. Ich möchte, dass der Inhalt eines Labels (label1->text) nur für eine bestimmte Zeit ausgegeben wird, z.B. für 10 Sekunden, dann aber wieder verschwindet. Ich hatte zuerst folgenden Ansatz gewählt:
C++:
private: System::Void ButtonShow_Click(System::Object^  sender, System::EventArgs^  e) {
            this->label1->Text = Resolution.ToString();
            Sleep(10000);
            this->label1->Text = "";
         }

Doch der Wert der Variable (Resolution) wird nicht ausgegeben. Wenn ich Sleep + die untere nächste Zeile degradiere, so wird der Wert ausgegeben, jedoch dauerhaft. Falls jemand eine Lösung hat, würde ich mich sehr freuen!

Viele Grüße
parabolis
yahendrik
Mitglied

Benutzerprofil
Anmeldungsdatum: 30.04.2011
Beiträge: 237
Beitrag yahendrik Mitglied 12:23:04 31.07.2011   Titel:              Zitieren

Du legst auch den kompletten Thread schlafen, d.h. das Fenster kann nicht neu gezeichnet werden.
Stattdessen könntest du Timer bemühen:
C++:
// statt des Sleep-Aufrufs
SetTimer(/*Fensterhandle*/,
    1, // ID
    10000, // Zeit
    NULL); // keine CB_Funktion

Und dann bei Erhalt der Nachricht WM_TIMER den Text des Labels löschen und per KillTimer den Timer freigeben.

Hast du denn eigentlich eine Fenster-Callback-Funktion? Ich kenne mich mit deiner verwendeten Sprache leider nicht aus.

_________________
Herzliche Grüße, Hendrik.
DarkShadow44
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.06.2009
Beiträge: 1336
Beitrag DarkShadow44 Mitglied 12:45:10 31.07.2011   Titel:              Zitieren

Das sieht mehr nach .NET aus..

Da könntest du dann diesen Timer verwenden.
C++ Forumbot
Forumbot

Benutzerprofil
Anmeldungsdatum: 29.02.2004
Beiträge: 19549
Beitrag C++ Forumbot Forumbot 20:44:22 31.07.2011   Titel:              Zitieren

Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum WinAPI in das Forum C++/CLI mit .NET verschoben.

Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?


Dieses Posting wurde automatisch erzeugt.

_________________
Besuchen Sie unsere Bücherecke.
http://www.c-plusplus.de/bucher.php
Mit jeder Bestellung unterstützen Sie das Forum.
harupis
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.12.2016
Beiträge: 1
Beitrag harupis Mitglied 16:13:57 22.12.2016   Titel:              Zitieren

Hallo , an alle!!
Ich bin hier neu in diesem Forum, ausdiesem Grunde bitte ich euch gnädig mit mir zu sein.
Das ist mein erstes Projekt mit C++/Cli das ich für meine Studium mache.
Leider gab es nur sehr wenig info von meinem Prof wie das alles Funktioniert mit Windows Forms.

Ich habe das selbe Problem wie mein Vorgänger.

ich möchte ein label bzw in meinem Fall eine Textbox die display heist anzeigen lassen für 10 sek und dann soll,
duch eine switch case anweisung der Text ersetz werden duch einen neuen Text.

Leider habe ich schon alles mögliche probiert mit dem Timer aber ich krieg das nicht zum laufen.

Könnte mir einer Schritt für Schritt erklären wie der Timer Funktioniert und wie er anzuwenden ist.

Mein Program soll ein Cola Automat sein.
C++/CLI:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[code]
 
private: System::Void button_1Eur_Click(System::Object^  sender, System::EventArgs^  e) {
                automat.einwurf(1);
       
                if(automat.Geld<=2){
                display->Text ="Bitte werfen Sie Geld ein:\r\n"+"\t\t\t\t\t"+automat.Geld.ToString();
                }
                else{
                 fkt_Display(1);
                automat.Geld=2;
                return ;
                    }
 
private: System::Void timer1_Tick(System::Object^  sender, System::EventArgs^  e) {
           
             }
void fkt_Display(int task){
       
        switch(task){
        case 1:
                   
            display->Text ="Bitte werfen Sie Geld ein:\r\n"+"\t\t\t\t\t"+Convert::ToString(automat.Geld);
            break;
           
           
        case 2:
            timer1->Start();
            display->Text ="Zu viel Geld eingeworfen\r\n"+Convert::ToString(automat.Geld);
            timer1->Stop();
            task=2;
           
 
            break;
           
       
        }
Doug_HH
Mitglied

Benutzerprofil
Anmeldungsdatum: 30.09.2007
Beiträge: 547
Beitrag Doug_HH Mitglied 21:38:16 28.12.2016   Titel:              Zitieren

Das sollte Dir helfen...

Link

Sonst einfach nochmals melden.

_________________
The next time you think you are perfect, try walking on water.
C++ Forum :: C++/CLI mit .NET ::  label-Inhalt nur für bestimmte Zeit einblenden   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.