Autor Beitrag
dragonlord
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40

Win XP - SP2
D7 Ent.
BeitragVerfasst: Do 07.04.05 10:24 
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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 07.04.05 10:37 
Deine Form ist ein Objekt. Dieses Objekt "verwaltet" unter anderem deine Labels. Du musst als o objektorientiert denken.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
    procedure IstHeute;
  public
    { Public-Deklarationen }
  end;

...

procedure TForm1.IstHeute;
begin
 Label30.caption := 'test';
end;

So sollte es funktionieren.
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: 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.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.