AGB  ·  Datenschutz  ·  Impressum  







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

Eigenen Fenstertyp erstellen/registrieren?

Ein Thema von himitsu · begonnen am 8. Mai 2014 · letzter Beitrag vom 9. Mai 2014
Antwort Antwort
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.031 Beiträge
 
Delphi 12 Athens
 
#1

AW: Eigenen Fenstertyp erstellen/registrieren?

  Alt 9. Mai 2014, 14:36
Wo?
Ich wollte mal einen weiteren Anwendungstyp registrieren, hab das nicht gefunden.
Das Template sollte bereitstellen das ein laufen des Projekts als Dienst und als Anwendung möglich ist.
Bisher muss ich das immer per Hand codieren...
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.813 Beiträge
 
Delphi 12 Athens
 
#2

AW: Eigenen Fenstertyp erstellen/registrieren?

  Alt 9. Mai 2014, 15:13
Kannst Du das als Beispiel hier näher erläutern, Himitsu?
Weil das klingt eigentlich total praktisch.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.400 Beiträge
 
Delphi 12 Athens
 
#3

AW: Eigenen Fenstertyp erstellen/registrieren?

  Alt 9. Mai 2014, 15:58
Der Witz dabei ist, daß ich mir grade daraus ein Henne-Ei-Problem bastle.

(mit Hilfe dieses Dings entsteht ein Helper, um nochmal sowas zu erstellen,
was "nett" werden wird, daß die OTA die Interfaceinstanz selber erstellt und mir keine Möglichkeit gibt, da einen Parameter mitzugeben.
Aber zum Glück hilft mir die RTTI beim Hacken der Klasse, wenn das so funktioniert, wie ich es erhoffe.)

Delphi-Quellcode:
uses
  DesignIntf;

type
  TMyCustomModule = class(TBaseCustomModule, ICustomModule)
    constructor Create(Root: TComponent; const Designer: IDesigner); override;
    class function DesignClass: TComponentClass; override;

    function GetAttributes: TCustomModuleAttributes;

    function GetVerbCount: Integer;
    function GetVerb (Index: Integer): string;
    procedure PrepareItem(Index: Integer; const Item: IMenuItem);
    procedure ExecuteVerb(Index: Integer);

    procedure Saving;
    procedure ValidateComponent(Component: TComponent);
    function ValidateComponentClass(ComponentClass: TComponentClass): Boolean;
    function Nestable: Boolean;
  end;

  TMyDataModule = class(TDataModule)
  private
    FMyProp: Integer;
  published
    property MyProp: Integer read FMyProp write FMyProp;
  end;

procedure register;
begin
  RegisterCustomModuleProc(0, TMyDataModule, TMyCustomModule);
end;

constructor TMyDataModule.TMyCustomModule.Create(Root: TComponent; const Designer: IDesigner);
begin
  inherited;
end;

class function TMyDataModule.TMyCustomModule.DesignClass: TComponentClass;
begin
  Result := TMyDataModule;
end;

procedure TMyDataModule.TMyCustomModule.ExecuteVerb(Index: Integer);
begin
  case Index of
    0: ShowMessage('Execute: MyMenuItem');
  end;
end;

function TMyDataModule.TMyCustomModule.GetAttributes: TCustomModuleAttributes;
begin
  Result := [];
end;

function TMyDataModule.TMyCustomModule.GetVerb(Index: Integer): string;
begin
  case Index of
    0: Result := 'MyMenuItem';
    else Result := '';
  end;
end;

function TMyDataModule.TMyCustomModule.GetVerbCount: Integer;
begin
  Result := 1;
end;

function TMyDataModule.TMyCustomModule.Nestable: Boolean;
begin
  Result := False;
end;

procedure TMyDataModule.TMyCustomModule.PrepareItem(Index: Integer; const Item: IMenuItem);
begin
  case Index of
    0: Item.Checked := True;
  end;
end;

procedure TMyDataModule.TMyCustomModule.Saving;
begin
end;

procedure TMyDataModule.TMyCustomModule.ValidateComponent(Component: TComponent);
begin
end;

function TMyDataModule.TMyCustomModule.ValidateComponentClass(ComponentClass: TComponentClass): Boolean;
begin
  Result := True;
end;
Angehängte Grafiken
Dateityp: jpg Unbenannt.jpg (109,5 KB, 34x aufgerufen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 9. Mai 2014 um 16:03 Uhr)
  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 16:48 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-2025 by Thomas Breitkreuz