![]() |
Stringgrid - Problem
Hallo,
Ich lerne gerade in meinem ersten Jahr Delphi, und habe problem bei einem Stringgrid. Ich hab die Werte Acol und Arow bei einer onSelectCell Methode, aber ich weiß nicht, wie ich die Zelle "anpreche" Bsp:
Delphi-Quellcode:
blödes Bsp, aber nur um das Problem zu verdeutlichen.
If an[1] = true
then sg_Musik[Wie spreche ich die zelle an?].text = "super"; Ich hoffe auf eine weiterhelfende Antworte MfG Spicker |
Re: Stringgrid - Problem
Hi Spicker!
Versuche es mal damit
Delphi-Quellcode:
Der originale Befehle dafür heißt:
If an[1] = true
then sg_Musik.Cells[Col, Row] = "super";
Delphi-Quellcode:
Hoffe du kannst damit was anfangen :lol:
Cells[ACol: Integer; ARow: Integer]: string;
Flare |
Re: Stringgrid - Problem
Herzlich willkommen in der Delphi-PRAXiS, Spicker.
Das wichtige hat Flare ja schon geschrieben. Hier noch ein paar kleine Anmerkungen.
Delphi-Quellcode:
Zeichenketten-Literale bitte in einfachen Hochkommata, Zuweisungs- und Gleichheits-Operator nicht verwechseln und Col und Row sind Eigenschaften vom StringGrid. Das Ergebnis eines booleschen Ausdrucks (bei dir an[1]) muss übrigens nicht noch mit einem Literal verglichen werden.
if an[1] then
with sg_Musik do Cells[Col, Row] := 'super'; Freundliche Grüße vom marabu |
Re: Stringgrid - Problem
Zitat:
Is ja eigentlich auch egal Flare |
Re: Stringgrid - Problem
Hey danke =)
hat mir sehr geholfen Spicker |
Re: Stringgrid - Problem
Ich habe nun ein neues Problem, wo ich absolut ratlos bin...
Delphi-Quellcode:
An der Fett markierten Stelle bekomme ich folgende Fehlermeldung:
procedure Tf_lampenspiel.sg_LampenDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState); var i, k, j: integer; begin j := 0; Setlength (aLampen,se_groesse.value,se_groesse.value); if aLampen[Acol,Arow] then sg_lampen.canvas.brush.color := clblue else sg_lampen.canvas.brush.color := clwhite; sg_lampen.canvas.fillrect(rect); for i := 0 to (se_groesse.value-1) do for k := 0 to (se_groesse.value-1) do begin //Hab ich gewonnen? If sg_lampen.cells[i,k] = clblue [B]then inc(j);[/B] end; If j = se_groesse.value * 2 then showmessage('Herzlichen Glückwunsch, sie haben Gewonnen! Sie haben ' + IntToStr(zuege) + ' Züge gebraucht. Das Feld wird zurückgesetzt.') end; Zitat:
MfG |
Re: Stringgrid - Problem
Ich würde sagen der Fehler liegt in diesem Code-Schnipselchen:
Delphi-Quellcode:
Du versuchst ein Feld auf eine Konstante zu überprüfen, welche beim Kompilieren mit einer Integer-Zahlenwert ersetzt wird. Man kann allerdings nicht einen Integer mit einem String vergleichen (Cells gibt einen String zurück, habe ich ja oben geschrieben). Außerdem glaube ich solltest du noch einmal das überprüfen, ich meine du möchtest doch überprüfen ob die Celle blau ist und nicht ob der Inhalt "blau" heißt, oder?
If sg_lampen.cells[i,k] = clblue
Mfg, Flare |
Re: Stringgrid - Problem
Danke, ich hab mir es andern überlegt, und habe das problem umgangen, indem ich das Array geprüft habe, nicht die Zellen.
Delphi-Quellcode:
MfG
If aLampen[i,k] = true
then inc(j); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 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 by Thomas Breitkreuz