AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Untermenüs eigener Komponenten erstellen ?
Thema durchsuchen
Ansicht
Themen-Optionen

Untermenüs eigener Komponenten erstellen ?

Ein Thema von himmelweiss · begonnen am 20. Sep 2004 · letzter Beitrag vom 20. Sep 2004
Antwort Antwort
himmelweiss

Registriert seit: 20. Sep 2004
2 Beiträge
 
#1

Untermenüs eigener Komponenten erstellen ?

  Alt 20. Sep 2004, 09:48
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:
procedure TWOEMailClient.Mailbox(ChooseMailBox: String);
begin
    vidimap4.SelectMailBox(ChooseMailBox);
end;
Wie aber krieg ich .Messages hinter .Mailbox ? (WOEmailClient1.Mailbox.Messages)
Bin halt noch nen totaler anfänger und komm irgendwie nicht dahinter wie das in Delphi funktioniert
  Mit Zitat antworten Zitat
Benutzerbild von memphis
memphis

Registriert seit: 4. Apr 2003
Ort: Innsbruck
89 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Untermenüs eigener Komponenten erstellen ?

  Alt 20. Sep 2004, 10:08
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
Lukas
Wenn du nicht mehr weiter weißt, zeichne dir 'nen Einheitskreis.
  Mit Zitat antworten Zitat
himmelweiss

Registriert seit: 20. Sep 2004
2 Beiträge
 
#3

Re: Untermenüs eigener Komponenten erstellen ?

  Alt 20. Sep 2004, 10:24
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.
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:07 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