Endnu engang HJÆLP!!!!!!!!!!!!!!!!!!!plzzz
Hej Allesammen HJÆLP!!Jeg er ved at lave en skabelon/Skellet til et kortspil.
men jeg kan ikke helt finde ud af det :-(. Jeg har lavet det færdigt men det kører ikke som det skal!!
Jeg har en form med en TMainMenu på med 2 knapper en til at starte et nyt spil med(navn: afslut1 og en til at afslutte spille spillet med(navn: afslut2). Når man trykke på en bunke jeg har lavet i procedure NewGame med musen skal kører en procedure = Mousedown. MEN DEN VIRKER IKKE. det
DER SKER ALSÅ IKKE NOGET NÅR JEG TRYKKE PÅ p1.
hele ser sådan ud:
PROCEDURE:
NEWGAME(på tryk fra afslut1 på TMenu):
procedure TFrmBord.Afslut1Click(Sender: TObject);
begin
NewGame;
end;
OG DEN ANDEN NEWGAME:
procedure NewGame;
begin
p1 := TPile.Create(20, 20, 0, 0);
CTable.addPile(p1);
p2 := TPile.Create(100, 50, 0, 20);
CTable.addPile(p2);
p1.make52;
end;
MOUSEDOWN:
procedure TFrmBord.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var p: TPile; c: TCard;
begin
CTable.GetPileCardAt(x,y,p,c);
if p<>nil then gui.MouseDown(p,c);
end;
OG DEN ANDEN MOUSEDOWN:
procedure MouseDown(Pile: TPile; Card: TCard);
var c: TCard;
begin
if Pile=p1 then
begin
c:=p1.removeCard(Card);
p2.insertAtTop(c);
end;
end;
OG HELE BALADEN:
unit gui;
interface
uses
Windows, Messages, Classes, Graphics, Controls, Forms,
StdCtrls, cardclasses, cardFkt, Menus;
procedure NewGame;
procedure ProgInit;
procedure MouseDown(Pile: TPile; Card: TCard);
procedure MouseUp(Pile: TPile; Card: TCard);
type
TFrmBord = class(TForm)
MainMenu1: TMainMenu;
Nytspil1: TMenuItem;
Afslut1: TMenuItem;
Afslut2: TMenuItem;
procedure FormPaint(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Afslut1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Afslut2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
procedure EraseRect(HFillrect,VFillRect: TRect);
procedure DrawEmptyPile(aType: integer;x1,y1: integer);
procedure CardDrawInverted(x,y,CardNr: integer);
procedure CardDraw(x,y,CardNr: integer);
procedure BackDraw(x,y,BackNr: integer);
end;
var
FrmBord: TFrmBord;
implementation
{$R *.DFM}
uses dialogs,sysutils;
{ her kan du placere globale erklæringer af f.eks. pile }
var p1,p2: TPile;
procedure TFrmBord.EraseRect(HFillrect,VFillRect: TRect);
begin
Canvas.brush.Color:=Color;
Canvas.FillRect(HFillRect);
Canvas.FillRect(VFillRect);
end;
procedure TFrmBord.DrawEmptyPile(aType: integer;x1,y1: integer);
const d=5;
var i: integer;
begin
case aType of
1: _BackDraw(Canvas,x1,y1,14);
2: _BackDraw(Canvas,x1,y1,13);
else
Canvas.Pen.Color:=clLime;
for i:=0 to 1 do
Canvas.RoundRect(x1+i,y1+i,x1+CardWidth-i,y1+CardHeight-i,d,d);
end
end;
procedure TFrmBord.CardDrawInverted(x,y,CardNr: integer);
begin
_CardDrawInverted(FrmBord.Canvas,x,y,CardNr);
end;
procedure TFrmBord.CardDraw(x,y,CardNr: integer);
begin
_CardDraw(FrmBord.Canvas,x,y,CardNr);
end;
procedure TFrmBord.BackDraw(x,y,BackNr: integer);
begin
_BackDraw(FrmBord.Canvas,x,y,BackNr);
end;
procedure TFrmBord.FormPaint(Sender: TObject);
begin
CTable.Refresh;
end;
procedure TFrmBord.Afslut2Click(Sender: TObject);
begin
close
end;
procedure TFrmBord.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CTable.Clear;
end;
procedure NewGame;
{ Kaldes ved start af nyt spil;
skriv evt. initialiseringer ved start af nyt spil;
HUSK først at kalde free for alle skabte objekter fra
evt. tidligere spil }
begin
p1 := TPile.Create(20, 20, 0, 0);
CTable.addPile(p1);
p1.make52;
p2 := TPile.Create(100, 50, 0, 20);
CTable.addPile(p2);
end;
procedure ProgInit;
{ Kaldes ved programstart;
skriv evt. initialiseringer ved programstart i denne procedure }
begin
ShowMessage('hejhej')
end;
procedure MouseDown(Pile: TPile; Card: TCard);
{ kaldes ved MouseDown i bunken Pile på kortet Card;
skriv kode der skal udføres ved MouseDown }
var c: TCard;
begin
if Pile=p1 then
begin
c:=p1.removeCard(Card);
p2.insertAtTop(c);
end;
end;
procedure MouseUp(Pile: TPile; Card: TCard);
{ kaldes ved MouseUp i bunken Pile på kortet Card;
skriv kode der skal udføres ved MouseUp }
var c: TCard;
begin
end;
procedure TFrmBord.FormCreate(Sender: TObject);
begin
ProgInit;
end;
procedure TFrmBord.Afslut1Click(Sender: TObject);
begin
NewGame;
end;
procedure TFrmBord.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var p: TPile; c: TCard;
begin
CTable.GetPileCardAt(x,y,p,c);
if p<>nil then gui.MouseDown(p,c);
end;
procedure TFrmBord.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var p: TPile; c: TCard;
begin
CTable.GetPileCardAt(x,y,p,c);
if p<>nil then gui.MouseUp(p,c);
end;
end.