![]() |
stringgrid benutzen
Hey Leute,
kann mir bitte einer erklären, wie OnSelectCell funzt? hab n Memoryspiel programmiert, naja steck noch am Anfang, will aber damit die Karte aufdecken. Ich find im Internet keine verständliche Erklärung, wie ich das nutze :pale: grüße,susi |
Re: stringgrid benutzen
OnSelectCell wird aufgerufen wenn jemand auf eine Zelle der StringGrid-Komponente klickt.
procedure StringGrid1SelectCell(Sender: TObject; ACol,ARow: Integer; var CanSelect: Boolean); ACol Spaltennummer ARow Zeilennummer canselect True Du erlaubst es die Zelle zu selektieren canselect False Du verweigerst es die Zelle zu selektieren -> Die Zelle wird nicht selektiert. |
Re: stringgrid benutzen
ja okay, und wie nutze ich das, was du geschrieben hast nun? :shock:
|
Re: stringgrid benutzen
Delphi-Quellcode:
procedure StringGrid1SelectCell(Sender: TObject; ACol,ARow: Integer; var CanSelect: Boolean);
begin KarteAufdecken(ACol, ARow); end; |
Re: stringgrid benutzen
ja ok, thx
aber guck mal, das is mein code für verdeckte karten
Delphi-Quellcode:
und das onselectcell jetzt so ähnlich??
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState); begin if KartenArray[aCol, arow]=0 then Stringgrid1.Canvas.Draw(rect.left,rect.top,KarteVerdeckt); end; procedure TForm1.FormCreate(Sender: TObject); var i,j:integer; begin for i:=0 to 2 do for j:=0 to 2 do KartenArray[i,j]:=0; KarteVerdeckt:=tbitmap.create; KarteVerdeckt.LoadFromFile(extractfilepath(application.exename)+'clip_image002.bmp'); end; |
Re: stringgrid benutzen
Also als erstes würde ich ein DrawGrid nehmen satt ein Stringgrid, da du anscheinend eh keine Strings benutzt.
Wenn dus ganz simpel machen willst:
Delphi-Quellcode:
[edit]
procedure TForm1.DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean); var rect: TRect; begin rect := DrawGrid1.CellRect(ACol, ARow); DrawGrid1.Canvas.Draw(rect.left, rect.top, KarteAufgedeckt[ACol, ARow]); Sleep(1000); //1000ms warten. In der Zeit kann der Benutzer nichts machen! DrawGrid1.Canvas.Draw(rect.left, rect.top, KarteVerdeckt); end; Mir fällt grad auf, dass man beim Memory ja noch ne 2. Karte gleichzeitig aufdecken kann :) Du musst den Code also entsprechend anpassen... |
Re: stringgrid benutzen
oki, hab ich jetzt eingebaut,
öhm...jetzt sagt der, Klasse besitzt keine Standardeigenschaft (
Delphi-Quellcode:
)
DrawGrid1.Canvas.Draw(rect.left, rect.top, KarteAufgedeckt[ACol, ARow]);
??? |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
TStringGrid/TDrawGrid -> VCL |
Re: stringgrid benutzen
Wie sieht der ganze Code denn aus?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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