Objekt benutzen, welches versteckt ist
-
Hallo, ich programmiere gerade eine Mühle-Umsetzung fpr den PC.

Ich habe an alle Positionen wo ein Stein sein könnte ein Label hingesetzt. Nun möchte ich diese aber nicht sichtbar haben, wenn dort kein "Stein" ist. Wenn ich dies mache und dann möchte das wen man z.B. auf Stein A klickt und dann auf das unsichtbare feld soll Stein A unsichtbar werden und an der stelle des unsichtbaren Labels soll sieses dann sichtbar werden(Ich nutze farbige Labels als Spielsteine). Dummerweise funzt das nur dann, wenn sie sichtbar sind. Gíbt es eine möglichkeit das Label auch zu nutzen wenn es unsichtbar ist?
-
Nicht im Sinne von: reagieren auf Maus!
Mach doch nur die Caption leer oder mit Text. Die Farbe auch.
Die Labels aber immer sichtbar.
-
oder mach es doch einfach mit TImage.. füll das TImage mit einer Farbe.. später kannst du dan dort auch gleich die Spielsteine-Bilder einfügen
BigNeal
-
@DerAltenburger: Cption ist klar,leer machen und vor her Autosize auf false setzten, aber wenn ich Color= clNone mache, dann ist das Label schwarz.

@BigNeal: Du hast natürlich recht, dass tImage nützlicher als TLabel ist, aber wenn ich das Label mit ner Farbe fülle wär es doch wie beim Label. Wo kein Stein ist müsste ich es ja dann Weiß oder so ausfüllen und ich finde das sieht scheiße aus.

-
wie sieht dein Hintergrund/Brett asu?
Auf was für einer Komponente? ein einem TImage?
-
Ich habe mit Hilfe von Labels auf einen Panel ein Mühle-Feld nachgebaut.

-
DSD-Steve schrieb:
Ich habe mit Hilfe von Labels auf einen Panel ein Mühle-Feld nachgebaut.

ist jetzt eine Verarschung oder

ne mal im ernst, das kann doch nicht der richtige lösungsansatz sein.
Zeichne doch zB in einem TImage das Feld mit TCanvas. Und beim Click auf das Image kannst du abfragen wo der Mauszeiger ist und somit bestimmen über welchem Spielfeld/Stein er ist.BigNeal
-
Ich progge noch nicht extrem lange BCB. Ich weis zwar das man mit Canvas was zeichnen kann, hab damit aber bisher damit eher nur Punkte gemacht.
-> es istnalso keine verarsche, hab auch schon nen Schachfeld mit Labels gemacht. Kennste nen Link wo ich Cancas gut beschrieben bekomme?
-
Eigentlich wird das in der BCB-Hilfe schon ganz gut erklärt.
Du musst dir nur auch alle Eigenschaften, Methoden usw. auch anschauen!
-
Hallo
außerdem gibt es auch unter <BCB-Path>Examples\Apps\Canvas noch ein Beispiel.
bis bald
akari
-
Mit diesesn Beispiel komm ich nicht ganz zurecht. Kann mir vielleicht mal einer ein Beispiel posten das nicht so komplex ist? z.B. das einfach nur ein Quadrat gezeichnet wird.
Bin halt noch Anfänger, aber schon mal thx im vor raus.

-
Hallo
hier bitte ein einfaches Quadrat, einfach in einer Methode wie OnPaint (aber nicht Konstruktor oder OnCreate) einbauen :
Canvas->Rectangle(10, 10, 100, 100);bis bald
akari
-
Omg, bin halt totaler Anfänger, Metoden...
Ich nutze bisher eigentlich immer die die, die automatisch erstellt werden...
(hab in FAQ nichts gefunden zu diesen Thema, wär über nen Link sehr dankbar.)
-
Hallo
Ich nutze bisher eigentlich immer die die, die automatisch erstellt werden...
Und was hindert dich daran, für das OnPaint-Ereignis des Forms über den Objektinspektor eine Methode zuerstellen?
(hab in FAQ nichts gefunden zu diesen Thema, wär über nen Link sehr dankbar.)
Was für ein Thema meinst du genau? Wenns um Methoden allgemein geht, dann schau die ein Grundlagentutorial zum Thema OOP an, wie das hier.
bis bald
akari
-
DSD-Steve schrieb:
Omg, bin halt totaler Anfänger, Metoden...
Ich nutze bisher eigentlich immer die die, die automatisch erstellt werden...
(hab in FAQ nichts gefunden zu diesen Thema, wär über nen Link sehr dankbar.)Sach mal.....wie haste denn dann es geschafft ein TicTacToe zu programieren?

Copy & Paste?

-
Wieso Copy und Paste?

Soll ich mal nen Quellcode-Schnippsel zum Beweis reinposten? :pAlso ich hab das jetzt hinbekommen und hab das Mühlefeld gezeichnet mit TCanvas. Aber wo liegt dabei der Vorteil? Die Datei ist genau so groß(nagut ein paar 100Kilo ist sie kleiner
) wie die, die ich mit Label gemacht habe. 
Und nun zu meinen Ursprungsproblem zurück. Ich wollte jetzt die Methode OnMouseDown verwenden und die Hilfe sagt folgendes:
X und Y geben die Pixel-Koordinaten des Mauszeigers im Client-Bereich von Sender an.
Jetzt meine Frage: Wenn ich nur ein X und ein Y definiere, wie soll das gabnze dann für eine ganze Fläche funzen? Ich brauche doch eigentlich genau wie bei Canvas->Rectangle doch eigentlich 4 Werte?
-
Hallo
Eine Mausposition hat genau einen X- und einen Y-Wert. Es ist ein Punkt und kein Rechteck.
Wenn du nun wissen willst, ob dieser punkt in einem von dir definierten Recheckt liegt, must du schon selber einen Vergleich über die Ecken des Rechtecks anstellen.
bis bald
akari
-
Ist dies denn effektiv oder sollte ich lieber eine andere Methode verwenden?
-
das ist für Canvas die effektivste Methode, frage einfach ab, ob dein Punkt(X,Y) in dem Bereich des Rechtecks liegt und reagiere je nachdem.
-
Hallo
Es läßt sich nicht anders lösen.
Wenn du natürlich mehrere Rechtecke in einem gewissen berechenbaren System angelegt hast, läst sich sowas auch berechnen anstatt einzeln vergleichen.bis bald
akari