Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Komponenten in eigenen Funktionen verwenden (https://www.delphipraxis.net/152270-komponenten-eigenen-funktionen-verwenden.html)

BBJ 16. Jun 2010 23:21

Komponenten in eigenen Funktionen verwenden
 
Hallo an alle,

ich hoffe bin im richtigen Bereich und kann die Frage gut formulieren.
Es geht um vollgendes. Ich habe ein Formular mit versch, Komponenten z.B Label oder eine ProgressBar und habe außerdem
eine selbst geschriebene Funktion.
In der Funktion möchte ich einmal sagen ProgressBar.Position:=ProgressBar.Position+1

ABER er kennt dann das Objekt nicht also die Progressbar.
Ich kann die Objekte immer nur benutzen bei Ereignissen wie Button1.Click aber nie bei funktionen, die ich geschrieben habe.

Wie bekomme ich Zugriff auf die Komponenten der Form.
Form1.ProgressBar.... geht auch nicht.

Einzige Lösung war, dass ich einen neuen Funktionsparameter erstellt habe vom Typ ProgressBar und das Objekt so zusagen übergeben habe.
Aber ich kann ja nicht immer bei Benutzung eines Objektes gleich den Funktionskopf und alle aufrufe der Funktion ändern.

Habt ihr ne Idee zur Lösung? Vielleicht isses ganz einfach :-D
BBJ

H4ndy 16. Jun 2010 23:39

AW: Komponenten in eigenen Funktionen verwenden
 
Poste mal Code, ich glaub aber einfach, dass deine Funktion keine Methode des Formulars ist, darum stimmt der Namespace nicht und deine Funktion "sieht" die Progressbar dadurch einfach nicht.

s.h.a.r.k 16. Jun 2010 23:40

AW: Komponenten in eigenen Funktionen verwenden
 
Schreib die Methode doch unter private oder public PArt der TForm1, dann kennt diese auch die internen Klassenvariablen.

mkinzler 17. Jun 2010 05:35

AW: Komponenten in eigenen Funktionen verwenden
 
Oder stelle den Namen der Instanz der Komponente voran:

Delphi-Quellcode:
Form1.Label1.Text := 'Bl Bla Bla';
Wobei das ein schlechter Stil wäre ( und auch gewisse Gefahren birgt, da man immer auf eine bestimmte Instanz zugreift)

Bernhard Geyer 17. Jun 2010 07:35

AW: Komponenten in eigenen Funktionen verwenden
 
Zitat:

Zitat von BBJ (Beitrag 1029532)
In der Funktion möchte ich einmal sagen ProgressBar.Position:=ProgressBar.Position+1

Wieso übergibst du die zu verwendente Progressbar nicht als Parameter für deine Funktion?

Luckie 17. Jun 2010 08:55

AW: Komponenten in eigenen Funktionen verwenden
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1029544)
Zitat:

Zitat von BBJ (Beitrag 1029532)
In der Funktion möchte ich einmal sagen ProgressBar.Position:=ProgressBar.Position+1

Wieso übergibst du die zu verwendente Progressbar nicht als Parameter für deine Funktion?

Wobei eine Routine, die die Oberfläche aktualisiert zum Formular gehört und deswegen auch eine Methode der Formularklasse sein sollte, finde ich.

mkinzler 17. Jun 2010 09:00

AW: Komponenten in eigenen Funktionen verwenden
 
Unbestritten. Sollte das aus meiner Antwort nicht klar ersichtlich gewesen sein

Bernhard Geyer 17. Jun 2010 09:06

AW: Komponenten in eigenen Funktionen verwenden
 
Zitat:

Zitat von Luckie (Beitrag 1029562)
Wobei eine Routine, die die Oberfläche aktualisiert zum Formular gehört und deswegen auch eine Methode der Formularklasse sein sollte, finde ich.

Nicht unbedingt. Wenn die Funktion so allgemein ist wie z.B. ein CopyFile/CopyDir bei der man einfach den Kopierfortschritt sehen will ohne das fest an eine (Basisformular)-Klasse als Methode zu binden. Wenn die Logik in der Funktion so speziell ist das eh noch viel mehr Daten des Formulars benötigt werden gebe ich dir recht. Hier macht eine "modularisierung" als Funktion wenig Sinn.

mkinzler 17. Jun 2010 09:10

AW: Komponenten in eigenen Funktionen verwenden
 
Wenn man streng MVC anwendet gehört keine GL in die Oberfläche. Aber auch dann sollte man bestimmte Instanzen ansprechen und dann sollte man auch Klassen verwenden und die Instanzen als Parameter verwenden

Bernhard Geyer 17. Jun 2010 09:22

AW: Komponenten in eigenen Funktionen verwenden
 
Zitat:

Zitat von mkinzler (Beitrag 1029570)
Wenn man streng MVC anwendet gehört keine GL in die Oberfläche. Aber auch dann sollte man bestimmte Instanzen ansprechen und dann sollte man auch Klassen verwenden und die Instanzen als Parameter verwenden

Dann warten wir mal darauf das es für das Dateisystemhandling in Delphi 201x eine File-Klasse wie in Java gibt damit wir das dort auch schön Objektorientiert machen können :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 Uhr.
Seite 1 von 3  1 23      

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