Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Undefinierter Bezeichner: 'Anzahl'

Empfohlene Antworten

Hallo,

bin kein Programmierer, aber weil man es in der Ausbildung auch lernen muss, versuche ich gerade den Anfang eines Programmes, dass wir in der Schule auch programmieren zu meistern. 1-2-3 Streichholz, wer es kennt.

Meine Klasse:

Type TStreichholz = Class(TObject)

private

Bitmap: TBitmap;

Anzahl:Byte;

public

constructor Create();

destructor Destroy;

procedure Anzeigen(x,y: integer; Ausgabe: TPaintbox);

function Zahlenwert: integer;

end;

Der Constructor:

constructor TStreichholz.Create();

var filename: string;

begin

inherited create;

bitmap:= TBitmap.Create;

filename:= 'Streichholz.bmp';

bitmap.LoadFromFile(filename);

Randomize;

Anzahl:=17+random(13);

end;

Wenn ich jetzt im Testprogramm die Variable Anzahl aufrufen will, kommt der Fehler:[Fehler] Unit1.pas(43): Undefinierter Bezeichner: 'Anzahl'

So sieht die Prozedur des Button Klicks aus:

procedure TForm1.Button1Click(Sender: TObject);

begin

PaintBox1.Refresh;

posX := 0;

Label1.Caption:='Anzahl: ';

Streichholz:=TStreichholz.Create;

for i:=1 to Anzahl do

begin

Streichholz.Anzeigen(posX,posY,PaintBox1);

posX := posX + 15;

end;

Label1.Caption:= Label1.Caption + InttoStr(Anzahl);

end;

Davor habe ich natürlich noch deklariert:

Streichholz:TStreichholz;

posX,posY:Integer;

i:integer;

Kann mir bitte jemand helfen?

Anzahl ist ein Attribut der Klassen TStreichholz. Du brauchst also ein Streichholz-Objekt, um auf dessen Anzahl-Attribut zugreifen zu können.

Du musst also Streichholz.Anzahl schreiben.

Deine Klasse ist aber vom Designstandpunkt eher unglücklich. Eigentlich ist die Klasse nur ein Hilfscontainer für eine Variable und ein paar Methoden, und repräsentiert kein wirkliches Objekt. Ein Streichholz stellt die Klasse (trotz ihres Namens) sicher nicht dar, denn ein einzelnes Streichholz hätte kein Anzahl-Attribut.

streichholz.anzahl geht auch nicht.

Ich habe jetzt der Funktion "zahlenwert" den Wert "Anzahl" zugewiesen, jetzt habe ich aber das Problem beim subtrahieren, also wenn ich den Wert "Anzahl" kleiner machen will.

case RadioGroup1.ItemIndex of

0: Streichholz.Zahlenwert:= Streichholz.Zahlenwert- 1;

Es kommt die Fehlermeldung:[Fehler] Unit1.pas(59): Der linken Seite kann nichts zugewiesen werden

wie kann ich jetzt was von Anzahl abziehen?

private = von außen nicht zugreifbar, oder?

Ich habe es jetzt aber der Funktion (public) Zahlenwert zugewiesen. Oder ist dann immer noch von außen nicht zugreifbar.

Er sagt ja jetzt:

[Fehler] Unit1.pas(59): Der linken Seite kann nichts zugewiesen werden

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.