Avatar billede 17196 Nybegynder
18. marts 2003 - 10:37 Der er 1 kommentar og
1 løsning

Kryds og bolle?

Er der én der kan hjælpe mig lidt i Delphi? Jeg skal lave et kryds og bolle spil. Jeg har lavet et string grid, og vil gerne vide hvordan man bruger drag and drop! Et eksempel ville være at foretrække. F.eks. hvordan man trækker et billede fra et felt til et andet.
På forhånd tak for hjælpen!
Avatar billede hreiff Nybegynder
18. marts 2003 - 13:50 #1
Lav en form med en stringgrid på
sæt fixedcols og fixedrows til 0
sæt rowcount og colcount til 3
sæt defaultrowheight og defaultcolwidth til 60
sæt dragmode til dmAutomatic
sæt width og height til 184

lav 2 globale variable:

var
  gx,gy: integer;


lav følgende events:

procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.cells[0,0] := 'X';
  StringGrid1.cells[1,1] := 'Y';
  StringGrid1.cells[2,2] := 'Z';
end;

procedure TForm1.StringGrid1DragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
  If (sender is TStringGrid) and (Source is TStringGrid) then
  begin
    (Sender as TStringGrid).cells[(X DIV 60),(Y Div 60)] := StringGrid1.cells[(gx div 60),(gy div 60)];
  end;
end;

procedure TForm1.StringGrid1DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
  Accept := True;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  gx := x;
  gy := y;
end;

Nu kan du trække x,y og z til de andre felter.
Avatar billede hreiff Nybegynder
18. marts 2003 - 14:16 #2
Jeg havde lige lidt problemer med den.

Sæt Dragmode til dmManual og indsæt følgende i mousedown eventen:
(Det skal selvfølgelig være StringGrid1MouseDown og ikke Formens)

  StringGrid1.BeginDrag(False);


dvs:

procedure TForm1.StringGrid1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  gx := x;
  gy := y;
  StringGrid1.begindrag(False);
end;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester