AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TComponentEditor und Implementierung der Schnittstelle
Thema durchsuchen
Ansicht
Themen-Optionen

TComponentEditor und Implementierung der Schnittstelle

Ein Thema von Cicaro · begonnen am 8. Mär 2005 · letzter Beitrag vom 15. Mär 2005
Antwort Antwort
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#1

TComponentEditor und Implementierung der Schnittstelle

  Alt 8. Mär 2005, 11:08
Hallo!

Ich versuche zur Zeit, einen ComponentEditor zu registrieren, und kriege es nicht hin, mein Editor-Formular aus der implementierten Methode, Edit, der Schnittstelle zu starten. D.h. die Methode Edit wird vom OI nicht aufgerufen.

Müssen denn noch andere Methoden auf eine bestimmte Art und Weise implementiert werden ?

Übrigens: meinen Editor leite ich von TComponentEditor ab.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: TComponentEditor und Implementierung der Schnittstelle

  Alt 8. Mär 2005, 11:18
Hi Cicaro,

so hab ich das bei einer meiner Komponenten gemacht:
Delphi-Quellcode:
type
  TMyComponentEditor = class(TComponentEditor)
    procedure ExecuteVerb(Index: Integer); override;
    function GetVerb(Index: Integer): string; override;
    function GetVerbCount: Integer; override;
  end;

{...}

procedure TMyComponentEditor.ExecuteVerb(Index: Integer);
begin
  case Index of
    0: (Component as TMyComponent).Edit;
  end;
end;

function TMyComponentEditor.GetVerb(Index: Integer): string;
begin
  case Index of
    0: Result := 'Edit';
  end;
end;

function TMyComponentEditor.GetVerbCount: Integer;
begin
  Result := 1;
end;
In der Methode Edit wird dann das Editor-Formular aufgerufen...
Wichtig ist das Registrieren des Editors:
Delphi-Quellcode:
procedure Register;
begin
  RegisterComponentEditor(TMyComponent, TMyComponentEditor);
end;
MfG
Stevie
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#3

Re: TComponentEditor und Implementierung der Schnittstelle

  Alt 8. Mär 2005, 11:31
Danke für die Antwort!

Hab' gerade auch keine Möglichkeit an ein zum Testen geeignetes Delphi ranzukommen.

Kann mir dann noch mal jemand sagen was die Verbs hierbei zu bedeuten haben ?
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

Re: TComponentEditor und Implementierung der Schnittstelle

  Alt 8. Mär 2005, 11:37
Zitat von Cicaro:
Kann mir dann noch mal jemand sagen was die Verbs hierbei zu bedeuten haben ?
Das sind die Menüpunkte, die du beim Popupmenü der Komponente in der IDE bekommst.
Die stehen dann über "Bearbeiten", zu sehen z.B. bei TMainMenu, TPopupMenu ("Menü-Designer...") oder TAcionList ("Editor für Aktionslisten...")
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#5

Re: TComponentEditor und Implementierung der Schnittstelle

  Alt 11. Mär 2005, 11:30
Wie starte ich jetzt aber das Formular ?
Beim PropertyEditor ging es irgendwie noch aber beim ComponentEditor kommen bei irgendwelche Fehler.

Kann mir jemand bitte mit einem kleinem Code weiterhelfen ?

so etwa:

Delphi-Quellcode:
procedure TMyEditor.Edit;
var Form:TMyEditForm;
begin
 // Erstellen
 // Ausführen
 // Freigeben
end;
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

Re: TComponentEditor und Implementierung der Schnittstelle

  Alt 11. Mär 2005, 11:36
Delphi-Quellcode:
procedure TMyEditor.Edit;
var Form:TMyEditForm;
begin
  // Erstellen
  Form := TMyEditForm.Create(Application);
  // Ausführen
  Form.ShowModal;
  // Freigeben
  FreeAndNil(Form);
end;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#7

Re: TComponentEditor und Implementierung der Schnittstelle

  Alt 11. Mär 2005, 20:13
Komisch !
So habe ich es zuvor auch schon versucht.
Der OI hat mir dabei nur Fehler gemeldet
Ach ... vielleicht hatte ich woanders was falsch gemacht.
Aber jetzt funktioniert es.

Danke, Stevie !

Oh Mann, schon wieder Probleme !

Meine Komponente wird enfernt, nachdem mein Formular geschlossen wird.
Wie kann das sein ?
Hab' den Code von Stevie übernommen, das Formular wird ausgeführt und dann verschwindet meine Komponente !

Warum ?
Weiß jemand Rat ?
Stevie ?
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

Re: TComponentEditor und Implementierung der Schnittstelle

  Alt 14. Mär 2005, 09:29
Zitat von Cicaro:
Meine Komponente wird enfernt, nachdem mein Formular geschlossen wird.
Wie kann das sein ?
Hab' den Code von Stevie übernommen, das Formular wird ausgeführt und dann verschwindet meine Komponente !

Warum ?
Weiß jemand Rat ?
Stevie ?
Sicher, dass du nicht irgendwo aus Versehen ein Free auf deine Komponente machst?
Ist sie "einfach weg", oder gibt's ne Fehlermeldung?
Wie sprichst du die Komponente in deinem Formular an?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#9

Re: TComponentEditor und Implementierung der Schnittstelle

  Alt 15. Mär 2005, 10:57
Eigentlich geht es jetzt ohne Verschwinden der Komponente, es gab auch keinen Fehler. Vielleicht hab' ich wirklich ein Free übersehen.

zu deiner Frage:
Ich hab' im EditFormular eine globale Variable (Instanz ?) a.

Und so rufe ich mein Formular auf:

Delphi-Quellcode:
procedure TMyComponentEditor.Edit;
var Form:TForm1;
begin
 Form:=TForm1.Create(Application);
// a:=TMyComponent.Create(Form);
 a:=(FComponent as TMyComponent);
 Form.ShowModal;
// (FComponent as TMyComponent).Assign(a);
 Form.Free;
end;
ist a jetzt sowas wie ein Zeiger auf TMyComponentEditor.FComponent ?
oder warum muss ich den veränderten Wert nicht zurückkopieren ?
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

Re: TComponentEditor und Implementierung der Schnittstelle

  Alt 15. Mär 2005, 11:06
Zitat von Cicaro:
ist a jetzt sowas wie ein Zeiger auf TMyComponentEditor.FComponent ?
Genau!

Ich weiß ja nicht, was für einen Editor du geschrieben hast, und ob es Sinn macht, den auch zur Laufzeit verfügbar zu machen.
Sonst würde ich vorschlagen, eine Edit-Methode in deine Komponente einzubauen, die den Editor aufruft. Der ExecuteVerb-Aufruf sieht dann einfach so aus, wie ich oben beschrieben hab.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  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 02:26 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