AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

stringgrid benutzen

Ein Thema von funkuchn · begonnen am 4. Mär 2010 · letzter Beitrag vom 9. Mär 2010
Antwort Antwort
funkuchn

Registriert seit: 20. Sep 2009
Ort: Boblitz
81 Beiträge
 
Delphi 6 Professional
 
#1

stringgrid benutzen

  Alt 4. Mär 2010, 14:37
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
grüße,susi
  Mit Zitat antworten Zitat
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: stringgrid benutzen

  Alt 4. Mär 2010, 14:51
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.
  Mit Zitat antworten Zitat
funkuchn

Registriert seit: 20. Sep 2009
Ort: Boblitz
81 Beiträge
 
Delphi 6 Professional
 
#3

Re: stringgrid benutzen

  Alt 4. Mär 2010, 14:52
ja okay, und wie nutze ich das, was du geschrieben hast nun?
  Mit Zitat antworten Zitat
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: stringgrid benutzen

  Alt 4. Mär 2010, 15:02
Delphi-Quellcode:
procedure StringGrid1SelectCell(Sender: TObject; ACol,ARow: Integer; var CanSelect: Boolean);
begin
   KarteAufdecken(ACol, ARow);
end;
  Mit Zitat antworten Zitat
funkuchn

Registriert seit: 20. Sep 2009
Ort: Boblitz
81 Beiträge
 
Delphi 6 Professional
 
#5

Re: stringgrid benutzen

  Alt 4. Mär 2010, 15:07
ja ok, thx
aber guck mal, das is mein code für verdeckte karten
Delphi-Quellcode:
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;
und das onselectcell jetzt so ähnlich??
  Mit Zitat antworten Zitat
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: stringgrid benutzen

  Alt 4. Mär 2010, 16:12
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:
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;
[edit]
Mir fällt grad auf, dass man beim Memory ja noch ne 2. Karte gleichzeitig aufdecken kann
Du musst den Code also entsprechend anpassen...
  Mit Zitat antworten Zitat
funkuchn

Registriert seit: 20. Sep 2009
Ort: Boblitz
81 Beiträge
 
Delphi 6 Professional
 
#7

Re: stringgrid benutzen

  Alt 9. Mär 2010, 13:57
oki, hab ich jetzt eingebaut,
öhm...jetzt sagt der, Klasse besitzt keine Standardeigenschaft (DrawGrid1.Canvas.Draw(rect.left, rect.top, KarteAufgedeckt[ACol, ARow]); )
???
  Mit Zitat antworten Zitat
9. Mär 2010, 13:58
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
TStringGrid/TDrawGrid -> VCL
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

Re: stringgrid benutzen

  Alt 9. Mär 2010, 14:22
Wie sieht der ganze Code denn aus?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:09 Uhr.
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