Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Unterprogramm auf Oberfläche(VCL) beziehen (https://www.delphipraxis.net/122987-unterprogramm-auf-oberflaeche-vcl-beziehen.html)

foerster7892 25. Okt 2008 11:02


Unterprogramm auf Oberfläche(VCL) beziehen
 
HI,
kann mir jemand sagen wie ich elemente auf der Oberfläche im Unterprogramm mit einbeziehen kann???

z.B.:

Stringgrid :
Daten in eine Spalte legen -> Programmcode soll im Up liegen


Danke im Vorraus für eure Hilfe

Phoenix 25. Okt 2008 11:10

Re: Unterprogramm auf Oberfläche(VCL) beziehen
 
Häh? :gruebel: Was willst Du?

foerster7892 25. Okt 2008 11:16

Re: Unterprogramm auf Oberfläche(VCL) beziehen
 
ich würde gerne mit einem befehl aus nem Unterprogramm

zum beispiel auf stringgrid oder label zugreifen das auf der oberfläche liegt

irgendnen wort einfügen oder so

procedure Unterprog; kann ja nciht auf oberfläche zugreifen -> muss ich da irgendwelche parameter oder so anfügen??????????????????

Uwe Raabe 25. Okt 2008 11:20

Re: Unterprogramm auf Oberfläche(VCL) beziehen
 
Zitat:

Zitat von Phoenix
Häh? :gruebel: Was willst Du?

"Daten in eine Spalte legen -> Programmcode soll im Up liegen"

heißt übersetzt

"Ich möchte in einem Unterprogramm Daten in eine Spalte eines TStringGrid schreiben"

Lösung 1:
Das Unterprogramm ist eine Methode des Forms in dem das Stringgrid liegt, dann kann es direkt angesprochen werden.

Lösung 2:
Das Unterprogramm wird zwar aus einer Methode des Forms angesprochen, das Form liegt aber nicht im Scope des Unterprogramms. Dann braucht das Unterprogramm einen (zusätzlichen) Parameter vom Typ TStringGrid in den es seine Daten schreiben kann. Beim Aufruf gibt man dann das gewünschte StringGrid als Parameter mit.

Luckie 25. Okt 2008 11:22

Re: Unterprogramm auf Oberfläche(VCL) beziehen
 
Ich beginne zu ahnen was du meinst.

Entweder du schreibst den Bezeichner (StringGrid1) immer davor oder du machst die Routine zu einer Methode der Form.

Mist ich brauche eine neue Glaskugel, meine ist zu langsam. :roll:

Uwe Raabe 25. Okt 2008 11:29

Re: Unterprogramm auf Oberfläche(VCL) beziehen
 
Zitat:

Zitat von Luckie
Ich beginne zu ahnen was du meinst.

Vielleicht sollte die DP auch mal Sprachkurse anbieten :chat:

Phoenix 25. Okt 2008 11:30

Re: Unterprogramm auf Oberfläche(VCL) beziehen
 
Boah. Ganz ehrlich: Aus der Originalfrage wäre ich NIE im Leben auf die gemeinte Frage gekommen. Dafür kann ich zu gut Deutsch... Wie wärs wenn man fragt:

"Ich will aus einem Unterprogramm auf ein Control auf der Oberfläche zugreifen. Wie schreibe ich z.B. aus einer Prozedur Daten in ein Stringgrid?"

Das wäre mal ne Frage, da kann man drauf antworten. Zudem hätte ich dann gewusst, dass das hier die falsche Sparte ist, und das zu VCL / Controls gehört.

Also:
Die Lösungen waren schon genannt.
Entweder, Du hast die Methode schon auf dem Form. Dann kannst Du mit Controlname. auf das Control zugreifen.
Bist Du nicht im Form sondern in einer anderen Unit, so musst Du das Formular in die Uses-Klausel Deiner Unit aufnehmen und kannst dann mit FormName.Controlname. darauf zugreifen.

DP-Maintenance 25. Okt 2008 11:30

DP-Maintenance
 
Dieses Thema wurde von "Phoenix" von "Object-Pascal / Delphi-Language" nach "VCL / WinForms / Controls" verschoben.
Falsche Sparte

foerster7892 25. Okt 2008 11:40

Re: Unterprogramm auf Oberfläche(VCL) beziehen
 
Jo
Danke erstmal

könntet ihr mir vllt noch kurz nen einfaches Bsp. aufschreiben plz

(Und sry wegen der Gram/Rechtschr ich mach das in Foren meist wie in chats muss ich mir abgewöhnen -> alles klein und so fast ohne Punkt und Komma)

Uwe Raabe 25. Okt 2008 11:45

Re: Unterprogramm auf Oberfläche(VCL) beziehen
 
Angenommen im Form1 soll beim Klick auf Button1 das StringGrid1 mit Daten gefüllt werden. Dazu gibt es irgendwo eine Prozedur, die ein TStringGrid mit Daten füllt und die hat diese Signatur:
Delphi-Quellcode:
procedure FillStringGrid(Target: TStringGrid);
Im Form haben wir dann die Methode

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  FillStringGrid(StringGrid1);
end;
[OT]Nur meine persönliche Meinung: Eine klare und verständliche Formulierung erhöht nicht nur die Wahrscheinlichkeit einer schnellen und korrekten Antwort, sondern zeugt auch von Respekt vor dem Lesenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 Uhr.
Seite 1 von 2  1 2      

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