|
Antwort |
Registriert seit: 5. Jan 2005 186 Beiträge FreePascal / Lazarus |
#1
Ich bastel grad an meiner ersten Komponente. Kann man die Events und Properties auch nach eigenen Wünschen unterteilen,
oder ist man auf "Miscellaneous" angewiesen? Hier mein PublishCode:
Delphi-Quellcode:
TDA_IrcClient = class(TComponent)
published {PROPERTIES} property Versionsantwort: Tstr200max read FVersionsantwort write FVersionsantwort; property Benutzername: String read FBenutzerName write FBenutzername; property EchterName: String read FEchterName write FEchtername; property EmailAddr: String read FEmailAddr write FEmailAddr; property NickName: String read FNickname write FNickname; property AltNickName: String read FAltNick write FAltNick; property IrcAddr: String read Fircaddr write Fircaddr; property IrcPort: Integer read FIRCPort write FIRCPort; property IrcPassword: String read FIrcpassword write FIrcpassword; property PingAntwort: TManuellAuto read FPingAntwort write FPingAntwort; property AendereAltNick: TManuellAuto read FAendereAltNick write FAendereAltNick; property BeendenNachricht: Tstr200max read FBeendenNachricht write FBeendenNachricht; property Tag: Integer read FTag write FTag; {EVENTS} property BeiVerbindung: TSocketNotifyEvent read FBeiVerbindung write FBeiVerbindung; property BeiTrennung: TSocketNotifyEvent read FBeiTrennung write FBeitrennung; property BeiFehler: TSocketErrorEvent read FBeiFehler write FBeiFehler; property BeiPing: TIDPing read FBeiPing write FBeiPing; property BeiLokalerServerKick: TIDKickNachricht read FLokalerServerKickNachricht write FLokalerServerKickNachricht; property BeiHauptserverKick: TIDKickNachricht read FHauptserverKickNachricht write FHauptserverKickNachricht; property BeiCTCPAktion: TIDBeiCTCPAktion read FBeiCTCPAktion write FBeiCTCPAktion; property BeiRohDaten: TIDRohDaten read FBeiRohDaten write FBeiRohDaten; property BeiHauptserverChannelNachricht: TIDChannelNachricht read FBeiHauptserverChannelNachricht write FBeiHauptserverChannelNachricht; property BeiLokalerServerChannelNachricht: TIDChannelNachricht read FBeiLokaleServerChannelNachricht write FBeiLokaleServerChannelNachricht; property BeiHauptserverNotizNachricht: TIDBeiNotizOeffentlicherNachricht read FBeiHauptserverNotizNachricht write FBeiHauptserverNotizNachricht; property BeiLokalerServerNotizNachricht: TIDBeiNotizOeffentlicherNachricht read FBeiLokalerServerNotizNachricht write FBeiLokalerServerNotizNachricht; property BeiPrivaterNachricht: TIDPrivateNachricht read FBeiPrivaterNachricht write FBeiPrivaterNachricht; property BeiNotizPrivaterNachricht: TIDBeiNotizPrivaterNachricht read FBeiNotizPrivaterNachricht write FBeiNotizPrivaterNachricht; property BeiNickAenderung: TIDBeiNickAenderung read FBeiNickAenderung write FBeiNickAenderung; property BeiBetretenNachricht: TIDBeiBetretenNachricht read FBeiBetretenNachricht write FBeiBetretenNachricht; property BeiVerlassenNachricht: TIDBeiVerlassenNachricht read FBeiVerlassenNachricht write FBeiVerlassenNachricht; property BeiBeendenNachricht: TIDBeiBeendenNachricht read FBeiBeendenNachricht write FBeiBeendenNachricht; property BeiDccEmpfang: TDccEmpfang read FDccEmpfang write FDccEmpfang; property BeiDccAkzeptierung: TDccFortsetzen read FDccAccept write FDccAccept; property BeiDccFortsetzen: TDccFortsetzen read FDccFortsetzen write FDccFortsetzen; property BeiDccChat: TDccChat read FDccChat write FDccChat; property BeiVersionsAnfrage: TIDBeiVersionsAnfrage read FBeiVersionsAnfrage write FBeiVersionsAnfrage; property BeiZeitAnfrage: TIDBeiZeitAnfrage read FBeiZeitAnfrage write FBeiZeitAnfrage; property BeiTopic: TIDChannelTopic read FBeiTopic write FBeiTopic; property BeiNamen: TIDChannelNamen read FBeiNamen write FBeiNamen; property BeiNamenListe: TIDEndeChannelNamen read FBeiNamenListe write FBeiNamenListe; property BeiNickInBenutzung: TIDNicknameInBenutzung read FBeiNicknameInBenutzung write FBeiNicknameInBenutzung; property BeiUndefinierteNummern: TIDUndefinierteNummern read FBeiUndefinierteNummern write FBeiUndefinierteNummern; property BeiUnbekannterCTCPAntwort: TIDBeiUnbekannterCTCPAntwort read FBeiUnbekannterCTCPAntwort write FBeiUnbekannterCTCPAntwort; property BeiHauptserverTopicNachricht: TIDTopicNachricht read FBeiHauptserverTopicNachricht write FBeiHauptserverTopicNachricht; property BeiLocalerServerTopicNachricht: TIDTopicNachricht read FBeiLokalerServerTopicNachricht write FBeiLokalerServerTopicNachricht; |
Zitat |
Registriert seit: 21. Aug 2003 4.856 Beiträge |
#2
Irgendwie muss das gehen - einige kommerzielle Komponenten die ich kenne tun das ja auch - wie wüsste ich allerdings auch gerne
|
Zitat |
Registriert seit: 10. Jun 2004 Ort: Garching (TUM) 4.579 Beiträge |
#3
Ich weis es
Über die (dokumentierte, nur schlecht auffindbar) Funktion RegisterPropertyInCategory(); // Nein, F1 bringt nix ^^ kann man eine property in eine Kategorie bringen Zur Dokumentation: In der Hilfe nach "Eigenschaftskategorien" suchen Und nächstes mal suchen ... Google spuckt massenhaft Treffer zu obiger funktion aus |
Zitat |
Registriert seit: 12. Jun 2002 3.483 Beiträge Delphi 10.1 Berlin Professional |
#4
Zitat von Amnon82:
property BeiLocalerServerTopicNachricht: TIDTopicNachricht read FBeiLokalerServerTopicNachricht write FBeiLokalerServerTopicNachricht;
Andreas aka AHUser aka jbg
Mein Blog - kombiniert mit all meinen Delphi Tools |
Zitat |
Registriert seit: 10. Jun 2004 Ort: Garching (TUM) 4.579 Beiträge |
#5
Weil er (entgegen den normalen Standards) in Deutsch programmiert ... nichts für ungut, @Annon, es ist natürlich deine Sache, die Bezeichner deutsch zu machen, allerdings empfehle ich dir, solltest mit anderen zusammenarbeiten oder so, den Quellcode komplett und konsistent in Englisch zu halten
|
Zitat |
Registriert seit: 5. Jan 2005 186 Beiträge FreePascal / Lazarus |
#6
Ich habs nun ins Englische übersetzt. Danke noch mal. Werds gleich ausprobieren.
|
Zitat |
Registriert seit: 5. Jan 2005 186 Beiträge FreePascal / Lazarus |
#7
Ich hab mir nochmal diesen Thread durchgelesen.
Für "RegisterPropertyInCategory" braucht man die DesignIntf.dcu [Fatal Error] DA_IrcClient.pas(12): F1026 File not found: 'DesignIntf.dcu' Hier nochmal der Part mit der Registrierung in englischer Form:
Delphi-Quellcode:
Ich würde gerne die Properties ordnen. Zum Beispiel alles was mit DCC zu tun hat in eine Kategorie 'DCC'. Muss man eine CustomCategory definieren oder reicht zum Beispiel:
{******************************************************************}
{ } { Delhiarea-IRC-Components 0.1.2 by Amnon82 (C)2006 AMSOFT } { } {******************************************************************} unit DA_IrcClient; interface uses Windows, SysUtils, Classes, ScktComp, WinSock, DA_CutBreak{, DesignIntf, DesignEditors}; type TDA_IrcClient = class; Tstr200max = String[200]; TManualAuto = (Manual, Auto); TIDOnUnknownCTCPAnswer = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; CTCPOrder: string; CTCPRequest: string; var CTCPAnswer: string; RawData: string) of object; TIDOnCTCPAction = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; MSGToSend: string; Action: string; RawData: string) of object; TIDPing = procedure(Sender: TDA_IrcClient; AutoAnswer: string; RawData: string) of object; TDccGet = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; FileName, SenderIPAddresse: string; Port: integer; BytesToGet: Longint) of object; TDccResume = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; FileName: string; Port: integer; BytesToGet: Longint) of object; TDccChat = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; SenderIPAddress: string; Port: integer) of object; TIDRawData = procedure(Sender: TDA_IrcClient; RawData: string) of object; TIDKickMSG = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; Channel: string; KickMSG: string; RawData: string) of object; TIDTopicMSG = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; Channel: string; MSG: string; RawData: string) of object; TIDChannelMSG = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; Channel: string; MSG: string; RawData: string) of object; TIDPrivateMSG = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; Priv: string; MSG: string; RawData: string) of object; TIDOnNoticePrivateMSG = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; Notice: string; MSG: string; RawData: string) of object; TIDOnNoticePublicMSG = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; Notice: string; MSG: string; RawData: string) of object; TIDOnJoinMSG = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; Channel: string; RawData: string) of object; TIDOnPartMSG = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; Channel: string; RawData: string) of object; TIDOnCloseMSG = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; CloseMSG: string; RawData: string) of object; TIDOnNickChange = procedure(Sender: TDA_IrcClient; OldLongNick: string; OldShortNick: string; NewNick: string; RawData: string) of object; TIDOnVersionRequest = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; RawData: string) of object; TIDOnTimeRequest = procedure(Sender: TDA_IrcClient; LongNick: string; Nick: string; Var TimeAnswer: string; RawData: string) of object; TIDChannelNames = procedure(Sender: TDA_IrcClient; LongNick: string; chan: string; NickName: string; RawData: string) of object; TIDChannelNamesEnd = procedure(Sender: TDA_IrcClient; Channel: string; RawData: string) of object; TIDChannelTopic = procedure(Sender: TDA_IrcClient; Channel: string; Topic: string; RawData: string) of object; TIDNickInUse = procedure(Sender: TDA_IrcClient; NickInUse: string; RawData: string) of object; TIDUnknownNumbers = procedure(Sender: TDA_IrcClient; Number: string; RawData: string) of object; // type TSocketNotifyEvent = procedure (Sender: TObject; Socket: TCustomWinSocket) of object; TDA_IrcClient = class(TComponent) Private { Private declarations } CutBreak1: TDA_CutBreak; CutBreak2: TDA_CutBreak; tmplist: TStringList; destroyb: Boolean; procedure TriggerOnDataAvailable(Sender: TObject; Socket: TCustomWinSocket); procedure TriggerOnDataSend(Sender: TObject; Socket: TCustomWinSocket); procedure TriggerOnConnection(Sender: TObject; Socket: TCustomWinSocket); procedure TriggerOnDisconnection(Sender: TObject; Socket: TCustomWinSocket); procedure TriggerOnErrorMSG(Sender: TObject; Socket: TCustomWinSocket; FehlerEvent: TErrorEvent; var FehlerCode: Integer); procedure WorkOnMSG(Sender: TDA_IrcClient; MSGList: Tstringlist; RawData: String); procedure WorkOnCTCPMSG(Sender: TDA_IrcClient; LongNick : String; Nick: String; Source: String; MSGList: TStringList; RawData: String); procedure WorkOnUndefinierteMSG(Sender: TDA_IrcClient; numerisch: Word; MSGList : Tstringlist; RawData: String); function isInteger(szString: String):Boolean; function CopyFrom(const S: String; const Start: Integer): String; function CopyAt(const S: String; const SearchFor: String; const Start: Integer): String; function CopyLeft(const S: String; const Count: Integer): String; protected { Protected declarations } FInBuf: String; FUserName: String; FRealName: String; FIRCHost: String; FIRCPort: Integer; FEmail: String; FNickname: String; FAltNick: String; FIrcPassword: String; FPingAnswer: TManualAuto; FChangeAltNick: TManualAuto; FOnPing: TIDPing; FOnCTCPAction: TIDOnCTCPAction; FOnRawData: TIDRawData; FOnMainServerChannelMSG: TIDChannelMSG; FOnLocalServerChannelMSG: TIDChannelMSG; FOnMainServerTopicMSG: TIDTopicMSG; FOnLocalServerTopicMSG: TIDTopicMSG; FOnMainServerNoticeMSG: TIDOnNoticePublicMSG; FOnLocalServerNoticeMSG: TIDOnNoticePublicMSG; FOnPrivateMSG: TIDPrivateMSG; FOnNoticePrivateMSG: TIDOnNoticePrivateMSG; FOnJoinMSG: TIDOnJoinMSG; FOnPartMSG: TIDOnPartMSG; FOnCloseMSG: TIDOnCloseMSG; FMainServerKickMSG: TIDKickMSG; FLocalServerKickMSG: TIDKickMSG; FOnNickChange: TIDOnNickChange; FOnVersionRequest: TIDOnVersionRequest; FOnTimeRequest: TIDOnTimeRequest; FDccGet: TDccGet; FDccAccept: TDccResume; FDccResume: TDccResume; FDccChat: TDccChat; FOnUnknownCTCPAnswer: TIDOnUnknownCTCPAnswer; FOnNames: TIDChannelNames; FOnNamesList: TIDChannelNamesEnd; FOnTopic: TIDChannelTopic; FOnNickInUse: TIDNickInUse; FOnUnknownNumbers: TIDUnknownNumbers; FCloseMSG: Tstr200max; FVersionAnswer: Tstr200max; FTag: integer; FOnDataAvailable: TSocketNotifyEvent; FOnDataSend: TSocketNotifyEvent; FOnConnection: TSocketNotifyEvent; FOnDisconnection: TSocketNotifyEvent; FOnError: TSocketErrorEvent; public { Public declarations } ConnectIt: TClientSocket; constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Close; procedure Connect; procedure SelfInvisible; procedure SelfVisible; procedure KickUser(Channel, NickName, Grund: String); procedure DeBanUser(Channel, UserHostMask: String); procedure BanUser(Channel, UserHostMask: String); procedure DeVoiceUsers(Channel, UserNickname: String); procedure VoiceUsers(Channel, UserNickname: String); procedure DeopUsers(Channel, UserNickname: String); procedure OpUsers(Channel, UserNickname: String); procedure ChannelMode(Channel, Mode, Param: String); procedure UserMode(Mode: String); procedure ChangeNick(Nickname: String); procedure Join(Channel: String); procedure Part(Channel: String); procedure SendPrivateMSG(Nickname, MSG: String); procedure SendRawData(ZuSenddeMSG: String); function LongIPtoPointIP(value: LongWord): String; function PointIPtoLongIP(str: PChar): LongWord; function SendChannelMSG(Chan, MSG: String): Boolean; published { Published declarations } property VersionAnswer: Tstr200max read FVersionAnswer write FVersionAnswer; property UserName: String read FUserName write FUserName; property RealName: String read FRealName write FRealName; property Email: String read FEmail write FEmail; property NickName: String read FNickname write FNickname; property AltNickName: String read FAltNick write FAltNick; property IRCHost: String read FIRCHost write FIRCHost; property IrcPort: Integer read FIRCPort write FIRCPort; property IrcPassword: String read FIrcpassword write FIrcpassword; property PingAnswer: TManualAuto read FPingAnswer write FPingAnswer; property ChangeAltNick: TManualAuto read FChangeAltNick write FChangeAltNick; property CloseMSG: Tstr200max read FCloseMSG write FCloseMSG; property Tag: Integer read FTag write FTag; property OnConnection: TSocketNotifyEvent read FOnConnection write FOnConnection; property OnDisconnection : TSocketNotifyEvent read FOnDisconnection write FOnDisconnection ; property OnError: TSocketErrorEvent read FOnError write FOnError; property OnPing: TIDPing read FOnPing write FOnPing; property OnLocalServerKick: TIDKickMSG read FLocalServerKickMSG write FLocalServerKickMSG; property OnMainServerKick: TIDKickMSG read FMainServerKickMSG write FMainServerKickMSG; property OnCTCPAction: TIDOnCTCPAction read FOnCTCPAction write FOnCTCPAction; property OnRawData: TIDRawData read FOnRawData write FOnRawData; property OnMainServerChannelMSG: TIDChannelMSG read FOnMainServerChannelMSG write FOnMainServerChannelMSG; property OnLocalServerChannelMSG: TIDChannelMSG read FOnLocalServerChannelMSG write FOnLocalServerChannelMSG; property OnMainServerNoticeMSG: TIDOnNoticePublicMSG read FOnMainServerNoticeMSG write FOnMainServerNoticeMSG; property OnLocalServerNoticeMSG: TIDOnNoticePublicMSG read FOnLocalServerNoticeMSG write FOnLocalServerNoticeMSG; property OnPrivateMSG: TIDPrivateMSG read FOnPrivateMSG write FOnPrivateMSG; property OnNoticePrivateMSG: TIDOnNoticePrivateMSG read FOnNoticePrivateMSG write FOnNoticePrivateMSG; property OnNickChange: TIDOnNickChange read FOnNickChange write FOnNickChange; property OnJoinMSG: TIDOnJoinMSG read FOnJoinMSG write FOnJoinMSG; property OnPartMSG: TIDOnPartMSG read FOnPartMSG write FOnPartMSG; property OnCloseMSG: TIDOnCloseMSG read FOnCloseMSG write FOnCloseMSG; property OnDccGet: TDccGet read FDccGet write FDccGet; property OnDccAccept: TDccResume read FDccAccept write FDccAccept; property OnDccResume: TDccResume read FDccResume write FDccResume; property OnDccChat: TDccChat read FDccChat write FDccChat; property OnVersionRequest: TIDOnVersionRequest read FOnVersionRequest write FOnVersionRequest; property OnTimeRequest: TIDOnTimeRequest read FOnTimeRequest write FOnTimeRequest; property OnTopic: TIDChannelTopic read FOnTopic write FOnTopic; property OnNames: TIDChannelNames read FOnNames write FOnNames; property OnNamesList: TIDChannelNamesEnd read FOnNamesList write FOnNamesList; property OnNickInUse: TIDNickInUse read FOnNickInUse write FOnNickInUse; property OnUnknownNumbers: TIDUnknownNumbers read FOnUnknownNumbers write FOnUnknownNumbers; property OnUnknownCTCPAnswer: TIDOnUnknownCTCPAnswer read FOnUnknownCTCPAnswer write FOnUnknownCTCPAnswer; property OnMainServerTopicMSG: TIDTopicMSG read FOnMainServerTopicMSG write FOnMainServerTopicMSG; property OnLocalerServerTopicMSG: TIDTopicMSG read FOnLocalServerTopicMSG write FOnLocalServerTopicMSG; end; procedure Register; const CR = #13; LF = #10; CRLF = #13#10; Version = 'TDA_IrcClient 0.1.2 - (C) 2006 by AMSOFT and DELPHIAREA'; var CuttedMSG:String; implementation // Komponente registrieren procedure Register; begin RegisterComponents('Delphiarea', [TDA_IrcClient]); //Mal ein Beispiel, was noch nicht klappt: //RegisterPropertyInCategory('DCC', TDA_IrcClient, 'OnDccAccept'); end; RegisterPropertyInCategory('DCC', TDA_IrcClient, 'OnDccAccept'); ... hoffe es klappt trotz D9PE ... Im Anhang ein Screenshot mit allem was ich unter "Design" gefunden hab ...
Delphi-Quellcode:
designide.dcp bringt auch nichts:
package DA_IRCComponents;
{$R *.res} {$ALIGN 8} {$ASSERTIONS ON} {$BOOLEVAL OFF} {$DEBUGINFO ON} {$EXTENDEDSYNTAX ON} {$IMPORTEDDATA ON} {$IOCHECKS ON} {$LOCALSYMBOLS ON} {$LONGSTRINGS ON} {$OPENSTRINGS ON} {$OPTIMIZATION ON} {$OVERFLOWCHECKS OFF} {$RANGECHECKS OFF} {$REFERENCEINFO ON} {$SAFEDIVIDE OFF} {$STACKFRAMES OFF} {$TYPEDADDRESS OFF} {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} {$IMAGEBASE $400000} {$DESCRIPTION 'AMSOFT|DELPHIAREA - IRC Components 0.1.2 - Alpha build'} {$IMPLICITBUILD OFF} requires rtl, vcl, designide; contains DA_IrcClient in 'DA_IrcClient.pas', DA_CutBreak in 'DA_CutBreak.pas'; end.
Delphi-Quellcode:
[Error] DA_IrcClient.pas(1257): E2003 Undeclared identifier: 'RegisterPropertyInCategory'
[Fatal Error] DA_IRCComponents.dpk(35): F2063 Could not compile used unit 'DA_IrcClient.pas' |
Zitat |
Ansicht |
Linear-Darstellung |
Zur Hybrid-Darstellung wechseln |
Zur Baum-Darstellung wechseln |
ForumregelnEs 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
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
LinkBack URL |
About LinkBacks |