![]() |
StringGrid
Ich habe ein StringGrid von mit einer Größe von 5x5
und ich möchte eine Art Schiffe versenken programmieren. In den 25 Cellen sollen 5 schiffe sein und 20 nieten. ich hab mir das so gedacht, für die schiffe einsen zu benutzen die zufällig in 5 cellen sind, und der rest mit nullen ausgefüllt ist. das klappt soweit. nur man soll ja die zahlen nicht sehen. und ich weiß nicht wie ich das machen kann. und dann noch eine frage: muss ich den quelltext in eine procedur des formblattes oder in die procedur des stringgrids schreiben? ich habe den quelltext in die procedur des stringgrids geschrieben. schon mal danke für die hilfe und ich hoffe es ist einiger maßen verständlich erklärt. greetzZ HeliTronic :wiejetzt: << so sitz ich immer vor delphi XD vll noch eine kleine info, ich bin schülerin und ich mache das in keinerste weise professionel ^^ |
Re: StringGrid
Du könntest ein Array machen, in dem du dieWerte einträgst und nur bei Bedarf die entsprechnden Felder ins Grid überträgst.
Zitat:
|
Re: StringGrid
Zitat:
Delphi-Quellcode:
StringGrid1. Objects [0, 0]:= pointer (0); // spalte 0 zeile 0
StringGrid1. Objects [0, 1]:= pointer (1); // spalte 0 zeile 1 i:= integer (StringGrid1. Objects [0, 1]); // gibt die 1 zurück Die Eigenschaft Objects enthält für jede Zelle des Gitters ein Objekt. property Objects [ACol, ARow: Integer]: TObject; Beschreibung Mit Objects können Sie auf das Objekt zugreifen, das einer bestimmten Gitterzelle zugeordnet ist. Die Eigenschaften ColCount und RowCount legen die Größe des Arrays fest. ACol gibt die Spalte, ARow die Zeile der Zelle an. Die Zählung der Spalten und Zeilen beginnt bei 0. Hinweis Das String-Gitter ist den Objekten in diesem Array nicht übergeordnet. Wenn das String-Gitter freigegeben wird, existieren die Objekte weiter. Sie müssen von der Anwendung explizit freigegeben werden. |
Re: StringGrid
Ah super =) nun sind die nullen und einsen nicht mehr zu sehen.
VIELEN DANK nun frag ich mich, wie kann ich die cellen so anklicken, dass mir gesagt wird da befindet sich ein treffer oder da befindet sich kein treffer. ich hab das bis jetzt so:
Delphi-Quellcode:
wenn ich dann das programm starte, und in eine celle klicke, egal welche,
var
i,j:integer; begin for i:= 1 to 5 do for j:= 1 to 5 do IF stringgrid1.objects[j,i]=pointer(1) Then showmessage('TREFFER') Else showmessage('kein TREFFER'); end; dann zeigt er mir in einem fenster an: "treffer" oder "kein treffer", je nach dem ob sich in der celle eine eins oder null befindet. er zeigt mir dann aber das fenster 25mal hintereinander an mit eine der beiden informationen (5x treffer; 20x kein treffer). ich möchte aber jede celle einzeln anklicken können und mir dann eine info ausgeben lassen, ob treffer oder nicht. |
Re: StringGrid
Wenn du das Event OnSelectCell benutzt, bekommst du per Parameter Zeile und Spalte der ausgewählten Zelle geliefert.
|
Re: StringGrid
ich hab neben dem ereignis "onSelectCell" "objects" reingeschrieben und enter gedrück.
dann öffnete sich eine procedure
Delphi-Quellcode:
und
procedure Objects(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
Delphi-Quellcode:
aber ich weiß beim besten willen nicht, was ich zwischen begin und end zu schreiben habe, dass
procedure TForm1.objects(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean); begin end; das gewünschte ergebnis erreicht wird :( |
Re: StringGrid
Zitat:
Delphi-Quellcode:
if StringGrid1.Objects[ACol, ARow] = pointer(1) then
ShowMessage('Treffer') else ShowMessage('Kein Treffer'); |
Re: StringGrid
also das is ja nur noch mal für die ausgabe, das hab ich ja schon.
ich hab halt nur das problem, dass ich nich weiß wie ich mit dem ereignis umgehen soll :( , sodass ich jede celle einzeln anklicken kann, und mir dann gesagt wir, ja treffer oder kein treffer. das ist nun mein aktuelles problem. :coder2: |
Re: StringGrid
oh entschuldigung, ich hatte was überlesen
... okay dann klappt das erst mal alles so wie es soll =) vielen dank für die hilfe... :love: *freu* |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz