Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Package erstellen und installieren... (https://www.delphipraxis.net/69781-package-erstellen-und-installieren.html)

lordludwig 19. Mai 2006 20:44


Package erstellen und installieren...
 
Hallo,

ich will mir aus einer .pas datei ein package machen...

Ich mache dazu folgende schritte:

- Ich gehe in Delphi 2005
- Datei -> Neu -> Package - Delphi für Win32
- In der Projektverwaltung rechtsklick aufs Package -> Hinzufügen
- auf Durchsuchen... und meine .pas auswählen (Jetzt ist sie in 'Contains')
- alles abspeichern und compilieren
- rechtsklick aufs Package -> Installieren -> Meldung für erfolgreich

Wenn ich jetzt ein Projekt öffne ist das Package aber nicht in der Tool-Palette unter Samples zu finden.

WIESO, was mache ich falsch???

Habs genau so gemacht wie hier beschrieben (will auch die sendkeys benutzten): Forum-Link

DANKE AUF JEDEN FALL SCHONMAL!!!!! :-D :-D :-D :-D :-D

mkinzler 19. Mai 2006 20:46

Re: Package erstellen und installieren...
 
Wie sieht deine Register-Prozedur aus?

lordludwig 19. Mai 2006 20:47

Re: Package erstellen und installieren...
 
hmm sry, ich bin noch noob und weis nicht so ganz was du meinst :(

mkinzler 19. Mai 2006 20:51

Re: Package erstellen und installieren...
 
In der Prozedur Register registrierst du die Komponeneten in der IDE.

Delphi-Quellcode:
procedure Register;
begin
    RegisterComponents('Samples', [ TKompo1, TKompo2, ... ]);
end;

lordludwig 19. Mai 2006 20:53

Re: Package erstellen und installieren...
 
weis zwar noch ned genau wie und wo das jetzt rein soll aber ich werds mal versuchen, wenns ned klappt meld ich mich nochma :wink:

danke auf jeden fall

lordludwig 19. Mai 2006 21:02

Re: Package erstellen und installieren...
 
bin wohl irgendwie zu blöd oder so... :wall: :wall: :wall:

aber ich schnall ned wo der codeschnippsel rein muss sry... :cry: :cry: :cry:

in der sndkey32.pas will ers ned und im quellcode vom package auch ned...

sagt mir am besten wo und an welche stelle das muss sonst verzweifel ich hier noch(ich würd hier ned posten wenn ich ned schon seit stunden alles erdenkliche probieren würde)

ich-> :coder2:

mkinzler 19. Mai 2006 21:06

Re: Package erstellen und installieren...
 
In die sndkey32.pas oder einer eigenen Datei (z.B. sndkey32reg.pas).

Kopf in Interface-Abschnitt und gesammte Prozedur in den Implementation-Teil.

Was für ein Fehler bringt Delphi?

lordludwig 19. Mai 2006 21:12

Re: Package erstellen und installieren...
 
also ich hab jetzt
Delphi-Quellcode:
procedure Register12;
in interface

und
Delphi-Quellcode:
procedure Register12;
begin
    RegisterComponents('Samples', [ Sendkeys ]);
end;
in implementation

fehler:
Delphi-Quellcode:
[Fehler] sndkey32.pas(132): E2003 Undefinierter Bezeichner: 'RegisterComponents'
[Fehler] sndkey32.pas(132): E2035 Nicht genügend wirkliche Parameter
[Fataler Fehler] Package1.dpk(31): F2063 Verwendete Unit '..\..\Desktop\sndkey32.pas' kann nicht compiliert werden

mkinzler 19. Mai 2006 21:16

Re: Package erstellen und installieren...
 
Di Prozedur RegisterComponents befindet sich in Unit Classes ist diese eingebunden?

Es muß Register heißen nicht Register12 !

lordludwig 19. Mai 2006 21:19

Re: Package erstellen und installieren...
 
so, heißt register und Classes is jetzt auch eingebunden...

Delphi-Quellcode:
[Fehler] sndkey32.pas(132): E2035 Nicht genügend wirkliche Parameter
[Fataler Fehler] Package1.dpk(31): F2063 Verwendete Unit '..\..\Desktop\sndkey32.pas' kann nicht compiliert werden

mkinzler 19. Mai 2006 21:19

Re: Package erstellen und installieren...
 
fast steht in Zeile 132?

lordludwig 19. Mai 2006 21:22

Re: Package erstellen und installieren...
 
Delphi-Quellcode:
    RegisterComponents('Samples', [ Sendkeys ]);

mkinzler 19. Mai 2006 21:24

Re: Package erstellen und installieren...
 
Stell mal bitte die Unit ein.

lordludwig 19. Mai 2006 21:25

Re: Package erstellen und installieren...
 
Delphi-Quellcode:
unit sndkey32;

interface

Uses SysUtils, Windows, Messages, Classes;

Function SendKeys(SendKeysString : PChar; Wait : Boolean) : Boolean;
function AppActivate(WindowName : PChar) : boolean;
procedure Register;
{Buffer for working with PChar's}

const
  WorkBufLen = 40;
var
  WorkBuf : array[0..WorkBufLen] of Char;
*schon jetzt dafür schäm*

mkinzler 19. Mai 2006 21:28

Re: Package erstellen und installieren...
 
SendKeys ist ja eine Funktion! In der IDE kannst du aber nur Komponenten registrieren. In deinem Fall ist das nicht nötig: Entferne Regiser wieder. Zum verwenden mußt du nur die Unit in die Uses des verwendenen Programms einfügen und kannst dann die Funktion verwenden.

Hansa 19. Mai 2006 21:30

Re: Package erstellen und installieren...
 
Ich befürchte, der Hund liegt viel tiefer begraben. 8) Muß das nicht eine Class sein ? :gruebel: Das hier :

Delphi-Quellcode:
Sendkeys(text : string)
ist nämlich nur eine Prozedur. Das muß IMHO aber zu einee published Methode der Class gemacht werden. So wirst Du die Prozedur womöglich zu Tode registrieren. :mrgreen:

lordludwig 19. Mai 2006 21:37

Re: Package erstellen und installieren...
 
zuerst das
Zitat:

Zum verwenden mußt du nur die Unit in die Uses des verwendenen Programms einfügen und kannst dann die Funktion verwenden.
und dann auch noch das
Zitat:

Das muß IMHO aber zu einee published Methode der Class gemacht werden. So wirst Du die Prozedur womöglich zu Tode registrieren. Mr. Green
*auf der stelle tot umfall*

also alles was nix mit procedure Register; zu tun hat is ned von mir verbrochen sondern das hab ich mir von der instalations cd gezogen.

Also ich habe jetzt procedure Register; wieder oben raus gelöscht... wo soll es jetzt hin??? im moment hab ich noch den gleich fehler

mkinzler 19. Mai 2006 21:38

Re: Package erstellen und installieren...
 
Welchen Fehler?

lordludwig 19. Mai 2006 21:39

Re: Package erstellen und installieren...
 
der da:

Zitat:

[Fehler] sndkey32.pas(132): E2035 Nicht genügend wirkliche Parameter

mkinzler 19. Mai 2006 21:40

Re: Package erstellen und installieren...
 
Vorher stand dort ja die Register-Prozedur. Wenn du diese gelöscht hast, was steht dann jetzt dort?

lordludwig 19. Mai 2006 21:41

Re: Package erstellen und installieren...
 
hmm nichts...

Delphi-Quellcode:
unit sndkey32;

interface

Uses SysUtils, Windows, Messages, Classes;

Function SendKeys(SendKeysString : PChar; Wait : Boolean) : Boolean;
function AppActivate(WindowName : PChar) : boolean;
//procedure Register;
{Buffer for working with PChar's}

const
  WorkBufLen = 40;
var
  WorkBuf : array[0..WorkBufLen] of Char;

mkinzler 19. Mai 2006 21:44

Re: Package erstellen und installieren...
 
Ist das die ganze Unit?

lordludwig 19. Mai 2006 21:46

Re: Package erstellen und installieren...
 
ich denke schon, so geht es zumindest weiter...

Delphi-Quellcode:
unit sndkey32;

interface

Uses SysUtils, Windows, Messages, Classes;

Function SendKeys(SendKeysString : PChar; Wait : Boolean) : Boolean;
function AppActivate(WindowName : PChar) : boolean;
//procedure Register;
{Buffer for working with PChar's}

const
  WorkBufLen = 40;
var
  WorkBuf : array[0..WorkBufLen] of Char;

implementation
type
  THKeys = array[0..pred(MaxLongInt)] of byte;
var
  AllocationSize : integer;

(*
Converts a string of characters and key names to keyboard events and
passes them to Windows.

Example syntax:

SendKeys('abc123{left}{left}{left}def{end}456{left 6}ghi{end}789', True);

*)


procedure Register;
begin
    RegisterComponents('Samples', [ Sendkeys ]);
end;

Function SendKeys(SendKeysString : PChar; Wait : Boolean) : Boolean;
type
  WBytes = array[0..pred(SizeOf(Word))] of Byte;

  TSendKey = record
    Name : ShortString;
    VKey : Byte;
  end;
.
.
.
:oops: :oops: :oops: :pale: :pale: :pale:

mkinzler 19. Mai 2006 21:58

Re: Package erstellen und installieren...
 
Entferne die Register.Prozedur komplett.

lordludwig 19. Mai 2006 22:07

Re: Package erstellen und installieren...
 
register.prozedur????

merkiere für mich idiot am besten den teil der raus muss

mkinzler 19. Mai 2006 22:12

Re: Package erstellen und installieren...
 
Alles was du vorhin unter meiner Anleitung eingefügt hast.

lordludwig 19. Mai 2006 22:16

Re: Package erstellen und installieren...
 
etwa dann so???

Delphi-Quellcode:
unit sndkey32;

interface

Uses SysUtils, Windows, Messages, Classes;

Function SendKeys(SendKeysString : PChar; Wait : Boolean) : Boolean;
function AppActivate(WindowName : PChar) : boolean;
//procedure Register;
{Buffer for working with PChar's}

const
  WorkBufLen = 40;
var
  WorkBuf : array[0..WorkBufLen] of Char;

implementation
type
  THKeys = array[0..pred(MaxLongInt)] of byte;
var
  AllocationSize : integer;

(*
Converts a string of characters and key names to keyboard events and
passes them to Windows.

Example syntax:

SendKeys('abc123{left}{left}{left}def{end}456{left 6}ghi{end}789', True);

*)


//procedure Register;
//begin
//    RegisterComponents('Samples', [ Sendkeys ]);
//end;
dann gibt es wieder keinen punkt unter Saples...

irgendwie muss es doch möglich sein... soll ich das projekt mal hochladen und einer schaut sich das an???

mkinzler 19. Mai 2006 22:19

Re: Package erstellen und installieren...
 
Zitat:

dann gibt es wieder keinen punkt unter Saples...
Wie gesagt, kann man nur Komponenten in der IDE registrieren. Prozeduren/Funktionen nicht. Diese kann man nach Einbinden der Unit, in der sie deklariert sind einfach verwenden.
Du könntest natürlich diese Prozedur zu Methode einer (Komponenten-)Klasse machen und diese dann registrieren.

lordludwig 19. Mai 2006 22:25

Re: Package erstellen und installieren...
 
ok, danke das funktioniert nun :-D :-D :-D :-D

Verstehe nur noch nicht wie dann das hier gemeint war...
Link

Danke an alle, die geholfen haben...

Jetzt erst mal n bier... :cheers:

:dp: :dp: :dp:

mkinzler 19. Mai 2006 22:33

Re: Package erstellen und installieren...
 
Ich glaube, du hast nur das falsche Package von torry heruntergeladen

Dieses hier und dieses verwenden Komponenten.

lordludwig 19. Mai 2006 22:51

Re: Package erstellen und installieren...
 
glaub ich auch :oops:

danke nochma


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 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