10. februar 2002 - 17:06
Der er
11 kommentarer
Usses
Hej alle!!
PROBLEM=Jeg har en 2 unit'er kaldet cardclasses og cardfkt. Og denne unit skal bruges under både interface og implementation i en anden unit kaldet gui. Men det kan den jo ikke eller hvad???
Baladen:
interface
uses
Windows, Messages, Classes, Graphics, Controls, Forms,
StdCtrls, Menus, >>>>>cardclasses<<<<<, >>>>>cardfkt<<<<<;
procedure MouseDown(Pile: TPile; Card: TCard);
procedure MouseUp(Pile: TPile; Card: TCard);
type
implementation
{$R *.DFM}
uses dialogs, sysutils,>>>>>cardclasses<<<<<,>>>>>cardfkt<<<<<;
11. februar 2002 - 09:53
#7
jamen hvorfor kan jeg så ikke få min gui.mousedown/mouseup til at virke jeg troede at det var galt med usses den ser sådan ud:
unit gui;
interface
uses
Windows, Messages, Classes, Graphics, Controls, Forms,
StdCtrls, Menus, cardclasses, cardfkt;
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
showmessage('Jeg blev kørt!!');
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.
11. februar 2002 - 09:55
#8
det er min mousedown der ikke virker jeg troede det var usses:
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 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
showmessage('Jeg blev kørt!!');
end;
end;