AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Komponenten in eigenen Funktionen verwenden
Thema durchsuchen
Ansicht
Themen-Optionen

Komponenten in eigenen Funktionen verwenden

Ein Thema von BBJ · begonnen am 16. Jun 2010 · letzter Beitrag vom 18. Jun 2010
Antwort Antwort
Seite 1 von 3  1 23      
BBJ

Registriert seit: 23. Jul 2007
Ort: Dresden
7 Beiträge
 
#1

Komponenten in eigenen Funktionen verwenden

  Alt 16. Jun 2010, 23:21
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
BBJ
  Mit Zitat antworten Zitat
Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#2

AW: Komponenten in eigenen Funktionen verwenden

  Alt 16. Jun 2010, 23:39
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.
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

AW: Komponenten in eigenen Funktionen verwenden

  Alt 16. Jun 2010, 23:40
Schreib die Methode doch unter private oder public PArt der TForm1, dann kennt diese auch die internen Klassenvariablen.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Komponenten in eigenen Funktionen verwenden

  Alt 17. Jun 2010, 05:35
Oder stelle den Namen der Instanz der Komponente voran:

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)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Komponenten in eigenen Funktionen verwenden

  Alt 17. Jun 2010, 07:35
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?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: Komponenten in eigenen Funktionen verwenden

  Alt 17. Jun 2010, 08:55
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Komponenten in eigenen Funktionen verwenden

  Alt 17. Jun 2010, 09:00
Unbestritten. Sollte das aus meiner Antwort nicht klar ersichtlich gewesen sein
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Komponenten in eigenen Funktionen verwenden

  Alt 17. Jun 2010, 09:06
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Komponenten in eigenen Funktionen verwenden

  Alt 17. Jun 2010, 09:10
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
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Komponenten in eigenen Funktionen verwenden

  Alt 17. Jun 2010, 09:22
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
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 22:21 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