unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, jpeg, XPMan, StdCtrls, ComCtrls, Menus, ToolWin,
Buttons, JvHtControls, JvGIF, ImgList, Contnrs;
type
TForm1 =
class(TForm)
XPManifest1: TXPManifest;
Label1: TLabel;
Label2: TLabel;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
TMapObject =
class(TControl)
private
image: TImage;
// Für das entsprechende Einheitenbild besser vielleicht Imagelist, kann imagelist nur bmp ich brauch aber gif?
Edit: TEdit;
// Eingabefeld für Einheitenname
Einheitenname: TStaticText;
// Anzeige des Einheitennamens
X,Y: Integer;
// Position der Einheit auf Karte Y
Typ:
String;
// z.B. "Infantry", Image ist abhaengig vom Einheitentyp wo kann ich diese Abhaengigkeit berechnen oder festlegen z.B wenn Einheitentyp = 2 dann image.picture.'Panzer.bmp"
//draggen ermoeglichen und draggingstatus
published
property Einheitentyp :
String read Typ
write Typ;
property MapX :Integer
read x
write x;
property MapY :Integer
read y
write y;
// procedure zeichnen(Mapx,Mapy:integer);
public
constructor Create(Owner: TComponent; MapX: Integer; MapY: Integer; Einheitentyp:
String);
reintroduce;
virtual;
{ Public-Deklarationen }
end;
var
Form1: TForm1;
mapobject:tmapobject;
i,
index:integer;
Liste:TObjectList;
implementation
{$R *.dfm}
constructor TMapObject.Create(Owner: TComponent; MapX: Integer; MapY: Integer; Einheitentyp:
String);
begin
//inherited;
Image := TImage.Create(self);
// So muss das heißen
Image.Parent := TWinControl(owner);
if Einheitentyp = '
Panzer'
then Image.Picture.loadfromfile('
marker_fadenkreuz.gif');
if Einheitentyp = '
test'
then Image.Picture.loadfromfile('
unbenannt-3.gif');
Image.Transparent:=true;
Image.Left:=mapx;
Image.Top:=mapy;
Edit := TEdit.Create(self);
Edit.Parent := TWinControl(owner);
Edit.Left:=MapX+50;
// Positionberechnung
Edit.Top:=mapy+25;
//
Edit.SetFocus;
Einheitenname := TStaticText.Create(self);
Einheitenname.Parent := TWinControl(owner);
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MapObject:=TMapObject.Create(self,X,Y,'
test');
//object erstellen
Liste.add(MapObject);
Label1.caption:=inttostr(Liste.count);
Label2.Caption:=inttostr(x)+'
, '+inttostr(y);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Liste := TObjectList.create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Liste.free;
end;
end.