AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Delphi findet label1 und andere Objekte nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi findet label1 und andere Objekte nicht

Ein Thema von Mario61 · begonnen am 12. Feb 2020 · letzter Beitrag vom 13. Feb 2020
Antwort Antwort
Seite 1 von 2  1 2      
Mario61

Registriert seit: 10. Jan 2010
19 Beiträge
 
#1

Delphi findet label1 und andere Objekte nicht

  Alt 12. Feb 2020, 15:28
Hallo...

Ich habe bei Delphi eine Unit (Unit1) und ein Formular (Form1). Auf diesem Formular habe ich Labels gesetzt. In einer Prozedure möchte ich das Label mit einem Text versehen, also: Label1.Caption := 'Ein Text';
Delphi aber Meckert, weil er Label1 nicht kennt. Ich muss das immer so aufrufen: Form1.Label1.Caption := 'Ein Text';
Ich verstehe das nicht, weil das ist doch alles in der selben Unit und Formular... wieso kennt Delphi das nicht?
Gruß Mario
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: Delphi findet label1 und andere Objekte nicht

  Alt 12. Feb 2020, 15:34
Zitat:
Ich muss das immer so aufrufen: Form1.Label1.Caption := 'Ein Text';
Labels außerhalb des "Scopes" können nicht gefunden werden, wenn die Prozedur nicht zu der Klasse gehört, in der das Label deklariert ist.

Delphi-Quellcode:
procedure Test;
begin
 Label1.Caption := 'Test';
end;
Das wird niemals funktionieren, wenn Label1 in der Klasseninstanz Form1 ist.

Wenn man eine Datenklase hat mit eimner Instanz namens "MyDataClass" und in dieser Klasse ein Property namens "MyProperty" deklariert ist, dann kann man auch nur auf dieses Property zugreifen, wenn man vorher über MyDataClass geht. Also MyDataClass.MyProperty.

Schlecht erklärt aber ganz einfach und logisch.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Delphi findet label1 und andere Objekte nicht

  Alt 12. Feb 2020, 15:35
Hallo,
Zitat:
In einer Prozedure
Heißt die Procedure so

Delphi-Quellcode:
procedure Test;
begin
  Label1.Caption
end;
oder so

Delphi-Quellcode:
procedure TForm1.Test2;
begin
  Label1.Caption
end;
Ich tippe mit meiner Glaskugel auf Test.

Die Prozedure muss eine Methode sein, also eine Formularprozedur,
weil Label1 teil des Objektes Form1 ist.

Das würde gehen.

Delphi-Quellcode:
procedure TForm1.Test3(AForm: TForm1);
begin
  AForm.Label1.Caption
end;
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Delphi findet label1 und andere Objekte nicht

  Alt 12. Feb 2020, 15:40
Da hast Du vermutlich etwas in den Projektdaten verdreht.

Handelt es sich nur um ein Testprojekt? Dann erstelle am besten ein neues und versuche schrittweise die Funktionalität nachzuvollziehen.

Wenn es sich um ein echtes Projekt handelst, dann schau Dir mal die verwalteten Formulare an. Vermutlich wird das Mainform "Form1" nicht korrekt erzeugt oder Du hast den Formulartyp irgendwie verändert.


[EDIT]
Oups, kein roter Rahmen ....
hoika könnte vermutlich eher Recht haben ....
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Mario61

Registriert seit: 10. Jan 2010
19 Beiträge
 
#5

AW: Delphi findet label1 und andere Objekte nicht

  Alt 12. Feb 2020, 16:53
Das ist so schwierig das zu erklären, ich versuch mal etwas deutlicher:

Code:
procedure TMainFrm.FormCreate(Sender: TObject);
begin
 con.LibraryLocation:=ExtractFilePath(application.ExeName)+'sqlite3.dll';
 con.Database:=ExtractFilePath(application.ExeName)+'hbdb.s3db';
 con.Connected:= True;
 MainFrmAkt;
end;
Es wird also die Procedure MainFrmAkt aufgerufen. In dieser sollen halt die Daten aktualisiert werden und Labels ihren Inhalt bekommen. Leider muss ich aber auch bei der Datenbank folgendes angeben:
Code:
// Ist jetzt nur ein Beispiel
Procedure MainFrmAkt;
Begin
 MainFrm.query.SQL.Text := 'SELECT Round(Sum(Betrag),2) From Daten Where Datenart=''Bank''';
 MainFrm.Query.Open;
 MainFrm.SummeBankLabel.Caption := MainFrm.query.Fields[0].AsString;
 MainFrm.Query.Close;
end;
Vor jedem Query immer das MainFrm. Das Hauptformular hab ich so genannt. (Statt das Standart "Form1")

Ich versteh das nicht, weil auch auf dem selben Formular die Datenbank-Icons (Weis jetzt nicht genau wie man die nennt) liegen.
Gruß Mario
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Delphi findet label1 und andere Objekte nicht

  Alt 12. Feb 2020, 17:03
Das ist genau das, was oben gesagt wurde:

Procedure MainFrmAkt;

muss heißen:

procedure TMainFrm.MainFrmAkt;

Dementsprechnd muss es auch im deklarationsteil innterhalb der Deklaration von TMainFrm stehen.
Ralph
  Mit Zitat antworten Zitat
Mario61

Registriert seit: 10. Jan 2010
19 Beiträge
 
#7

AW: Delphi findet label1 und andere Objekte nicht

  Alt 12. Feb 2020, 17:08
Ey jey jey.....

Das wars dann. Nur musste ich den Aufruf der Procedure MainFrmAkt in MainFrmAkt(Nil) ändern, weil halt Parameter fehlten.

UFF...

VIELEN DANK, Wieder einmal von Euch gerettet !!!
Gruß Mario
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#8

AW: Delphi findet label1 und andere Objekte nicht

  Alt 12. Feb 2020, 17:51
Wieso fehlen da plötzlich Parameter, bzw. welche sind das?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#9

AW: Delphi findet label1 und andere Objekte nicht

  Alt 12. Feb 2020, 17:52
Zitat:
Das wars dann. Nur musste ich den Aufruf der Procedure MainFrmAkt in MainFrmAkt(Nil) ändern, weil halt Parameter fehlten.
Da fehlt überhaupt nix an Parametern!

Procedure MainFrmAkt; Ich würde den kompletten Code löschen und neu anfangen. Wenn man schon Parameter angeben muss die nicht deklariert wurden...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

AW: Delphi findet label1 und andere Objekte nicht

  Alt 12. Feb 2020, 18:06
Zitat:
Nur musste ich den Aufruf der Procedure MainFrmAkt in MainFrmAkt(Nil) ändern, weil halt Parameter fehlten.
Das kann nicht sein. Wie lautet die Fehlermeldung?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:24 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