Autor Beitrag
DummyScript
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Di 27.07.10 17:44 
Hi!

Ich möchte mit einem Label eine Zahl ausgeben indem ich die Text Eigenschaft verändere. Dies muss dann natürlich permanent geschehen. Mein Fenster wurde mit dem Windows Form-Designer von Visual Studio erstellt. Meine Frage ist nun, ob es ein Event gibt, das permanent aufgerufen wird (das ich zum aktualisieren des Labels verwenden kann)? Oder bekomme ich irgendwie Zugriff auf die Hauptroutine des Fensters?

Danke für eure Hilfe!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 27.07.10 17:55 
Deine Frage ist ein bißchen komisch gestellt, aber ich glaube, du meinst einen "Timer". Dort kannst du dann im Tick-Ereignis den Text des Labels aktualisieren, s. z.B. openbook.galileocomp...70da0568dc2968abd117
DummyScript Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Di 27.07.10 18:03 
Ja oder ich mache einen eigenen Thread. Aber auch der Event-Handler des Fensters muss periodisch aufgerufen werden und wenn ich gleich dort die Aktualisierung vornehme spare ich mir das alles. Nur irgendwie finde ich den Teil in dem vom Windows Forms-Designer generierten Code nicht...

Vl. hat damit ja jemand Erfahrung.
DummyScript Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Di 27.07.10 18:27 
Ok ich glaube ich habs gefunden. Das Event heißt Paint.
Äfan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 63

Win XP
MySQL, PHP, Visual C# 2005
BeitragVerfasst: Di 27.07.10 18:44 
wann genau soll denn diese zahl im label verändert werden?

das paint-event halte ich für unsicher, da das event nur gerufen wird, wenn sich das fenster tatsächhlich neu zeichnen muss, was ja nicht immer der fall sein muss.
würde mich hier nicht auf paint verlassen.

_________________
bool AhnungHaben = false;
string SoTunAlsOb = "unbezahlbar";
DummyScript Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Mi 28.07.10 13:29 
Wird das Fenster nicht jeden Frame/Zyklus neu gezeichnet?

Die Zahl sollte immer aktuell dargestellt werden.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 28.07.10 13:36 
ausblenden C#-Quelltext
1:
Wird das Fenster nicht jeden Frame/Zyklus neu gezeichnet?					


Nein nur wenn das Fenster mitbekommt(oder man es im sagt) das sich was geändert hat. Wenn sich nichts ändert wird also auch nicht neu gezeichnet. Warum auch.
DummyScript Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Mi 28.07.10 22:05 
Ok. Gibt es ein Event das jeden Frame aufgerufen wird? Wie wird so etwas normal realisiert?
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 28.07.10 22:51 
Du hast immer noch nicht erzählt, wie oft die Quelle dieses Labels überhaupt aktualisiert wird. Aber jede sinnvolle Anzeigefrequenz eines Labels (also sicherlich nicht 60Hz) kannst du ohne große Auslastung mit einem Timer erreichen.

_________________
>λ=
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19276
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 29.07.10 02:00 
user profile iconDummyScript hat folgendes geschrieben Zum zitierten Posting springen:
Ok. Gibt es ein Event das jeden Frame aufgerufen wird?
Was für ein Frame denn? Hast du da Filme oder eine Animation oder so in deinem Fenster? :gruebel:
Äfan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 63

Win XP
MySQL, PHP, Visual C# 2005
BeitragVerfasst: Do 29.07.10 11:36 
da wir hier alle immernoch keine ahnung haben, wann und wieso du die zahl neu zeichnen willst, muss ich spekulieren:

wenn du eine funktion hast, die z.b. etwas größeres und aufwendigeres macht, dann rufe die in einem eigenen thread auf und lass diese ein event schmeißen. dieses kannst du ja abonieren und demensprechend deine zahl aktualisieren.

oder bei einem festen zyklus und kleinen funktionen einfach einen timer nehmen.

ohne mehr infos kann man eben nur ungefähr erraten, was du machen willst.

_________________
bool AhnungHaben = false;
string SoTunAlsOb = "unbezahlbar";
12profi
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 170

Win 7
C# (VS 2010, #Develop)
BeitragVerfasst: Do 29.07.10 12:51 
wie wäre es mit Label1.Text="1"; oder wenn du einen int hast:

int a=1
Label1.Text=a.ToString();
oder du machst einen Timer der z.b. das kannst du einstellen jede Sekunde eine andere Zahl ausgibt


ich hoffe es hat dir geholfen

mfg 12profi
DummyScript Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Fr 30.07.10 13:54 
Jap werde es wohl mit nem Timer realisieren.

Danke für eure Hilfe!
12profi
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 170

Win 7
C# (VS 2010, #Develop)
BeitragVerfasst: Mo 02.08.10 22:52 
jo wie man jetzt auf Englisch sagen würde :You are welcome