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;