Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Name als Objektbezeichnung (https://www.delphipraxis.net/191434-name-als-objektbezeichnung.html)

TRvsFR 16. Jan 2017 08:25

Name als Objektbezeichnung
 
Hallo :D

Für den Informatikunterricht müssen wir ein Programm entwickeln. Wir (Gruppenarbeit) haben uns dazu entschieden ein kleineres Spiel zu schreiben. Nun stehen wir jedoch vor einem, für uns scheinbar, unlösbaren Problem. Um ein Bild (bmp) bewegen zu können haben wir uns dazu entschieden dies mittels folgenden Codes zu tun:

'Traktor'+IntToStr(FZustand)+'bmp'.Top := 'Traktor'+IntToStr(FZustand)+'bmp'.Top - 25;

Dieser Aufruf(bis zum .Top) hat bisher zum erzeugen oder ähnlichen auch funktioniert. Doch mit .Top stehen wir nun vor dem Problem dass folgende Fehlermeldung kommt:

[Fehler] uTTraktor.pas(52): Record, Object oder Klassentyp erforderlich.

Wie können wir dem werten Delphi nun beibringen, dass der Name eine Bezeichnung für ein Bild ist.

Für den Fall das dies hier der falsche Thread ist, bitte verschieben.

Bereits im davor, Danke für eure Hilfe.
Ende der Durchsage :-D

TBx 16. Jan 2017 08:31

AW: Name als Objektbezeichnung
 
Schau Dir mal FindComponent an.

Jumpy 16. Jan 2017 08:42

AW: Name als Objektbezeichnung
 
Als alternative, kann man auch die verwendeten Bilder (beim Erzeugen) in einer Liste oder einem Array speichern und dann einfach über die Nummer darauf zugreifen.

TiGü 16. Jan 2017 09:07

AW: Name als Objektbezeichnung
 
Zitat:

Zitat von TRvsFR (Beitrag 1358903)
'Traktor'+IntToStr(FZustand)+'bmp'.Top := 'Traktor'+IntToStr(FZustand)+'bmp'.Top - 25;

Delphi-Quellcode:
  // TImage Komponente aufs Formular ziehen und so benennen
  FTraktorImage: TImage;

Delphi-Quellcode:
begin
  // Bild ins TImage laden
  FTraktorImage.Picture.LoadFromFile('Traktor' + IntToStr(FZustand)+ '.bmp');

  // Image auf Formular bewegen
  FTraktorImage.Top := FTraktorImage.Top - 25;
...
end;

p80286 16. Jan 2017 09:34

AW: Name als Objektbezeichnung
 
Ihr versucht einen Variablennamen zu stricken, das kann nicht funktionieren, da das kompilierte Programm keine Namen mehr kennt. Und Delphi verfügt nicht über hierfür notwendigen Präprozessor.
Eure Alternative lautet Array oder Liste.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz