Thema: Delphi TEdit in Klasse ?

Einzelnen Beitrag anzeigen

Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#22

Re: TEdit in Klasse ?

  Alt 8. Mai 2005, 23:50
Moin Jungs,

1. Also ich hab jetz eine objectlist eingefügt aber ich hab das problem das er nur das erste object
in die objectlist überträgt. hatt jemand ne ahnung wieso er das macht?

2. koennen objecte in einer objectlist den selben namen haben, sie haben doch unterschiedliche
handlesund einen index ,das muesste doch reichen oder? dann würde ich mir das dumme array of
tmapobject sparen. (ja ich weis bei mehr als 10 klicks gibst einen bereichsüberschreitung weil das array
statisch ist, habe es nur zu testzwecken auf die schnelle integriert)

3. wie kann ich auf das onkeydown ereignis des edits meines selbsterstellten objects zugreiffen,
muss ich da irgendwelche proceduren im create deklarieren.






Delphi-Quellcode:
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;
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);


  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); override;
    destructor Destroy; override;


    { Public-Deklarationen }
  end;





var
  Form1: TForm1;
  mapobject: array [1..10] of tmapobject;
  i,index:integer;
  Liste:TObjectList;
  implementation

{$R *.dfm}

constructor TMapObject.Create(Owner: TComponent);

begin
  Image := TImage.Create(Owner); // So muss das heißen
  image.Parent := TWinControl(owner);
  image.Picture.loadfromfile('marker_fadenkreuz.gif');
  image.transparent:=true;
  Edit := TEdit.Create(Owner);
  Edit.Parent := TWinControl(owner);
  edit.Left:=mapx+50;
  edit.Top:=mapy+25;
  edit.setfocus;
  Einheitenname := TStaticText.Create(owner);
  Einheitenname.Parent := TWinControl(owner);
end;

destructor TMapObject.destroy;
begin
  edit.free;
  image.free;
  einheitenname.free
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
mapobject[i]:=Tmapobject.Create(self); //object erstellen (lächerlich nur um
                                                   //einen eindeutigen onjectnamen zu bekommen ?!
mapobject[i].mapx:=x;
mapobject[i].mapy:=y;
Liste := TObjectList.Create; //tobjectlist zuweisen
Liste.Add(mapobject[i]);
label1.caption:=inttostr(Liste.count); //tur kontrolle
inc(i);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
i:=1;
end;

end.
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat