AGB  ·  Datenschutz  ·  Impressum  







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

Routine mit Namen aufrufen

Ein Thema von Sigi55 · begonnen am 20. Feb 2015 · letzter Beitrag vom 25. Feb 2015
Antwort Antwort
Sigi55

Registriert seit: 3. Jan 2010
36 Beiträge
 
Delphi 5 Professional
 
#1

AW: Routine mit Namen aufrufen

  Alt 25. Feb 2015, 16:46
Moin,

mir sagt das Alles garnichts und wird es auch wohl nie ...

Delphi-Quellcode:
  procedure RegisterCall (const registeredName : String; m : pMethod); virtual;
                                                             ^^^^^^^
// Mag er nicht, Undeclared Indentifier ???

Ich kann mir da leider nicht ansatzweise weiterhelfen, da hört's
echt auf.
Ich bin mehr so der Datenschauffler im kfm. Bereich, so von einer DB
in die andere, Plausibilitätsprüfungen, etc.

Aber das ist nicht meine Welt ... sry.

@DaddyH, das war es leider nicht

Gruß

Sigi
  Mit Zitat antworten Zitat
hanvas

Registriert seit: 28. Okt 2010
177 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Routine mit Namen aufrufen

  Alt 25. Feb 2015, 17:28
Moin,

mir sagt das Alles garnichts und wird es auch wohl nie ...

Delphi-Quellcode:
  procedure RegisterCall (const registeredName : String; m : pMethod); virtual;
                                                             ^^^^^^^
// Mag er nicht, Undeclared Indentifier ???

@DaddyH, das war es leider nicht

Gruß

Sigi
Doch natürlich war es das! Aber eigentlich sollte pMethod in der Unit system ohnehin deklariert sein, möglicherweise ist das von Version zu Version unterschiedlich.

Wo hast Du das

  type pMethod = TMethod; denn hingeschrieben. Dir Typdeklaration gehört vor die erste Verwendung also

Delphi-Quellcode:

unit jRegister;
interface
uses classes;

type pMethod = TMethod;

     TJobRegister = class(TComponent)
 .....
cu Ha-Jö
  Mit Zitat antworten Zitat
Sigi55

Registriert seit: 3. Jan 2010
36 Beiträge
 
Delphi 5 Professional
 
#3

AW: Routine mit Namen aufrufen

  Alt 25. Feb 2015, 18:43
Hi,

Zitat:
... denn hingeschrieben. Dir Typdeklaration gehört vor die erste Verwendung also
Delphi-Quellcode:

unit jRegister;
interface
uses classes;

type pMethod = TMethod;

     TJobRegister = class(TComponent)
 .....
Hatte ich auch so gemacht, nur hatte ich "type pMethod = ^TMethod" wie DaddyH
es geschrieben hatte ...

Jetzt, ohne "^" ist es OK, nur eines noch ..

Delphi-Quellcode:
function jobRegister : TJobRegister;
begin
 if not Assigned(reg) then
    reg := TJobRegister.Create(Application);
 result := reg; // ^^^^^^^^^^^
end;
Fehler: Application? Undeclared Indentifier ???

Das ist jetzt aber der Letzte ...

Und nochmal für Blö..., wo genau an welcher Stelle soll das
"FormCreate" gestrichen werden ??

Danke

Sigi
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Routine mit Namen aufrufen

  Alt 25. Feb 2015, 19:19
Fehler: Application? Undeclared Indentifier ???
[F1] kennst du aber?

Delphi-Referenz durchsuchenApplication -> http://docwiki.embarcadero.com/Libra...ms.Application
In der Hilfe steht, in welcher Unit etwas steht.

Aber man muß hier nicht Application verwenden, denn dem Delphi-Referenz durchsuchenTComponent.Create gibt man einen Owner mit, also den, welcher sich um das Freigeben kümmert.
Meistens nimmt man die Form, aber es kann jeder TComponent-Nachfahre sein, oder wenn man sich definitiv immer selber um die Freigabe kümmert, dann kann man auch nil nehmen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Sigi55

Registriert seit: 3. Jan 2010
36 Beiträge
 
Delphi 5 Professional
 
#5

AW: Routine mit Namen aufrufen

  Alt 25. Feb 2015, 19:41
Fehler: Application? Undeclared Indentifier ???
[F1] kennst du aber?
Sorry, ja klaro, bin ein wenig vernagelt ..

Also, ich hab jetzt:

Delphi-Quellcode:
unit jRegister;

interface

uses classes, forms;
Jetzt sind die Fehler wech ... aber beim Starten bekomm ich:

Delphi-Quellcode:
Destructor TJobRegister.Destroy;
var i : Integer;
    p : pMethod;
begin
 for i := 0 to FRegister.Count-1 do
  begin
    p := pMethod(FRegister.Objects[i]); //?? invalid typecast ??
    FreeMem(p);
  end;
 inherited Destroy;
end;
Für mich ist das ne echte Blackbox ...

cu

Sigi

P.S.: Schreibt ihr solche Sachen wie das Beispiel von HaJö
einfach so "ins Blaue" runter ? Wenn ja, erstaunen
Oder wird das in der IDE auch mal getestet ??
  Mit Zitat antworten Zitat
hanvas

Registriert seit: 28. Okt 2010
177 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Routine mit Namen aufrufen

  Alt 25. Feb 2015, 19:37
Zitat:

Hatte ich auch so gemacht, nur hatte ich "type pMethod = ^TMethod" wie DaddyH
es geschrieben hatte
Es gehört sich mit ^, das Fehlen war Prellen meiner Tastatur.


Delphi-Quellcode:
function jobRegister : TJobRegister;
begin
 if not Assigned(reg) then
    reg := TJobRegister.Create(Application);
 result := reg; // ^^^^^^^^^^^
end;
Zitat:

Fehler: Application? Undeclared Indentifier ???
Du musst die Unit Forms einbinden wenn Du Application verwenden willst.

Zitat:

Und nochmal für Blö..., wo genau an welcher Stelle soll das
"FormCreate" gestrichen werden ??
Mein ursprüngliches Posting bestand aus einer Unit jRegister und einer in der ein Formular zu Testzwecken verwendet wurde. In der Unit der ich das Formular zum Testen hatte, hatte ich auch "Quickn Dirty" enen Aufruf/Implementierung von FormCreate der nicht reingehört bzw nicht mehr notwendig ist. Wenn Du dieses Testformular nicht nachbaust und nur die andere Unit verwendest dann gibt es kein auch kein FormCreate.

Entschuldige die Fehler die beim Copy / Paste entstanden sind (bzw. das Fehlen von PMethod ist bei meinem Delphi kein Fehler)

cu Ha-Joe
  Mit Zitat antworten Zitat
Sigi55

Registriert seit: 3. Jan 2010
36 Beiträge
 
Delphi 5 Professional
 
#7

AW: Routine mit Namen aufrufen

  Alt 25. Feb 2015, 19:47
Wahnsinn !!

jetzt hab ich "pMethod = ^TMethod;" den ^ noch davor gesetzt
und nun geht's.

Delphi-Quellcode:
type pMethod = ^TMethod;
    TJobRegister = class(TComponent)
Hatte wohl die Reihenfolge verdreht, na ja Blackbox
ich werd jetzt erstmal testen, testen.

Danke euch allen !!

Gruß

Sigi
  Mit Zitat antworten Zitat
Sigi55

Registriert seit: 3. Jan 2010
36 Beiträge
 
Delphi 5 Professional
 
#8

AW: Routine mit Namen aufrufen

  Alt 25. Feb 2015, 19:59
Hmm,

zu früh gefreut , keine Fehler beim compilieren,
Button da, aber nix, aber auch gar nix passiert ???

Wenn ich das mit meinem Viertelwissen so peile, sollte
da eigentlich ne Messagebox kommen, oder ??

Gruß

Sigi
  Mit Zitat antworten Zitat
hanvas

Registriert seit: 28. Okt 2010
177 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Routine mit Namen aufrufen

  Alt 25. Feb 2015, 19:58
Zitat:

Jetzt, ohne "^" ist es OK, nur eines noch ..

Delphi-Quellcode:
function jobRegister : TJobRegister;
begin
 if not Assigned(reg) then
    reg := TJobRegister.Create(Application);
 result := reg; // ^^^^^^^^^^^
end;
Fehler: Application? Undeclared Indentifier ???

Sigi
Es gibt aber etwas was ich nicht ganz verstehe. In meinem ursprünglichen Posting ist die Verwendung von PMethod nach der Verwendung von Application geschehen. Dieser Fehler hätte Dir deshalb doch schon vor dem anderen auffallen müssen. Kann es sein das Du mich auf die Schippe nimmst?

cu Ha-Jö
  Mit Zitat antworten Zitat
Sigi55

Registriert seit: 3. Jan 2010
36 Beiträge
 
Delphi 5 Professional
 
#10

AW: Routine mit Namen aufrufen

  Alt 25. Feb 2015, 20:03
[QUOTE=hanvas;1291549]
Zitat:

... es sein das Du mich auf die Schippe nimmst?

cu Ha-Jö
Nee, bestimmt nicht, da war noch ein anderer Fehler
zu der Zeit angezeigt ..
Delphi-Quellcode:
 p.Data := instance;
 p.Code := addr;
Hatte ich aber nicht erwähnt, ich trau mich ja kaum nur eine Punkt
zu verändern ...

cu

Sigi
  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 10:20 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