Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Objektvariablen übergeben
erni - Do 06.05.04 20:40
Titel: Objektvariablen übergeben
Hallo,
wie man unschwer an der Anzahl meiner bisherigen Beiträge erkennen kann, bin ich neu hier.
Ich hatte heute das erste mal Kontakt mit Delphi 7 und suche schon seit einer Stunde in meinem Buch "Grundlagen und Profiwissen - Borland Delphi 7" von Doberenz nach der
Lösung zu folgendem Problem:
Ich möchte einer eig. Funktion die ich in einer dafür vorgesehenen Unit zusammen mit anderen Funktion geschrieben habe ein Objekt (Combobox) als
Objektvariable übergeben. Unter Visual Basic habe ich die entspr. Variable als Objekt deklariert und dann in der entspr.
Funktion z.B. mit AddItem (Delphi: .Items.Add() ) entsprechend bearbeitet.
z.B. Einlesen einer Textdatei und befüllen von Textfeldern mit den eingelesenen Werten.
Kann mir jemand sagen wie man das in Delphi macht?
Danke
Motzi - Do 06.05.04 21:02
Meinst du etwas in dieser Richtung?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| MyProcedureXYZ(ComboBox1);
procedure MyProcedureXYZ(aComboBox: TComboBox); begin aComboBox.Items.Add('xyz'); aComboBox.Items.Add('abc'); aComboBox.Items.Add('123'); end; |
Vorraussetzung ist natürlich, dass es eine ComboBox mit namen ComboBox1 gibt..!
erni - Fr 07.05.04 06:47
:D Ja genau das meine ich! KNUTSCH!
Nur eine Frage noch! Ich muss den realen Namen der Combobox aus der entsprechenden Unit verwenden?!
Das habe ich nicht 1000% verstanden. Kannst Du dazu bitte noch etwas sagen?!
Motzi - Fr 07.05.04 12:51
Naja, der Name den du den Komponenten im Objektinspektor verpasst wird auch automatisch als Variablenname verwendet.. Wolltest du das wissen?
erni - Fr 07.05.04 14:35
hmm . . .???
Ok ist mir klar.
Aber wo kommt dernn diese Anweisung hin?
MyProcedureXYZ(ComboBox1);
In die unit in der sich auch die Funktion dazu befindet, oder?!
Motzi - Fr 07.05.04 14:51
Diese Anweisung kommt dort hin, wo du die Prozedur "MyProcedureXYZ" aufrufen willst...
erni - Fr 07.05.04 15:43
jepp alles klar! Sorry war gerade etwas durcheinander. :(
Klabautermann - Fr 07.05.04 16:06
Hallo,
dir scheind noch nciht ganz klar zu zu sein, wann du wo was aufrufen kannst. Die Schnellerklährung lautet inetwa so:
Dein Projekt ist in mehrere Teile (Units) unterteilt. In jeder Unit kannst du alles verwenden, was in ihr selbst definiert ist. Willst du in einer Unit Proceduren, Funkionen, constanten, Variablen usw. aus einer anderen Unit aufrufen, so musst du diese per
uses Anweisung einbinden.
z.B. so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| unit Unit1; interface
function Quadreire(X : Integer) : Integer;
implementation
function Quadreire(X : Integer) : Integer; begin Result := X * X; end;
end.
unit Unit2;
interface
function Hoch3(X : Integer) : Integer;
implementation uses Unit1; function Hoch3(X : Integer) : Integer; begin Result := Quadreire(X) * X; end;
end. |
Die sinnigkeit dieser lösung des Mathematischen Problemms sei mal dahingestellt, aber ich glaube das Prinzieb wird deutlich.
Ansonsten kann ich nur die Letkürer einschlägiger Anfänger Tuturials (
1 [
http://www.delphi-treff.de/content/tutorials/einsteigerkurs/],
2 [
http://www.delphi-source.de/tutorials/index.php?cat=1]) empfehlen.
Gruß
Klabautermann
erni - Fr 07.05.04 18:15
Ja. Danke für die genaue Erklärung mit Bsp.! War äußerts aufschlussreich!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!