AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

eigener klasse

Ein Thema von LoL · begonnen am 19. Sep 2003 · letzter Beitrag vom 19. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
LoL
(Gast)

n/a Beiträge
 
#1

eigener klasse

  Alt 19. Sep 2003, 08:37
hi

ich hab folgenden code:

Delphi-Quellcode:
unit u_prog
...
type Work_Panel = Class ( TPanel )
  procedure button_creation;
end;
...

var mybutton : TButton;

procedure Work_Panel.button_creation;
begin
  mybutton := TButton.create(self);
  mybutton.parent := self;
end;

procedure CreateComponents;
begin
  Work_Panel.button_creation;
end;
CreateComponents wir von der haupt unit aus in form.oncreate aufgerufen.
ich bekomme folgende fehler meldung:
'[Error] u_prog.pas(283): This form of method call only allowed for class methods'

ich kann damit aber nicht wirklich was anfangen. wer kann mir helfen?

gruß christoph
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#2

Re: eigener klasse

  Alt 19. Sep 2003, 09:02
hat denn davon niemand eine ahnung? *nachobenhohl*
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#3

Re: eigener klasse

  Alt 19. Sep 2003, 09:03
Sag erst mal was das werden soll?
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: eigener klasse

  Alt 19. Sep 2003, 09:04
Bitte unterlass das. Dein Post ist gerade mal 25 Minuten alt!
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#5

Re: eigener klasse

  Alt 19. Sep 2003, 09:05
hi

tut mir leid luckie sorry

ich hab mir die klasse erstellt um darauf meine anderen komponenten zu erstellen, so dass ich diese klasse unabhängig vom zuverwendeten programm bzw. formular funktioniert!

gruß christoph
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: eigener klasse

  Alt 19. Sep 2003, 09:06
Gemeinerweise hat Tform eine Methode CreateComponents. Die wird aufgerufen und bekommt den Schluckauf.
Ausserdem solltest du deine Funktion nicht im OnCreate aufrufen. Das ist zu frueh.
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#7

Re: eigener klasse

  Alt 19. Sep 2003, 09:09
hi

es gibt die methode CreateComponent aber nicht CreateComponents.
und warum sollte ich die procedure nicht in OnCreate aufrufen bisher hats immer geklappt?
ich werde aber besonders auf der fehlermeldung nicht schlau!

mfg christoph
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#8

Re: eigener klasse

  Alt 19. Sep 2003, 09:28
Ich weiß zwar immer noch nicht was das soll!
Aber ein vorschlag...

Delphi-Quellcode:
unit u_prog
...
type Work_Panel = Class
  class procedure button_creation(Self : TPanel);
end;
...

var mybutton : TButton;

class procedure Work_Panel.button_creation(Self : TPanel);
begin
  mybutton := TButton.create(self);
  mybutton.parent := self;
end;

procedure CreateComponents;
begin
  Work_Panel.button_creation;
end;
Und CreateComponents ganzt du in OnCreate aufrufen.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#9

Re: eigener klasse

  Alt 19. Sep 2003, 09:31
thx

das wars

gruß christoph
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: eigener klasse

  Alt 19. Sep 2003, 09:37
Du hast mich verwirrt. Typen IMMER mit T vorne schreiben!
Der Aufruf Work_panel.button_creation waere nur als class function erlaubt.
Als solcher kann er aber nicht funktionieren. class functions kann man naemlich ohne Instanz des Objekts aufrufen. Das Erzeugen der Buttons geht dann schief. Self ist dann namenlich nicht vorhanden.

Du musst CreateComponents zu einer Methode deiner Form machen (auf der du wahrscheinlich eine Work_panel genannte Komponente hast).

Mit zu frueh meine ich das bei OnCreate Loaded noch nicht ausgefuehrt wurde.
Die Komponenten auf der Form sind noch nicht vollstaendig initialisiert.
Ich mache es immer im OnActivate (mit einer booleschen Variablen abgesichert damit es nur einmal aufgerufen wird).
  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 23:37 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