Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Deklaration ändern ? (https://www.delphipraxis.net/95998-deklaration-aendern.html)

HolgerCW 17. Jul 2007 15:43


Deklaration ändern ?
 
Hallo,

wie kann ich in einer Procedure eine Deklaration ändern.

Möchte in meiner Procedure Comboboxen oder TTabControls füllen.

Wenn man ein TTabControl füllen will, soll Die Variable Box als TTabControl.Tabs deklariert werden, ansonsten als TComboBox.

Gruss

Holger

SirThornberry 17. Jul 2007 15:46

Re: Deklaration ändern ?
 
Zitat:

Wenn man ein TTabControl füllen will, soll Die Variable Box als TTabControl.Tabs deklariert werden, ansonsten als TComboBox.
also soll die Variable Box sowohl von dem einen Typ als auch vom anderen Typ sein?! Dann müsste man einen gemeinsamen Vorfahren finden. Wenn du TTabControl und TComboBox hättest wäre das TWinControl etc.
du schreibst allerdings etwas von einem Typ TTabControl.Tabs wobei Tabs ja dann ein Member wäre aber kein Typ :gruebel:

RavenIV 17. Jul 2007 15:52

Re: Deklaration ändern ?
 
a) Entweder Du findest einen gemeinsamen Vorfahren der Typen, die Du übergeben willst (wie schon geschrieben wurde)
oder
b) Du überlädst (overload) die Funktion

HolgerCW 17. Jul 2007 15:56

Re: Deklaration ändern ?
 
Ohh, da habe ich mich vertan.

Es geht um die Deklaration von TTabControl und TComboBox

Delphi-Quellcode:
ComboBox1.items.Add('')
oder

Delphi-Quellcode:
TTabControl.Tabs.Add('');
Ich könnte der Procedure z.B. mit einer 1 = TTabControl und 2 = TComboBox mitgeben.

Wie kann ich nun in der procedure TTabControl oder TComboBox füllen ?

Vorher hatte ich in der Procedure fest = Box: TComboBox

Gruss

Holger


P.S.:
Hier die derzeitige Procedure ohe TTabControl:

Delphi-Quellcode:
ComboBox_fuellen (Box:TComboBox; Query:TQuery; Spalten:String; Anzahl:Integer; SQL: String);

HolgerCW 17. Jul 2007 15:58

Re: Deklaration ändern ?
 
TWinControl hat kein .Clear;

Gruss

Holger

Bernhard Geyer 17. Jul 2007 15:58

Re: Deklaration ändern ?
 
Das Property items und Tabs sind beide vom Typ TStrings. Also benötigst du eine Funktion die als Übergabeparameter ein TStrings besitzt.

RavenIV 17. Jul 2007 15:59

Re: Deklaration ändern ?
 
Also hier würde ich den von mir erwähnten Punkt b) bevorzugen.
Sonst musst Du innerhalb der procedure noch entscheiden, um welchen Typ Box es sich handelt.

SirThornberry 17. Jul 2007 16:01

Re: Deklaration ändern ?
 
@Klaus: muss er nicht
Delphi-Quellcode:
DieProcedure(Combobox1.Items);
DieProcedure(TabControl1.Tabs);
[...]
procedure TYourClass.DieProcedure(Items: TStrings);
begin
  Items.Add('');
end;

RavenIV 17. Jul 2007 16:03

Re: Deklaration ändern ?
 
müsste es nicht heissen:
Delphi-Quellcode:
procedure TYourClass.DieProcedure(var Items: TStrings);

Bernhard Geyer 17. Jul 2007 16:06

Re: Deklaration ändern ?
 
Zitat:

Zitat von RavenIV
müsste es nicht heissen:
Delphi-Quellcode:
procedure TYourClass.DieProcedure(var Items: TStrings);

Nö. Nur wenn du die Items in der Funktion erzeugen willst. Nicht wenn es schon vorhanden ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz