vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
nach Event zum nächsten Label 
Autor: Erwin1
Datum: 24.12.17 11:51

Hallo,
erst mal Frohe Weihnachten.
Ich hänge mal wieder fest und habe keine Idee mehr, wie ich es umsetzen kann.
Zur Erklärung: Ich habe mir eine Form erstellt, in der mehrere Label enthalten sind, die ich für die Anzeige eines Spielstandes nutzen möchte.
 For i As Integer = 0 To 10
            lbround.Add(New Label With {.Parent = Me, _
                            .Size = New Size(54, 39), .Location = New Point(16, _
                            66 + i * 1 * .Height), _
                            .Name = "lbround", _
                            .BackColor = Color.White, _
                            .BorderStyle = BorderStyle.FixedSingle,
                            .TextAlign = ContentAlignment.MiddleCenter,
                            .Font = New Font("Microsoft San Serif", 14, _
                              FontStyle.Bold)})
In dieser Art sind 5 Reihen, die erste für die Runde, die anderen für die erzielten Punkte pro Runde des jeweiligen Spielers. Über den letzten 4 Labelreihen ist jeweils ein Label für den Spielernamen. Zu Demozwecken lief das ganze, Dank Manfred X, mit einem Timer. Nun ist es mit einem Timer insofern nicht mehr realisierbar, da die Zeit pro Durchgang/Spieler verschieden ist. Ich habe einen Timer laufen, der die Form ständig aktualisiert, da jeder Spieler 3 Versuche hat und ich dies somit aktuell halte.
Nun zu meiner Frage: Wie kann ich es erreichen, das ich nach den 3 Versuchen, in Abhängigkeit, wie viele Spieler es tatsächlich sind, den Fokus auf das entsprechend nächste Label zu setzen.
ReadProcessMemory(CInt(processHandle), &H624BCC, buffer, 4, 0) ' auslesen 
' Rundenanzeige
Es sei noch gesagt, das ich die Möglichkeit habe, per Adresse die Rundenzahl, den Zähler der Versuche und natürlich die erreichten Punkte auslesen kann.
Für den Spielernamen habe ich auch eine Adresse, aber das klappt noch nicht so ganz, obwohl sie fest ist und sich nach einem Neustart nicht ändert( nächste Baustelle ). Durch den Timer kann ich labelindex += 1 nicht verwenden, da er dann zu den nächsten Labeln rast und natürlich nicht die 3 Versuche abwartet. Habe auch schon versucht, den Timer kurz zu stoppen und wieder zu aktivieren, geht aber auch nicht, da mir der Verweis zum nächsten Label fehlt.
Danke schon in voraus für Lösungen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: nach Event zum nächsten Label 
Autor: sv00010
Datum: 24.12.17 12:11

Ich denke du solltest konsequent zwischen Datenerfassung und Anzeige trennen.
Du solltest dir Routinen schreiben, welche nur die benötigten Daten holen und diese in Variablen abspeichern.
Die Anzeige sollte dann nur noch den entsprechenden Wert aus der entsprechenden Variable holen und anzeigen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: nach Event zum nächsten Label 
Autor: Erwin1
Datum: 24.12.17 14:05

Vielen Dank für Deine Antwort.
Da ich aber noch am Anfang meiner Kenntnisse von vb.net bin, wäre es hilfreicher für mich, wenn ich da konkretere Lösungsansätze bekäme. Diese Trennung leuchtet mir ja ein, aber dessen Umsetzung???
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: nach Event zum nächsten Label 
Autor: sv00010
Datum: 24.12.17 15:57

Erwin1 schrieb:
Zitat:

Vielen Dank für Deine Antwort.
Da ich aber noch am Anfang meiner Kenntnisse von vb.net bin,
wäre es hilfreicher für mich, wenn ich da konkretere
Lösungsansätze bekäme. Diese Trennung leuchtet mir ja ein,
aber dessen Umsetzung???

Dazu solltest du erstmal das gesamte Projekt in eine zip-Datei verpacken und ins Internet hochladen (One-Klick-Hoster oder eigene Internetseite).
Man kann nur die Struktur erkennen, wenn man sieht was gebraucht wird.
Im Prinzip solltest du eine Klasse oder ein Module erstellen, welches die Daten einliest und diese dann in einer Variable abspeichert.
Die Daten werden dann über die entsprechende Property von der Anzeige verwendet, wenn die aktualisiert wird.
z.B.
Me.Label_Rundenanzahl.Text = CStr(Module_Daten.Rundenanzahl)
Die Daten sollten über einen Timer alle x Minuten bzw. Sekunden gefüllt werden, damit das was in der Anzeige angezeigt wird auch aktuell ist.

Beitrag wurde zuletzt am 24.12.17 um 16:02:06 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: nach Event zum nächsten Label 
Autor: Franki
Datum: 26.12.17 04:19

Hallo,

bevor du an die Umsetzung gehst solltest du erst mal die Anforderungen genau festlegen. Erst danach kann man etwas zur Umsetzung / Programmierung sagen.

Die Anezige über Labels anzuzeigen ist meiner Meinung nach falsch, denn die brauchen Platz, der ist begrenzt und du bist deswegen gebunden.

Da du von Rundenzeiten sprichst, nimm mal als Beispiel eine 24 Stunden Rennen auf dem Nürburgring, so viele Runden / Fahrer / Autos kannst du in Labels gar nicht darstellen. Aber die Datenerfassung aus den entsprechenden Quellen ist ja kein Proglem einfach rein in eine Datenbank und gut ist es.

Für die Anzeige kannst du dann Steuerelemente Wie ListView, TreeView oder was auch immer verwenden. Oder eigene machen die die interessantesten Daten aus der DB zum jeweiligen Abfragezeitpunkt holen. So wie bei der F1 oder Biathlon z.B.

Du solltest dein Konzept erst mal logisch / strategisch überdenken und optimieren, erst danach geht es an die Programmierung. Das ist bei solchen Sachen der eindeutig bessere Weg seine Software auch zukunftssicher zu machen, egal ob im privaten oder gewerblichen Bereich.

Gruß und guten Rutsch (mit Bestzeit) ins neue Jahr,

Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel