![]() |
Re: Lösung: Das leidige Problem mit der DsgnIntf bzw. Proxy.
Das entsprechende Package ist definitv nur ein Entwufszeitpackage, habe eben nachgeschaut. Die "designide.dcp" ist wie schon gesagt eingebunden.
Der Sinn und Zweck von Designpackages war mir schon bewusst. |
Re: Lösung: Das leidige Problem mit der DsgnIntf bzw. Proxy.
Zitat:
Ich habe hier im Moment keine D2005 PE zur Hand |
Re: Lösung: Das leidige Problem mit der DsgnIntf bzw. Proxy.
Hallo MaBuSe,
verfolgst du das Thema noch? Hast Du vielleicht schon 2005PE zu Hand? :wink: Ich hab nämlich auch das Problem mit DesignIntf in Delphi 2005 PE. Ich versteh das auch nicht, weshalb dieses solche Probleme macht. Zum Beispiel hab ich eine Komponente ich 2005PE installiert, die mit dem DesignIntf problemlos zu recht kommt. Er unterkringelt zwar DesignIntf im Source aber diese Komponente funktioniert ja auch. Ich meine, wenn diese Komponente funktioniert, weshalb soll dann meine(unsere) Komponenten nicht reibungslos funktionieren. Es kann doch nicht sein, dass das an dem DesignIntf scheitert. Also... irgendwas machen wir doch da falsch? Wenn es Dich interessiert, dann könnte ich dir ja mal einen Auszug des Source schicken, bei das installieren der Komponente geklappt hat. Einen Auszug deshalb, weil es sich um 4 "Units" handelt, die ich alle ausgedruckt habe. Insgesamt waren es über 100 DIN A4-Seiten. :roteyes: Vielleicht erkennst Du ja dann als Profi, wie man das machen muss. Also... ich habe ja versucht das nachzuvollziehen, aber irgendwie klappt das nicht. Ich muss aber dazu sagen, dass es vom Prinzip her genauso ist, wie du gesagt hast. Man muss die Units auslagern. Wäre schön, wenn Du dich mal melden würdest. Danke im Voraus. |
Re: Lösung: Das leidige Problem mit der DsgnIntf bzw. Proxy.
Zitat:
Ich habe keine 2005 PE installiert. (nur die D2006 Ent ;-)) Ich habe im Moment nur etwas wenig Zeit :-( Du kannst mir aber Deinen (kompilierfähigen) Source Auszug schicken. Ich schau mal drüber. Das braucht aber etwas Zeit. Hast Du die *.dpk (Entwurfszeitpackage) im Requires angepasst? Dort muß die designide eingebunden sein. |
Re: Lösung: Das leidige Problem mit der DsgnIntf bzw. Proxy.
Ich glaube, das "leidige Problem mit der DsgnInft..." hat nun ENDLICH ein Ende gefunden. :bounce2:
Also... ich denke besonders als Anfänger hat man es ja nicht leicht. Mir hat das jetzt aber absolut keine Ruhe gelassen und hab überlegt, und überlegt ... :roteyes: Ich dachte halt, es kann nicht sein, das das absolut nicht möglich ist. Ich habe viele Möglichkeiten/Varianten ausprobiert und siehe da.... sogar in Delphi 2005 PE (!!!) klappt das jetzt ENDLICH. Vorab möchte ich noch schnell sagen, dass man die erstellen Packages in den LIB-Ordner kopieren muss. Naja.. vielleicht gehts ja auch anders, wenn man irgendwo was ändert, aber so funktionierte es wenigstens. Alle (!!) Units oder besser gesagt Packages MÜSSEN in der ENTWURFSZEIT erstellt werden. Ich weiss, das hat MABuSE immer gesagt und so ist es ja auch schliesslich. Also... das soo richtig zu erklären... mhhh... das fällt mir in der "Fachsprache" ja nicht einfach, weil ich mir das programmieren selbst angeeignet habe. Damit aber andere nicht soo verzweifeln wie ich :wall: und diejenigen, denen die Geduld und die Nerven fehlen, denn man dreht da wirkich am Rad bei diesem Problem, für die werde ich morgen bzw. am Wochenende eine PDF-Datei mit Screenshorts erstellen, in der ich alles beschreiben werde. Schritt für Schritt, dass sogar Anfänger oder die, die das nicht so schnell kapieren - so wie ich - das verstehen werden. Wenn es dann jemanden interessiert, kann er sich die Datei runterladen. Aber ich muss mich erst noch schlau machen, wie ich dann hier die PDF-Datei irgendwie einbinden kann, damit sie anderen zur Verfügung steht. |
Re: Lösung: Das leidige Problem mit der DsgnIntf bzw. Proxy.
Zitat:
Zitat:
Zitat:
Die PDF einfach als Attachment Deinem Beitrag hinzufügen. (über dem [Absenden] Button im Beitragseditor) |
Re: Lösung: Das leidige Problem mit der DsgnIntf bzw. Proxy.
Hier noch mal ein paar weitere Hinweise zu den Packages und den Units:
Viel Spaß MaBuSE |
Re: Lösung: Das leidige Problem mit der DsgnIntf bzw. Proxy.
Hallo Dr. Mabuse , :hi:
ich hab jetzt mein Tutorial fertig. Wie versprochen! :dancer: Naja... Tutorial ist vielleicht nicht das richtige Wort. Ich habe halt alle Auszüge in eine PDF-Datei zusammengefasst, wie man vorgehen muss, damit das endlich klappt. Eins bischen hab ich schon auch was geschrieben. :wink: Was mich persönlich noch interessieren würde ist, wie kann man eigentlich, wenn man eine Komponente entwickelt, auf andere Zugreifen. Also.. zum Beispiel: Ich habe 5 Editfelder. In jedem Edit steht als Text etwas drin. Mit einer erstellten Komponente möchte ich nun eine Listbox erzeugen, in der alle Texte der Edit´s drin stehen. In meiner Komponente, also (OI) möchte ich dann aus dieser erzeugten Listbox einen Text daraus auswählen können. Aber irgendwie komm ich da nicht drauf. Muss ich property als String? Edit? Listbox? festlegen? Irgendwie schaff ichs nicht. Muss die Listbox (Createt) werden? mhhh... :roll: |
Re: Lösung: Das leidige Problem mit der DsgnIntf bzw. Proxy.
Zitat:
![]() |
Re: Lösung: Das leidige Problem mit der DsgnIntf bzw. Proxy.
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
habe für ein früheres Projekt die D5 Komponente ALSTipDialog verwendet. Leider gelingt es mir nicht, trotz ausführlichen Lesens der Tipps hier und des Tutorial, diese für D7 entsprechend anzupassen (Trennung des Design). Hatte mich leider nie mit der Komponentenentwicklung auseinandergesetzt (was sich nun wohl rächt). :wall: Hier mal der erste Teil der Unit:
Delphi-Quellcode:
Welche Teile müssten den nun in den dsgn teil ausgelagert werden? :gruebel:
unit ALSTDlg;
interface uses {$IFDEF WIN32}Windows,{$ELSE}WinTypes, WinProcs,{$ENDIF} Messages, SysUtils, Classes, Graphics, Controls, Forms, DesignIntf, DesignEditors, Dialogs, INIFiles{$IFDEF WIN32}, Registry{$ENDIF}; type TALSShowPos = (posScreenCenter, posFormCenter); TTipLocation = (locEmbeded, {$IFDEF WIN32}locRegistry,{$ENDIF} locINIFile); TRegRoot = (CURRENT_USER,LOCAL_MACHINE,CURRENT_CONFIG); TTipDialogEditor = class(TDefaultEditor) public procedure ExecuteVerb(Index : Integer); override; function GetVerb(Index : Integer): string; override; function GetVerbCount : Integer; override; procedure Edit; override; end; TAbout = class(TPropertyEditor) public procedure Edit; override; function GetAttributes: TPropertyAttributes; override; function GetValue: string; override; end; TFileNameProperty = class (TStringProperty) public function getattributes: TPropertyattributes; override; procedure Edit; override; end; TALSTipDlg = class(TComponent) private FAbout : TAbout; FDlgCaption : string; FTipTitle : string; FTips : TStrings; FTipTitleFont : TFont; FTipFont : TFont; FRegRoot : TRegRoot; FRegKey : string; FINIFile : string; FINISection : string; FTipsLocation : TTipLocation; FPanelColor : TColor; FCRLFSubst : string; FRandomTips : boolean; FShowAtStartup: boolean; FPosition : TALSShowPos; protected {$IFDEF WIN32} function ReadFromRegistry : boolean; {$ENDIF} function ReadFromINIFile : boolean; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure SetTipValues(Value: TStrings); procedure SetTitleFont(Value: TFont); procedure SetTipFont(Value: TFont); function Execute : boolean; published property About: TAbout read FAbout write FAbout; property DlgCaption: string read FDlgCaption write FDlgCaption; property TipTitle: string read FTipTitle write FTipTitle; property Tips: TStrings read FTips write SetTipValues; property TipTitleFont: TFont read FTipTitleFont write SetTitleFont; property TipFont: TFont read FTipFont write SetTipFont; {$IFDEF WIN32} property RegistryRoot: TRegRoot read FRegRoot write FRegRoot default CURRENT_USER; property RegistryKey: string read FRegKey write FRegKey; {$ENDIF} property INIFile: string read FINIFile write FINIFile; property INISection: string read FINISection write FINISection; property TipsLocation: TTipLocation read FTipsLocation write FTipsLocation default locEmbeded; property PanelColor: TColor read FPanelColor write FPanelColor default {$IFDEF VER120}clInfoBk {$ELSE} TColor($00E1FFFF){$ENDIF}; property CRLFSubstitute : string read FCRLFSubst write FCRLFSubst; property RandomTips: boolean read FRandomTips write FRandomTips default False; property ShowAtStartup: boolean read FShowAtStartup write FShowAtStartup default True; property Position: TALSShowPos read FPosition write FPosition; end; procedure Register; implementation uses TipFrm; {$IFDEF WIN32} {$R ALSTDLG.R32} {$ELSE} {$R ALSTDLG.R16} {$ENDIF} procedure Register; begin RegisterComponents('Samples', [TALSTipDlg]); RegisterComponentEditor(TALSTipDlg, TTipDialogEditor); RegisterPropertyEditor(TypeInfo(TAbout), TALSTipDlg, 'ABOUT', TAbout); RegisterPropertyEditor(Typeinfo(string), TALSTipDlg, 'INIFile', TFileNameProperty); end; Habe 3 andere Free 'Tip of the Day' Komponenten getestet, aber leider waren diese alle nicht so funktionell und flexibel wie die ALSTipDialog. Hat die vielleicht mal jemand bereits für Delphi 7 angepasst? Oder kennt jemand eine ähnlich gute Komponente (keine jv,lmd,max)? Hänge den Sourcecode der ALSTipDialog mal dran.. Gruß mandoki |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 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