Autor |
Beitrag |
Unknown
      
Beiträge: 184
Win XP
Delphi 7
|
Verfasst: Mo 25.06.07 13:13
Hallo,
wie kann ich ein Image createn, dass die gleichen "Sachen" wie mein vorhandenes Image1 hat....
P.S: gibt es ein Befehl, der herrausfindet ob ein Image existiert, z.B: If Image1.exist oder so
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 25.06.07 14:08
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Unknown 
      
Beiträge: 184
Win XP
Delphi 7
|
Verfasst: Mo 25.06.07 14:25
ich glaube ich hab meine Frage falsch formuliert:
Für ein Image hab ich das geschrieben:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.Timer1Timer(Sender: TObject); begin IF Image1.Left<150 then exit else Image1.Left:=Image1.Left-5; end;
procedure TForm1.Image1Click(Sender: TObject); begin Image1.Destroy; end; |
Und in eineme anderen Timer will ich, dass mehrere Images davon createt werden.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 25.06.07 14:28
Moin!
Ist die Anzahl der Images zur Laufzeit variabel oder ist die Menge konstant?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Unknown 
      
Beiträge: 184
Win XP
Delphi 7
|
Verfasst: Mo 25.06.07 14:42
|
|
Jann1k
      
Beiträge: 866
Erhaltene Danke: 43
Win 7
TurboDelphi, Visual Studio 2010
|
Verfasst: Mo 25.06.07 14:49
Dann musst du die Images entweder irgendwo speichern (List, array, imagelist) oder du nummerierst die Namen der Images durch, damit du sie mit findcomponent und einer Schleife alle finden kannst.
Zweig mal die Stelle im Quelltext wo du deine Images erzeugst.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 25.06.07 14:50
Moin!
OK, Ansatz:
- globale TObjectList anlegen und die Images mit Ower=NIL createn (Parent dann auf das Formular setzen) und dann in der Liste sammeln
- wenn du ein Image nicht mehr brauchst, einfach aus der TObjectList entfernen, wird dann automatisch freigegeben.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Unknown 
      
Beiträge: 184
Win XP
Delphi 7
|
Verfasst: Mo 25.06.07 15:12
@Narses:
meinst du etwa so www.dsdt.info/tutori.../tobjectlist/?page=2
Edit1: vll hilft euch das: im meinem Prog sollen Images von rechts nach links fliegen, ich muss sie abschießen. Und wenn sie angekommen sind sollen sie einfach stehen bleiben....
Edit2:@ Jan1k diese Stelle habe ich ja noch nicht, da ich nicht weiß, wie man ein Image erstellt mit den gleichen "Sachen" wie ein anderes
Edit3:Das mit ObjectList funzt bei mir net
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| var Form1: TForm1; Objectlist: TObjectList; implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin ObjectList := TObjectList.create; ObjectList.OwnsObjects := true; end;
procedure TForm1.Frmdestroy(Sender: TObject); begin ObjectList .free; end;
end. |
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 25.06.07 15:29
Moin!
Ja, etwa so.
Unknown hat folgendes geschrieben: | Edit3:Das mit ObjectList funzt bei mir net |
Du musst noch die Unit hinzufügen:
Delphi-Quelltext
Unknown hat folgendes geschrieben: | da ich nicht weiß, wie man ein Image erstellt mit den gleichen "Sachen" wie ein anderes |
Ansatz: Image-Kompo erzeugen und dann per Assign() von der schon vorhandenen das Bild/Eigenschaften kopieren.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Unknown 
      
Beiträge: 184
Win XP
Delphi 7
|
Verfasst: Mo 25.06.07 15:35
Ich hab doch im Timer Image1.blablabla gecshrieben....
Soll ich dann Image.assign(Timer1) schreiben ??
Aber das mit Objectlist versuch ich jetzt ma......
Da hab ich noch ne Frage zu Objectlist, und zwar:
-Wie kann ich schreiben, das die Objecte immer nach links gehen bis die an der Grenze sind ????
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 25.06.07 15:53
Moin!
OMG...
Unknown hat folgendes geschrieben: | Ich hab doch im Timer Image1.blablabla gecshrieben.... |
Das glaube ich kaum...
Unknown hat folgendes geschrieben: | Soll ich dann Image.assign(Timer1) schreiben ?? |
Du willst dem Image doch keinen Timer zuweisen, oder?  Sondern: du willst im Timer-Ereignis neue Images anlegen  da muss also irgendwie sowas auftauchen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| var Image: TImage; begin Image := TImage.Create(NIL); Image.Parent := Form1; Image.Picture.Bitmap.Assign(ImageVorlage); Image.Top := ... usw. ObjectList1.Add(Image); |
Unknown hat folgendes geschrieben: | Wie kann ich schreiben, das die Objecte immer nach links gehen bis die an der Grenze sind? |
Ansatz: du läufst durch die Objekte in der Liste und bearbeitest ihre Eigenschaften entsprechend:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| var i: Integer; Image: TImage; begin for i := 0 to ObjectList1.Count-1 do begin Image := TImage(ObjectList1.Items[i]); Image.Left := Image.Left -1; |
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|