AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Komponenten-Entwicklung: xyz[i].name

Ein Thema von lkz633 · begonnen am 17. Jan 2004 · letzter Beitrag vom 17. Jan 2004
Antwort Antwort
Seite 3 von 3     123   
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#21

Re: Komponenten-Entwicklung: xyz[i].name

  Alt 17. Jan 2004, 18:19
Das Problem ist das ich nicht mehr habe. Ich wollte halt erstmal das der Zugriff klappt bevor ich die Methoden angehe.

Aber hier die komplette Unit.

lkz633
Angehängte Dateien
Dateityp: pas outextract.pas (1,6 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#22

Re: Komponenten-Entwicklung: xyz[i].name

  Alt 17. Jan 2004, 18:39
Hallo,
ich habe mal ein bißchen an Deinem Source herumgefummelt.
Das einzige was ich Dir bieten kann ist
Code:
komponente.contacts[x].count
Code:
komponente.contacts.count
Wäre auch sinnlos. Contacts ist nur eine Array Property. D.h. in Wirklichtkeit stecken die in FList verwalteten Objekte dahinter. Welches dieser Objekte möchtest Du denn mit komponente.contacts.count ansprechen ??? Wozu brauchst Du das überhaupt ? komponente.count liefert doch schon das Ergebnis.

Hier jetzt der Source
Delphi-Quellcode:
unit outextract;

interface

uses
  windows,SysUtils, Classes, Controls,comobj,variants;

type
  outlookversion = (ovOutlook,ovOutlookExpress);


Toutextract = class;

 tcontactitem = class
  private
    Fname : string;
    Foutextract : Toutextract;
    function GetCount: Integer;
  public
    constructor Create(outextract : Toutextract);
    property name : string read Fname write Fname;
    property Count : Integer read GetCount; // damit geht contacts[x].Count
end;



  Toutextract = class(TComponent)
  private
    FList : TList;
    FOutlookVersion: outlookversion;
    function GetCount: Integer;
    function GetItem(Index: Integer): TContactItem;
    procedure SetOutlookVersion(const Value: outlookversion);
  public
    constructor create(AOwner: TComponent); override;
    destructor destroy;override;
    function Add(const aName : String) : tcontactitem;
    procedure Clear;
    property contacts[Index : Integer]: TContactItem read GetItem; default;
    property Count : Integer read GetCount;
  published
    property OutlookVersion:outlookversion read FOutlookVersion write SetOutlookVersion;

  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('SEPT-Solutions', [Toutextract]);
end;






{ Toutextract }

function Toutextract.Add(const aName: String): tcontactitem;
begin
  Result:=tcontactitem.Create(Self);
  Result.name:=aName;
  FList.Add(Result);
end;

procedure Toutextract.Clear;
var
  iCnt : Integer;
begin
  For iCnt:=0 to FList.Count-1 do
    TObject(FList[iCnt]).Free;
  FList.Clear;
end;

constructor Toutextract.create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FList:=TList.Create;
end;

destructor Toutextract.destroy;
begin
  FList.Free;
  inherited Destroy;
end;

function Toutextract.GetCount: Integer;
begin
  Result:=FList.Count;
end;

function Toutextract.GetItem(Index: Integer): TContactItem;
begin
  Result:=TContactItem(FList[Index]);
end;

procedure Toutextract.SetOutlookVersion(const Value: outlookversion);
begin
  FOutlookVersion:=Value;
end;

{ tcontactitem }


{ tcontactitem }

constructor tcontactitem.Create(outextract: Toutextract);
begin
  inherited Create;
  Foutextract:=outextract;
end;

function tcontactitem.GetCount: Integer;
begin
  If Assigned(Foutextract) then
    Result:=Foutextract.Count
    else
      Result:=-1; // Zeigt dass das TMyListItem in keiner Liste hängt
end;

end.
  Mit Zitat antworten Zitat
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#23

Re: Komponenten-Entwicklung: xyz[i].name

  Alt 17. Jan 2004, 18:52
Ich hatte mir halt irgendwie gedacht das es sehr viel logischer ist, ich will ja die Anzahl der Kontakte und nicht die Anzahl der Komponenten. Bei delphi Komponenten geht es doch auch so, z.B listbox.items.count und listbox.item[i]

Naja, ist ja nicht so schlimm.

Herzlichen Dank für deine Hilfe!!!!

Gruss lkz633
  Mit Zitat antworten Zitat
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#24

Re: Komponenten-Entwicklung: xyz[i].name

  Alt 17. Jan 2004, 18:53
hm... contacts.name, contacts.count usw geht immer noch, wiso?

Hat da jemand eine Erklärung für?

Gruss lkz633
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#25

Re: Komponenten-Entwicklung: xyz[i].name

  Alt 17. Jan 2004, 18:55
Hallo,
das wird Dir nur von Delphi angeboten. Versuch es mal zu compilieren.
  Mit Zitat antworten Zitat
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#26

Re: Komponenten-Entwicklung: xyz[i].name

  Alt 17. Jan 2004, 19:00


Dann werde ich mal weiter mein Glück versuchen...puh Komponenten sind gar nicht so leicht
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#27

Re: Komponenten-Entwicklung: xyz[i].name

  Alt 17. Jan 2004, 19:02
Hallo,
jetzt habe ich geschnallt was Du möchtest. Mein erstes Beispiel enthält die Lösung.
Du musst ein Objekt dazwischenschalten. Dieses Objekt verwaltet dann die einzelnen Objekte.
Bei TListBox ist die property Items vom Type TStrings. In meinen ersten Beispiel ist es TMyListItems

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  iCnt : Integer;
begin
  For iCnt:=0 to FMyListItems.Count-1 do // Zugriff auf Count
    ListBox1.Items.Add(FMyListItems[iCnt].Name); // Zugriff auf die Objekte
end;
  Mit Zitat antworten Zitat
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#28

Re: Komponenten-Entwicklung: xyz[i].name

  Alt 17. Jan 2004, 19:08
Sorry jetzt bin ich ganz verwirrt......

Hab grad gemerkt das contacts.add dann ja auch nicht geht......

Könntest du wenn du verstanden hast was ich mein nochmals die Unit von grade abgeändert posten, das wäre sehr nett....


lkz633
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#29

Re: Komponenten-Entwicklung: xyz[i].name

  Alt 17. Jan 2004, 19:10
Hallo,
leider nicht. Da ich jetzt mit unseren Kindern Die Siedler spielen werde.

SCHAU IN MEIN ERSTES BEISPIEL DA STEHT ALLES DRIN
  Mit Zitat antworten Zitat
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#30

Re: Komponenten-Entwicklung: xyz[i].name

  Alt 17. Jan 2004, 19:57
Jepeeeeee Jetzt kann ich alles genau so machen wie ich es wollte...danke danke danke


Ich wollte immer soetwas machen
Code:
    property contacts[X : Integer] : Tcontact read GetItems;
  end;
anstatt so etwas:

Code:
  property Items[X : Integer] : Tcontact read GetItems;[b]default[/b];

  public
    [b]Contacts: Tcontactlist;[/b]
Gruss lkz633
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 15:02 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