Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Unterprogramm?
dragonlord - Do 07.04.05 10:24
Titel: Unterprogramm?
Hallo,
ich wollte Code in eine eigene Procedur Packen damit ich das später aufrufen kann.
Wie defeniert man das/und wo. Und wie ruft man diese auf.
Habe es so versucht:
Delphi-Quelltext
1: 2: 3: 4:
| procedure IstHeute; begin Label30.caption := 'test'; end; |
Aber leider verhält sich Delphi dann ganz merkwürdig?!
Hier findet er z.b. Label30 nicht mehr obwohl er definitiv da ist.
Desweiteren: Sollen eigene Unterprogramme Am Anfang oder am Schluss des
anderen Codes stehen??
:idea:
jasocul - Do 07.04.05 10:37
Deine Form ist ein Objekt. Dieses Objekt "verwaltet" unter anderem deine Labels. Du musst als o objektorientiert denken.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| type TForm1 = class(TForm) private procedure IstHeute; public end;
...
procedure TForm1.IstHeute; begin Label30.caption := 'test'; end; |
So sollte es funktionieren.
Lossy eX - Do 07.04.05 10:43
Objekt Orientiertes Programmieren lässt grüßen.
Als erstes. Tu dir selber einen gefallen und ließ dir ein Tutorial über OOP durch. Dann wird vieles einfacher.
Zu deinem Problem. Du hast zwar eine Methode geschrieben aber wie bei allen anderen Methoden, Events (ButtonOnClick) sind die Bestandteil deiner Klasse. Deine Methode ist es aber nicht! In Klassenmethoden verwendet er automatisch die Klasse beim Suchen von Bezeichnern. Da dein Label nun mal Bestanteil der Klasse ist hat er es gefunden. Bei deiner Methode kennt er die Klasse aber nicht. Ergo kennt er auch das Label nicht.
Lösen kannst du es in dem du die Methode als Klassenmethode machst oder du direkt dein Formular ansprichst. Also Form1.Label30. Das sollte vollkommen ausreichen.
Dein anderes Problem. Was meinst du mit anderem Code? Unterprogramme kannst du aufrufen in dem du ihren Namen hinschreibst. z.B.: IstHeute;
Dafür müssen sie aber bekannt und sichtbar sein. Was genau damit gemeint war kannst du auch aus einem OOP Tutorial lernen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!