Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Fokus auf mehrere Komponenten setzen (https://www.delphipraxis.net/187996-fokus-auf-mehrere-komponenten-setzen.html)

Freyr77 22. Jan 2016 09:18

Delphi-Version: 10 Seattle

Fokus auf mehrere Komponenten setzen
 
Hallo miteinander.

Weil ich neu bin eine wichtige Info: Ich bin Azubi zum Anwendungsentwickler (gerade mit den ersten 4 Monaten durch, wenig Vorwissen). Wir arbeiten in unserer Firma ausschließlich mit Delphi 10 Seattle.

Nun programmiere ich gerade in Eigeninitiative einen Dartzähler, der das Schreiben auf Papier bei nicht elektronischen Dartscheiben erspraren soll, und auch selbstständig rechnet. Die Dartscheibe wurde von mir mit Buttons simuliert, also für jedes Feld das man treffen kann ein Button. Die Spielernamen sind in einem Label gespeichert, neben den Spielernamen habe ich jetzt mal einen Radiobutton gesetzt. Für jeden Spieler gibt es noch zwei zusätzliche Labels, einmal für den Punktestand und einmal für die Anzahl der gespielten Runden.

Mein Problem ist der Fokus, und zwar gänzlich. Mir ist bewusst, dass es irgendeine Prozedur in "OnSpielStartButtonClick" sein muss, aber wie schreibe ich die? Der Fokus soll am Anfang auf Spieler1 liegen, nach 3 Würfen soll ein Button gedrückt werden und dann der Fokus auf dem nächsten Spieler und so weiter ...

Wie setzte ich diesen Fokus, der alle Labels des jeweiligen Spielers umschließt, bis der Button gedrückt wird?

Ich wäre euch für Hilfe sehr dankbar. Wenn ihr etwas braucht (Bild der Form oder Code) poste ich das gerne.

Sir Rufo 22. Jan 2016 09:27

AW: Fokus auf mehrere Komponenten setzen
 
Crossposts bitte mit angeben

Jumpy 22. Jan 2016 09:30

AW: Fokus auf mehrere Komponenten setzen
 
Es können afaik nicht mehrere Controls den Fokus haben und ich kann mir auch nicht ganz Vorstellen, wie du das meinst bzw. was du erreichen willst. Deßhalb mal ein genereller Tipp: Versuche die Rundenzahl, die Spielstände der Spieler, die Anzahl und Namen der Spieler und auch wer gerade aktiver Spieler ist nicht in irgendwelchen Controls (Labeln/Edits usw.) der GUI zu merken sondern benutze dafür Variablen und da Delphi ja OOP ist wären auch passende Objekte/Klassen eine feine Sache.

Im allgemeinen spricht man davon, die GUI nicht für die Datenhaltung zu benutzen, sondern nur um eine Repräsentation der Daten (die du anderswo in einer Logik gespeichert hast) für den Nutzer anzuzeigen.

Mögliche Klassen/Objekte könnten sein:
- Spiel
- Spielrunde
- Spieler
- Scoreboard
- ???

Freyr77 22. Jan 2016 09:51

AW: Fokus auf mehrere Komponenten setzen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1327804)
Crossposts bitte mit angeben

Alles klar. Habe das hier gefragt weil die Aktivität der User höher ist.

Sir Rufo 22. Jan 2016 09:56

AW: Fokus auf mehrere Komponenten setzen
 
Ich denke mal der Titel Fokus auf mehrere Komponenten setzen ist etwas unglücklich (zumal sowieso nur Controls den Fokus haben können - sind auch Komponenten aber nicht jede Komponente ist ein Control ;)).

Es geht wohl eher um die Visualisierung welcher Spieler gerade aktiv ist und die Spieler-Visualisierung selber umfasst ein paar Controls für den Spielernamen, Punktestand, etc.

Man kann sich für den Spieler ein Frame erstellen und dieses Frame eben x-mal auf der Form platzieren. Gibt man dem Frame jetzt noch eine Eigenschaft wie z.B. IsCurrent oder IsSelected dann kann man im Setter entsprechend reagieren.
Zitat:

Zitat von Freyr77 (Beitrag 1327806)
Zitat:

Zitat von Sir Rufo (Beitrag 1327804)
Crossposts bitte mit angeben

Alles klar. Habe das hier gefragt weil die Aktivität der User höher ist.

Das "Warum" ist mir schon klar :stupid:

Freyr77 22. Jan 2016 10:54

AW: Fokus auf mehrere Komponenten setzen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal ein (etwas unsauber ausgeschnittenes) Bild, wie die Form Aussieht. Neben "lblspieler1" und "lblspieler2" befinden sich jeweils die Labels für den Punktestand und die gespielten Runden.

Ich hätte gerne, dass festgelegt wird welcher Spieler gerade spielt (über das Label, falls das geht) und bei Klick auf den z.b. 20er Button die Werte jeweils angepasst werden. Aber eben nur für den Spieler, der gerade dran ist.

Freyr77 22. Jan 2016 10:58

AW: Fokus auf mehrere Komponenten setzen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1327807)
Ich denke mal der Titel Fokus auf mehrere Komponenten setzen ist etwas unglücklich (zumal sowieso nur Controls den Fokus haben können - sind auch Komponenten aber nicht jede Komponente ist ein Control ;)).

Es geht wohl eher um die Visualisierung welcher Spieler gerade aktiv ist und die Spieler-Visualisierung selber umfasst ein paar Controls für den Spielernamen, Punktestand, etc.

Man kann sich für den Spieler ein Frame erstellen und dieses Frame eben x-mal auf der Form platzieren. Gibt man dem Frame jetzt noch eine Eigenschaft wie z.B. IsCurrent oder IsSelected dann kann man im Setter entsprechend reagieren.
Zitat:

Zitat von Freyr77 (Beitrag 1327806)
Zitat:

Zitat von Sir Rufo (Beitrag 1327804)
Crossposts bitte mit angeben

Alles klar. Habe das hier gefragt weil die Aktivität der User höher ist.

Das "Warum" ist mir schon klar :stupid:

Wenn ich den Frame erstellt habe, und ihn bei OnCreate erzeugen lasse, wie spreche ich hier die Komponenten von dem Frame an?

TiGü 22. Jan 2016 11:00

AW: Fokus auf mehrere Komponenten setzen
 
Mein Werbeblocker meldet bilder-upload.eu als Malware-Schleuder.
Bitte hänge den Screenshot einfach hier am Beitrag an.
Siehe Button "Anhänge verwalten" fünf Zentimeter und den "Antworten"-Button.

frankyboy1974 22. Jan 2016 11:17

AW: Fokus auf mehrere Komponenten setzen
 
hallo,

um hervorzuheben welcher Speiler gerade an der Reihe ist, würde ich dessen Label's einfach Fett und ggf. mit einer größeren Schriftart darstellen.

mfg

Freyr77 22. Jan 2016 11:45

AW: Fokus auf mehrere Komponenten setzen
 
Zitat:

Zitat von TiGü (Beitrag 1327816)
Mein Werbeblocker meldet bilder-upload.eu als Malware-Schleuder.
Bitte hänge den Screenshot einfach hier am Beitrag an.
Siehe Button "Anhänge verwalten" fünf Zentimeter und den "Antworten"-Button.

- Beitrag editiert!


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:16 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz