AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Variablen in Objektnamen verwenden?
Thema durchsuchen
Ansicht
Themen-Optionen

Variablen in Objektnamen verwenden?

Ein Thema von Sluak · begonnen am 21. Mär 2011 · letzter Beitrag vom 22. Mär 2011
Antwort Antwort
Sluak

Registriert seit: 21. Mär 2011
7 Beiträge
 
#1

AW: Variablen in Objektnamen verwenden?

  Alt 21. Mär 2011, 12:01
Vielen, vielen Dank.
Es funktioniert (wie auch nicht anders zu erwarten )

EDIT: Geht das auch mit Prozeduren?

Delphi-Quellcode:
procedure TForm1.Image1Click(Sender: TObject);
begin
BildKlick(1,0,0);
Image1.Picture.LoadFromFile('bilder\'+IntToStr(i)+'.jpg');
Etwas dergleichen habe ich auch 30 mal derzeit in dem Programm stehen.

Geändert von Sluak (21. Mär 2011 um 12:15 Uhr)
  Mit Zitat antworten Zitat
Sluak

Registriert seit: 21. Mär 2011
7 Beiträge
 
#2

AW: Variablen in Objektnamen verwenden?

  Alt 21. Mär 2011, 12:28
Ein anderes Problem bestünde da allerdings noch, deswegen auf Doppelpost (sorry, aber ich glaube, dass ansonsten alle noch davon ausgehen würden, dass das Thema beendet wäre).

Ich habe eine Prozedur erstellt, die eben zB die Karten miteinander vergleicht, Punkte addiert, etc. Jetzt wollte ich eure Tipps anwenden, um die nicht zueinander gehörenden Karten nach 2 Zügen wieder umzudrehen, bzw. gefundene Pärchen zu verstecken. Das ganze sieht dann in etwa so aus (beim zweiten Zug, wenn die Karten verglichen werden):

Delphi-Quellcode:
  If Karten[x1,y2]=Karten[x2,y2] then begin

    (FindComponent('Image'+IntToStr(Karte1))
      as TImage).Picture.Hide;
    (FindComponent('Image'+IntToStr(Karte2))
      as TImage).Picture.Hide;

    If Spieler=1 then begin
    PunktzahlS1:=PunktzahlS1+1;
    TForm1.Label4.Caption:=IntToStr(PunktzahlS1);
    end else
    PunktzahlS2:=PunktzahlS2+1;
    TForm1.Label5.Caption:=IntToStr(PunktzahlS2);

  end;
Nun treten folgende Fehlermeldungen auf:

[Fehler] Memory.pas(181): Undefinierter Bezeichner: 'FindComponent'
[Fehler] Memory.pas(182): Operator ist auf diesen Operandentyp nicht anwendbar

(Zeile 181 ist in diesem Ausschnitt die zweite Zeile)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#3

AW: Variablen in Objektnamen verwenden?

  Alt 21. Mär 2011, 12:35
Vermutlich hast Du den Code in einer regulären Prozedur oder Funktion stehen. Mach daraus einmal eine Methode des Formulars.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Sluak

Registriert seit: 21. Mär 2011
7 Beiträge
 
#4

AW: Variablen in Objektnamen verwenden?

  Alt 21. Mär 2011, 12:46
Mach daraus einmal eine Methode des Formulars.
Das bedeutet?

Gibt es keine andere Möglichkeit?
In anderen Prozeduren funktioniert das ganze doch auch, warum also nicht hier?

Geändert von Sluak (21. Mär 2011 um 13:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von pustekuchen
pustekuchen

Registriert seit: 27. Aug 2010
268 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Variablen in Objektnamen verwenden?

  Alt 21. Mär 2011, 13:00
Anstatt
procedure MethodenName() das hier
procedure Form1.MethodenName()
Delphi programming is awesome.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#6

AW: Variablen in Objektnamen verwenden?

  Alt 21. Mär 2011, 13:00
Nicht
procedure TuWas; sondern
procedure TForm1.TuWas; Dazu musst Du dann zusätzlich die Prozedur in der Deklaration des Formulars bekannt machen.
Delphi-Quellcode:
type
  TForm1 = class(TForm)
  ...
  procedure TuWas;
  ...
  end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von pustekuchen
pustekuchen

Registriert seit: 27. Aug 2010
268 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Variablen in Objektnamen verwenden?

  Alt 21. Mär 2011, 12:33
Vielen, vielen Dank.
Es funktioniert (wie auch nicht anders zu erwarten )

EDIT: Geht das auch mit Prozeduren?

Delphi-Quellcode:
procedure TForm1.Image1Click(Sender: TObject);
begin
BildKlick(1,0,0);
Image1.Picture.LoadFromFile('bilder\'+IntToStr(i)+'.jpg');
Etwas dergleichen habe ich auch 30 mal derzeit in dem Programm stehen.

Du solltest evnt die Methode umschreiben.

Ich weiß nicht ob es jetzt eine saubere Lösung ist oder ob es noch besser geht, aber du könntest den Sender im Bezug auf die Tag Eigenschaft benutzten.

Delphi-Quellcode:
case (Sender as TButton).Tag of
    0: choice := 0;
    1: choice := 1;
    2: choice := 2;
    3: choice := 3;
  end;
Delphi programming is awesome.

Geändert von pustekuchen (21. Mär 2011 um 12:37 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz