![]() |
Untermenüs eigener Komponenten erstellen ?
Moin,
ich komm irgendwie garnicht klar damit wie man so verschachtelungen macht für seine Eigenen Komponenten. Also ich meine sowas wie das hier z.B:
Code:
WOEmailClient1.Mailbox.Messages
also die .Mailbox funktion is ja kein problem....
Code:
Wie aber krieg ich .Messages hinter .Mailbox ? (WOEmailClient1.Mailbox.Messages)
procedure TWOEMailClient.Mailbox(ChooseMailBox: String);
begin vidimap4.SelectMailBox(ChooseMailBox); end; Bin halt noch nen totaler anfänger und komm irgendwie nicht dahinter wie das in Delphi funktioniert |
Re: Untermenüs eigener Komponenten erstellen ?
hallo
Ich vermute dass es sich bei Mailbox nicht um eine Funktion sondern um ein Objekt handelt, welches die Methode bzw. das Attribut Messages besitzt. Deshalb kannst du, wenn das Object Messages als public deklariert ist, auch auf seine Eigenschaften zugreifen. Beispiel: Die Komponente TMemo besitzt ein Atrribut namens Lines, welches die einzelnen Textzeilen beinhaltet. Lines ist nichts anders als ein Object des Typs TStrings. Deshalb kannst du auch auf dessen Methoden (bsp: Add, clear) zugreifen in dem du Memo1.Lines.clear; aufrufst. Ich hoffe meine Antwort ist einigermaßen verständlich. Luki |
Re: Untermenüs eigener Komponenten erstellen ?
Hmm.... hier mal der ganze Code... vielleicht wirds dann verständlich was ich genau möchte...
Ich benutze TIDimap4 Object bzw. Override diese um mein eigenen E-Mail Client zu erstellen. Ich komme soweit klar meine eigenen Methoden usw. zu schreiben für mein Eigenes E-Mail-Client-Komponentchen. Aber bin wirklich voll am rätseln wie ich ".messages" (was die gesamtanzahl der Messages der ausgewälten Mailbox ausgibt) hinter ".Mailbox" bringen kann... Will das einfach nur mal testen bzw. wissen da ich dann später sachen machen will wie z.b. MeinEmailClient.Mailbox['INBOX'].Messages[14].from .body .headers naja usw. das sei aber jetzt erstmal dahingestellt.... Hier der gesammte Code von meiner EmailClient Componente...
Code:
unit WOEMailClient;
interface uses SysUtils, Classes, IdIMAP4, dialogs; type TWOEMailClient = class(TComponent) private vIdIMAP4: TIdIMAP4; vUsername: String; vPassword: String; vServerIP: String; vPort: Integer; vOnConnected: TNotifyEvent; vOnDisconnected: TNotifyEvent; vTotalMsgs: LongInt; { Private declarations } protected { Protected declarations } public procedure Connect; procedure Disconnect; function Connected: Boolean; procedure MailBox(ChooseMailBox: String); function Messages: LongInt; constructor Create(aOwner: TComponent); override; destructor Destroy; override; { Public declarations } published property Username: string read vUsername write vUsername; property Password: string read vPassword write vPassword; property ServerIP: string read vServerIP write vServerIP; property Port: Integer read vPort write vPort default 143; property OnConnected: TNotifyEvent read vOnConnected write vOnConnected; property OnDisconnected: TNotifyEvent read vOnDisconnected write vOnDisconnected; { Published declarations } end; procedure Register; implementation procedure Register; begin RegisterComponents('War Office (new)', [TWOEMailClient]); end; constructor TWOEMailClient.Create(aOwner: TComponent); begin inherited Create(aOwner); vIdIMAP4:= TIdIMAP4.Create(nil); vPort:= 143; //bl bla end; destructor TWOEMailClient.Destroy; begin //bla bla if vIdIMAP4.Connected then vIdIMAP4.Disconnect; inherited Destroy; end; procedure TWOEMailClient.Connect; begin vidimap4.Port := vport; vidimap4.Username := vusername; vidimap4.Password := vpassword; vidimap4.Host := vServerIP; vidimap4.Connect; end; function TWOEMailClient.Connected: Boolean; begin result:= vidimap4.Connected; end; procedure TWOEMailClient.Disconnect; begin if vidimap4.Connected then begin vidimap4.Disconnect; showmessage('Verbindung abgebrochen'); //nur zu test zwecken end; end; procedure TWOEMailClient.Mailbox(ChooseMailBox: String); begin vidimap4.SelectMailBox(ChooseMailBox); end; function TWOEMailClient.Messages: LongInt; begin result := vidimap4.MailBox.TotalMsgs; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr. |
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