![]() |
Delphi-Version: 10.3 Rio
Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Moin!
ich würde gerne eine eigene Prozdedur schreiben um einen Code etwas aufzuräumen und vonnda aus die Caption eines label ändern aber Delphi sagt da plötzlicher kennt das label nicht aber in einer button click prozedur erkennt er es? könnt ihr mir helfen?
Code:
Danke!
procedure losAusgeben(var zufall: integer);
begin dec(leerCount); NameLbl.Caption := dinerRonnebergerCrew[zufall,0]; //Da spinnt er rum wegen dem Label dinerRonnebergerCrew[zufall,0]:= ''; end; |
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Es handlet sich hier um eine freie Prozedur und nicht um eine Methode. Wandele diese in eine Methode der Form um, oder füge den Forminstanzvariablennamen als Suffix hinzu (wovon ich aber abraten würde!)
|
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Zitat:
|
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Im Interface-Teil in der Dekaration der Formularklasse ergänzen:
Delphi-Quellcode:
Und dann bei der Implementation:
<TFormname> = class (TForm)
... procedure losAusgeben(var zufall: integer); .. end;
Delphi-Quellcode:
procedure <TFormname>.losAusgeben(var zufall: integer);
... |
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Oder du nimmst ein label im aufruf entgegen.
Dann ist es universeller.
Delphi-Quellcode:
Ungetestet aber sollte funzen.
procedure MachWas(const zahl: integer; const Label: TLabel);
Begin Label.Caption := IntToStr(zahl); End; ... // aufruf dann so irgendwo: MachWas(1, CrewLabel); Ps: beim aufruf muss der scope passen. Also aus irgend einer 'Form1.blabla' methode. Sonst "Machwas(9, Form1.CrewLabel)" |
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Noch ein anderer Hinweis zu var, out, const:
Diese verwendet man nur wenn der Parameter als Referenz übergeben werden soll. Das ist in diesem Beispiel nicht sinnvoll. |
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Ich glauber ihr verwirrt ihn oder sie nur mit all den Vorschlägen. mkinzler Vorschlag iist das was gesucht ist.
|
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Zitat:
|
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Zitat:
|
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Zitat:
|
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Zitat:
VIelen Dank für die Hilfe Schöne Grüße! P.S: Mein erster Forums eintarg überhaupt iwo und schon direkt so positive erfahrung: SCHÖÖÖN! |
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Zitat:
Willkommen im Club! Gruß, Andreas |
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Zitat:
|
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Zitat:
![]() |
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Zitat:
Ich habe mal einen Blogpost gelesen, den ich leider nicht mehr zur Hand habe. Dieser hat sehr eindrucksvoll beschrieben, weshalb man const-Parameter den value(standard)-Parametern immer vorziehen sollte. Nicht unbedingt, weil der Code "jetzt" dadurch schneller wird, sondern weil zukünftige Compilerversionen den Code schneller ausführen "könnten". Ich habe mir angewöhnt "alle" Funktionsparameter mit const zu deklarieren, sofern nicht var oder out benötigt wird. Zitat:
|
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Der Hinweis bezog sich auf Code, in dem der Parameter nicht mit "const" sondern mit "var" übergeben wurde.
"const" kann (im Normalfall) tatsächlich nicht schaden, bringt aber nur bei komplexen Parametern(z.B. Record, String, Interface, Array) tatsächlich Vorteile. Wer nicht unbedingt hochoptimierten Code benötigt, kann darauf verzichten. "var" bedeuted, der als Parameter übergebenen Variablen wird innerhalb der Prozedur gegebenen Falls ein neuer Wert zugewiesen. Der geänderte Wert bleibt auch nach Verlassen der Prozedur in der Variable erhalten und wirkt sich ewentuell auf den weiteren Programmablauf aus. Da der Code so ein Verhalten nicht vorsieht, ist die Kennzeichnung verwirrend. |
AW: Eigene Prozedur : kein zugrifff auf eigenschaften von Label
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:43 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