Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Procedure als Event definieren? Wenn ja, wie? (https://www.delphipraxis.net/150151-procedure-als-event-definieren-wenn-ja-wie.html)

stho 8. Apr 2010 18:35


Procedure als Event definieren? Wenn ja, wie?
 
Hallo leute...

Ich möchte gerne eine einfache Procedure (enthalten in einer Unit) einem Event einer Komponente zuweisen...
Da mein projekt schon recht weit ist kann ich diese Procedure leider nicht einfach in irgend eine Klasse schmeißen und diese erzeugen...

Wie kann ich das machen?

Währe über Anregungen sehr dankbar
stho

mkinzler 8. Apr 2010 18:36

Re: Procedure als Event definieren? Wenn ja, wie?
 
Die Signatur der Methode muss passen. Welcher Klasse sie gehört ist egal

stho 8. Apr 2010 18:47

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von mkinzler
Die Signatur der Methode muss passen. Welcher Klasse sie gehört ist egal

die procedure gehört keiner klasse an :-(

SimonRap 8. Apr 2010 18:48

Re: Procedure als Event definieren? Wenn ja, wie?
 
@mkinzler:
Was genau meinst du mit Signatur?

omata 8. Apr 2010 18:49

Re: Procedure als Event definieren? Wenn ja, wie?
 
Delphi-Quellcode:
type
  TEvent1 = function(index:integer):boolean;
  TEvent2 = procedure(index:integer);

:
:

function EventHandler1(i:integer):boolean;
begin
end;

procedure EventHandler2(i:integer);
begin
end;

procedure StartEvent;
var Event1:TEvent1;
    Event2:TEvent2;
begin
  Event1:=EventHandler1;
  Event2:=EventHandler2;

  if Event1(1) then begin
  end;
  Event2(1);
end;

stho 8. Apr 2010 18:49

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von SimonRap
@mkinzler:
Was genau meinst du mit Signatur?

stimmt, das habe ich vergessen zu fragen...
Wie prüfe ich eine "Signatur" oder füge eine hinzu?


EDIT:
@omata
sorry, war net schnell genug. ist nett das du etwas hinzu bringst aber leider verstehe ich nicht wie mir das bei der zuweisung helfen soll :-(
Vielleicht bin ich eindach doof?

himitsu 8. Apr 2010 18:53

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von stho
die procedure gehört keiner klasse an :-(

Tja, entweder Prozedur/Funktion (außerhalb einer Klasse) oder Methode (innerhalb einer Klasse) ... es geht nur eines von Beidem.

Wenn das Ereignis einen Methodenzeiger will, dann mußt du auch eine Methode übergeben.

Signatur = Typen der Parameter und des Results und die Aufrufkonvention (ala stdcall)

Zitat:

Zitat von mkinzler
Welcher Klasse sie gehört ist egal

Man kann sogar noch weiter gehn...
Zu welchem Objekt sie gehört ist egal.


Code:
type
  // Deklaration eines Prozedur-Zeigers
  TEvent1 = [b]function[/b](index: [b]integer[/b]): [b]boolean[/b]; [b]stdcall[/b];

[b]function[/b] EventProc(i: [b]integer[/b]): [b]boolean[/b]; [b]stdcall[/b];
begin
end;



type
  // Deklaration eines Methoden-Zeigers
  TEvent1 = [b]procedure[/b](index: [b]integer[/b]) of [i]object[/i];

[b]procedure[/b] [i]TMyClass[/i].EventMethod(i: [b]integer[/b]);
begin
end;
Das Fette sind die Signaturen.

mkinzler 8. Apr 2010 18:54

Re: Procedure als Event definieren? Wenn ja, wie?
 
Unter Signatur versteht man den Typ der Rückgabe und die Anzahl und die Typen der Parameter

DeddyH 8. Apr 2010 18:55

Re: Procedure als Event definieren? Wenn ja, wie?
 
Mach doch einfach aus der Prozedur eine Methode des Formulars (ich gehe mal davon aus, dass Du ein Formular hast).

stho 8. Apr 2010 18:59

Re: Procedure als Event definieren? Wenn ja, wie?
 
häääääääääää??????
Der bahnhof in meinem kopf ist grad nochmal größer geworden... :wall:


Ich habe eine Procedure "Procedure BeforeInsert(Dataset : TDataset);"
Und ich habe das Objekt "Command" vom Typ "TASQLite3Query".

Ich möchte diese Procedure mit dem "Command.BeforeInsert" - event verbinden...


leider verstehe ich nichtmal ansatzweise was ihr mit methoden und dem ganzen zeug sagen wollt... :gruebel: sorry...

Nein, leider kein Formular... Das Objekt und die Procedure liegen einsam und alleine in einer eigenen Unit (Damit sie sich vielleicht mal näher kommen ^^)


EDIT:
So, jetzt muss ich erstmal lesen. hab zu lange mit dem schreiben gebraucht

himitsu 8. Apr 2010 19:05

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von stho
Ich möchte diese Procedure mit dem "Command.BeforeInsert" - event verbinden...

Wie ist denn der Typ für das BeforeInsert-Event?

Genauso muß nun deine Procedur oder Methode aufgerbaut sein.

Steht hinter dessen Typendeklaration ein "of object", dann muß es eine Methode werden, also innerhalb "irgendeiner" Klasse, bzw. eines instanziierten Objektes liegen.

Hierfür kannst du notfalls auch eine eigene Klasse anlegen, davon ein Objekt erstellen und die Methode dieses Objektes nun dem Event zuweisen.

stho 8. Apr 2010 19:09

Re: Procedure als Event definieren? Wenn ja, wie?
 
wenn ich das event auf einer form anspreche schauts so aus:
Delphi-Quellcode:
TMain = class(TForm)
  procedure ASQLite3Query1BeforeInsert(DataSet: TDataSet);
end;

implementation

procedure TMain.ASQLite3Query1BeforeInsert(DataSet: TDataSet);
begin
[...]
end;
das ist natürlich nur ein auszug...
Aber da das objekt dynamisch in einer Unit erzeugt wird ists net so einfach für mich -.-

Was macht eigentlich das "stdcall"?

himitsu 8. Apr 2010 19:16

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von stho
Aber da das objekt dynamisch in einer Unit erzeugt wird ists net so einfach für mich -.-

Zitat:

Zitat von himitsu
Hierfür kannst du notfalls auch eine eigene Klasse anlegen, davon ein Objekt erstellen und die Methode dieses Objektes nun dem Event zuweisen.


Zitat:

Zitat von stho
Was macht eigentlich das "stdcall"?

Das ist einfach nur eine Aufrufkonfention, welche festlegt, wie intern die Parameter übergeben werden und wer aufräumen muß.
Im Pascal werden Parameter vorzugsweise in die Register gelegt, wärend beim StdCall die Parameter im Stack landen. (wie es oftmal in C++ und der WinAPI der Fall ist)
Was genau passiert ist aber für dich nicht wichtig, sondern nur daß dieses übereinstimmt.


PS: Wenn die Signatur nicht stimmt, dann meckert Delphi, bzw. der Compiler schon rum.

stho 8. Apr 2010 20:09

Re: Procedure als Event definieren? Wenn ja, wie?
 
ich komm echt net weiter!!!
Ach so eine SCHEI*E... -.-

ich habe diese funktion:
Delphi-Quellcode:
procedure BeforeInsert(DataSet: TDataSet);
begin
  Showmessage(Command.SQL.Text);
end;
egal was ich mache, ich kriegs net hin :cry: :cry: :cry: :cry: :cry:

ich will doch nur
Delphi-Quellcode:
command.BeforeInsert := BeforeInsert(nil);
(Command vom Typ TASQLite3Query)

-> Inkompatible Typen: TDataSetNotifyEvent und procedure...

ich könnte heulen weil ich nicht ein Wort hier verstehe und mich, selbst nach eurem einsatz der sehr lobenswert ist, immer noch net schlauer fühle...

jfheins 8. Apr 2010 20:25

Re: Procedure als Event definieren? Wenn ja, wie?
 
Delphi-Quellcode:
type TDataSetNotifyEvent = procedure(
  DataSet: TDataSet
) of object;
Du musst also eine Methode zuweisen (of object)

=> Dummy Klassse erstellen, mit einer Methode und zuweisen (bei der Zuweisung keine Parameter!)

Alternativ gibt es auch einen kleinen Hack, der es ermöglicht eine Prozedur als Event zu verpacken und dann zuzuweisen, da muss ich nochmal kurz gucken ... ich glaub das war von himi

Doch nicht himi sondern Mirage: http://www.delphipraxis.net/internal...=302598#302598 ;)

stho 8. Apr 2010 20:32

Re: Procedure als Event definieren? Wenn ja, wie?
 
komm ich mir nur dumm vor oder bin ich es?

Delphi-Quellcode:
type
  TDummeKlasse = Class(TObject)
    Procedure BeforeInsert(DataSet: TDataSet);
  End;

[...]
command.BeforeInsert := TDummeklasse.BeforeInsert;
// oder
command.BeforeInsert := BeforeInsert;
ergeben noch immer den selben fehler -.-
ich versteh glaube echt nicht was ihr mir hier erklären wollt...

jfheins 8. Apr 2010 20:36

Re: Procedure als Event definieren? Wenn ja, wie?
 
Delphi-Quellcode:
type
  TDummyKlasse = Class(TObject)
    Procedure BeforeInsert(DataSet: TDataSet);
  End;

[...]
var temp = TDummyKlasse.Create();
command.BeforeInsert := temp.BeforeInsert;
// ggf. absichtliches Speicherleck

omata 8. Apr 2010 20:38

Re: Procedure als Event definieren? Wenn ja, wie?
 
Oder so...
Delphi-Quellcode:
type
  TDummy = class
    class procedure BeforeInsert(DataSet:TDataSet);
  end;

{ TDummy }

class procedure TDummy.BeforeInsert(DataSet: TDataSet);
begin

end;
:
:
begin
  command.BeforeInsert:=TDummy.BeforeInsert;
end;

stho 8. Apr 2010 20:42

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von jfheins
Delphi-Quellcode:
type
  TDummyKlasse = Class(TObject)
    Procedure BeforeInsert(DataSet: TDataSet);
  End;

[...]
var temp = TDummyKlasse.Create();
command.BeforeInsert := temp.BeforeInsert;
// ggf. absichtliches Speicherleck

ich habs jetzt so gemacht:

Delphi-Quellcode:
type
  TDummeKlasse = Class(TObject)
    Procedure BeforeInsert(DataSet: TDataSet);
  End;

---

procedure TDummeKlasse.BeforeInsert(DataSet: TDataSet);
begin
  Showmessage(Command.SQL.Text);
end;

---

function GlobalInit : Boolean;
var
  X : TDummeKlasse;
begin
  result := false;
  X     := TDummeKlasse.create;
[...]
command.BeforeInsert := X.BeforeInsert;
[...]
end;
irgendwie springt er trotzdem nicht in das sch**ß event rein :-(
Was mach ich noch alles falsch?!

himitsu 8. Apr 2010 20:44

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von jfheins
ich glaub das war von himi

Sowas geistert mehrfach in der DP rum
und ja, ein paar Mal hatte ich es auch erwähnt.

Aber es hatt seinen Grund, warum ich (und auch Andere) hier mehrmals den offiziellen Weg und nicht den Hack erwähnte.

Zitat:

Zitat von omata
Oder so...

Eine Methode (function of object) und keine Class Procedure (function of class)

Und den anderen Trick, der mit dem NIL-Objekt, erwähn ich besser auch nicht.



So, das was jfheins schieb, hatten wir jetzt mehrmals beschrieben ... was ist daran also bitte so schwer, daß man es nicht versteht?


Zitat:

Zitat von stho
Was mach ich noch alles falsch?!

Das, was von dem gekürzten Code zu sehen ist, sieht OK aus.

Du gibst X aber nicht zu früh frei?

stho 8. Apr 2010 20:51

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von himitsu
Zitat:

Zitat von jfheins
ich glaub das war von himi

Sowas geistert mehrfach in der DP rum
und ja, ein paar Mal hatte ich es auch erwähnt.

Aber es hatt seinen Grund, warum ich (und auch Andere) hier mehrmals den offiziellen Weg und nicht den Hack erwähnte.

Zitat:

Zitat von omata
Oder so...

Eine Methode (function of object) und keine Class Procedure (function of class)

Und den anderen Trick, der mit dem NIL-Objekt, erwähn ich besser auch nicht.



So, das was jfheins hatten wir jetzt mehrmals beschrieben ... was ist daran also bitte so schwer, daß man es nicht versteht?


ich kann verstehen das du langsam die geduld verlierst... -.-
mir würde es sicher net anderst gehen.
dann betrachte mich gerne als etwas zurückgeblieben wenn nötig. aber nein, ich versteh nicht WAS ICH AN DEM EBEN GENANNTEN CODE falsch mache...
ich verlange ja nicht das ich das "of object" oder "Procedure-zeiger" oder sonst was verstehen.
(Hey, immerhin habe ich dank dir den aufruf "stdcall" verstanden. auch wenn ich net weiß wann und wo man ihn einsetzt!)
Ich lese das was ihr schreibt und versucht es zu verstehen!

den meisten code den ihr hier postet ist entweder unkommentiert oder mit so viel fachgesimpel voll das ich ihn net verstehe -.-
ich will auch keinen "sogenannten" "hack" anwenden. ich will nur das das programm macht was es soll. das ist alles...
ich verlange ja nicht die welt sondern nur das das was ich bisher gemacht habe funktioniert oder, was toll währe, wenn ihr mir sagt das ich schei*e verzapfe, am besten WO ich mist mache und WAS daran falsch ist!

Ich bin bereit zu lesen, kopf ein zu setzen und aus zu probieren...
was soll ich denn noch machen?????????
Sag es mir und ich versuche es!!!!!!

himitsu 8. Apr 2010 21:02

Re: Procedure als Event definieren? Wenn ja, wie?
 
Also dein Code aus der #19 sollte so eigentlich funktionieren.
An deinem gezeigten Beispielcode dürfte es noch nichtmal ein Problem geben, selbst wenn du "ausversehn" der Dummy-Objekt in deiner Initprozedur wieder freigibst.

Zitat:

Hierfür kannst du notfalls auch eine eigene Klasse anlegen, davon ein Objekt erstellen und die Methode dieses Objektes nun dem Event zuweisen.
Delphi-Quellcode:
// Hierfür kannst du notfalls auch eine eigene Klasse anlegen,
type
  TDummeKlasse = Class(TObject)
    Procedure BeforeInsert(DataSet: TDataSet);
  End;

procedure TDummeKlasse.BeforeInsert(DataSet: TDataSet);
begin
  Showmessage(Command.SQL.Text);
end;

---

function GlobalInit : Boolean;
var
  X : TDummeKlasse;
begin
  result := false;
  // davon ein Objekt erstellen
  X     := TDummeKlasse.create;
  [...]
  // und die Methode dieses Objektes nun dem Event zuweisen.
  command.BeforeInsert := X.BeforeInsert;
  [...]
end;

// X besser globaler deklarieren
// und erst freigeben, wenn "command" gelöscht wurde
// oder wenn TDummeKlasse.BeforeInsert nicht mehr benötigt wird.
Wie gesagt, so ist es eigentlich richtig,

also muß der Fehler, warum es immernoch nicht geht, irgendwo anders sein.

uligerhardt 8. Apr 2010 21:05

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von himitsu
Wie gesagt, so ist es eigentlich richtig,

Omatas Weg ist besser, weil man kein überflüssiges Objekt X anlegen muss.

Medium 8. Apr 2010 22:17

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von stho
Ich bin bereit zu lesen, kopf ein zu setzen und aus zu probieren...
was soll ich denn noch machen?????????
Sag es mir und ich versuche es!!!!!!

Grundlagen der Objekt orientierten Programmierung lernen.

blauweiss 8. Apr 2010 22:29

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von himitsu
Also dein Code aus der #19 sollte so eigentlich funktionieren.
An deinem gezeigten Beispielcode dürfte es noch nichtmal ein Problem geben, selbst wenn du "ausversehn" der Dummy-Objekt in deiner Initprozedur wieder freigibst.

Zitat:

Hierfür kannst du notfalls auch eine eigene Klasse anlegen, davon ein Objekt erstellen und die Methode dieses Objektes nun dem Event zuweisen.
Delphi-Quellcode:
// Hierfür kannst du notfalls auch eine eigene Klasse anlegen,
type
  TDummeKlasse = Class(TObject)
    Procedure BeforeInsert(DataSet: TDataSet);
  End;

procedure TDummeKlasse.BeforeInsert(DataSet: TDataSet);
begin
  Showmessage(Command.SQL.Text);
end;

---

function GlobalInit : Boolean;
var
  X : TDummeKlasse;
begin
  result := false;
  // davon ein Objekt erstellen
  X     := TDummeKlasse.create;
  [...]
  // und die Methode dieses Objektes nun dem Event zuweisen.
  command.BeforeInsert := X.BeforeInsert;
  [...]
end;

// X besser globaler deklarieren
// und erst freigeben, wenn "command" gelöscht wurde
// oder wenn TDummeKlasse.BeforeInsert nicht mehr benötigt wird.
Wie gesagt, so ist es eigentlich richtig,

also muß der Fehler, warum es immernoch nicht geht, irgendwo anders sein.


Die Instanz x der Dummyklasse muß nicht unbedingt erstellt sein, da auf keine members zugegriffen wird.
Also die Zeile
Delphi-Quellcode:
  X     := TDummeKlasse.create;
braucht es nicht. Dann muß man sich auch nicht um die Freigabe kümmern.

blauweiss

stho 9. Apr 2010 05:23

Re: Procedure als Event definieren? Wenn ja, wie?
 
@Medium:
So, fertig mit lernen -.-
Aber so eine Aussage ist nen bissel unpassend wie ich finde.
Zu den Grundlagen zählt dieses Problem sicherlich nicht: Eine bestehende Procedure einem Objekt-Event zu zu weisen. Oder?
Wenn doch, bitte zeige mir einen Link wo ich dieses gehobene Wissen erlangen kann damit ich der Gemeinschaft nicht mehr auf den sack gehe...

---

@uligerhardt:
So, mit Hilfe von omatas Code (den ich absichtlich nicht benutzt habe) geht es jetzt.
Aber mal eine Rückfrage dazu:
Was sagt eigentlich das "class" vor der procedure?
"class procedure XYZ(I : Integer);"

Sowas hab ich bisher noch nicht gesehen...
Und wieso muss man dort kein Objekt erzeugen? Wie kann ich also auf den inhalt eines objektes zugreifen wenn ich es ja nirgends erzeugt habe? :gruebel: das ist mir nicht ganz schlüssig...

jaenicke 9. Apr 2010 07:09

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von stho
Und wieso muss man dort kein Objekt erzeugen? Wie kann ich also auf den inhalt eines objektes zugreifen wenn ich es ja nirgends erzeugt habe? :gruebel: das ist mir nicht ganz schlüssig...

Es handelt sich dabei nicht um eine Methode einer Instanz der Klasse (also das was du mit Create erzeugst), sondern eine Methode der Klasse selbst.
Deshalb gehört die Methode nicht zu einem speziellen erzeugten Objekt sondern zur Klasse. Heißt im Umkehrschluss natürlich, dass du nicht auf andere Elemente ohne das "class" zugreifen kannst, da die zu einer Instanz gehören.

Um es mal anders zu erklären:
Stell dir ein Auto vor. Eine Methode "Tür schließen" bezieht sich auf ein spezielles Auto. Diese werden erzeugt / gebaut und die Methode kann man nicht ohne ein spezielles Auto-Objekt benutzen.

Jetzt nimm aber die Funktion "Bremsweg berechnen". Der übergibst du einfach die Geschwindigkeit und du bekommst den Bremsweg zurück. Dabei brauchst du kein spezielles Auto, sondern es reicht, dass du sagst, dass du das bei einem Auto, also der Klasse TAuto z.B. berechnen willst. (Oder eben bei TKreuzfahrtschiff. :mrgreen:)

uligerhardt 9. Apr 2010 07:15

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von stho
@uligerhardt:
So, mit Hilfe von omatas Code (den ich absichtlich nicht benutzt habe) geht es jetzt.
Aber mal eine Rückfrage dazu:
Was sagt eigentlich das "class" vor der procedure?
"class procedure XYZ(I : Integer);"

Sowas hab ich bisher noch nicht gesehen...
Und wieso muss man dort kein Objekt erzeugen? Wie kann ich also auf den inhalt eines objektes zugreifen wenn ich es ja nirgends erzeugt habe? :gruebel: das ist mir nicht ganz schlüssig...

Das "class" in "class procedure" macht die Prozedur zur Klassenmethode. Das ist ähnlich wie eine statische Methode in C++. Um sie aufzurufen, brauchst du keine Instanz der Klasse, dafür kannst du auch auf keine Felder dieser nichtvorhandenen Instanz zugreifen. Also eine globale Routine in OO-Verkleidung - genau was du als Eventhandler brauchst. :-)

alzaimar 9. Apr 2010 07:28

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von stho
@Medium:
So, fertig mit lernen -.-
Aber so eine Aussage ist nen bissel unpassend wie ich finde.
Zu den Grundlagen zählt dieses Problem sicherlich nicht: Eine bestehende Procedure einem Objekt-Event zu zu weisen. Oder?
Wenn doch, bitte zeige mir einen Link wo ich dieses gehobene Wissen erlangen kann damit ich der Gemeinschaft nicht mehr auf den sack gehe...

Ich bin zwar nicht Medium, antworte aber trotzdem mal: Das mit den 'Grundlagen' stimmt schon, denn Du stellst Fragen, die mit deinem Problem nichts zu tun haben ('Prozedur zuweisen'): Du hast das Problem, das Du nicht weisst, wie man mit Delegaten (OO-Grundkurs) unter Delphi umgeht. Du kennst den Unterschied zwischen Klassenmethode und Objektmethode nicht.

Einen Link muss ich Dir nicht geben, denn ich glaube, mit 'OOP', 'OOP Delphi', 'Grundlagen OOP Delphi', 'Delegat OOP', 'Delegat Delphi' usw. kommst Du schon recht weit.

Du willst objektorientiert programmieren, aber ohne die Grundlagen zu kennen und regst Dich auf, wenn man dir das so sagt.

Nun ja.

Du hast also ein TDataset-Derivat und willst sein BeforeInsert-Ereignis/Delegat belegen?
1. Im Designer klickst Du auf dein TDataset (TASQLListe-Dingsda)
2. Dann wechsest Du im Objektinspektor auf die Ereignisseite
3. Nun doppelklickst Du in den Eintrag rechts vom 'BeforeInsert'
4. Wupps, hat Delphi ein Delegat erstellt und du kannst das nun mit Leben füllen.

Nun weisst Du, wie das Delegat aussehen muss. Manuell zuweisen geht so:
Delphi-Quellcode:
...
  MyDataset.BeforeInsert := MyBeforeInsertDelegate; // Ohne Parameter, ohne Klammern, nix.
// Und wenn das Delegat zu einem anderen Objekt gehört:
  MyDataset.BeforeInsert := TheOtherObjet.MyBeforeInsertDelegate;
Wir helfen hier im Forum jedem gerne, aber Grundlage hierfür ist der Wille zum Lernen. Und schnippische kleine Zicken können wir hier gar nicht leiden. :zwinker:

stho 9. Apr 2010 07:40

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zicke? :shock:
das ist ja bööööööse.... :(

nun, grundlagen habe ich gelesen.
und was OOP bedeutet ist mir auch klar...

ich bin bereit zu lesen und zu lernen. sonst würde ich ja keine Fragen hier im Forum stellen...
Meine "Hausaufgaben" soll ja auch keiner von euch machen

und ja, ich rege mich auf wenn man mir das so sagt. -.-
Ich habe Grundlagen gelernt und mitlerweile 2 Delphi-bücher durch geackert... das ich dabei nicht auf das angesprochene gestoßen bin kann an mehreren punkten liegen:
- Ich habs einfach überlesen oder vergessen (überlesen ist aber warscheinlicher)
- das buch war schwer verständlich
- da es sich um ein anfänger-buch gehandelt hat war das vielleicht nicht mit drinne?

nun auch egal, es hat geklappt und das ich noch einiges lernen muss weiß ich auch so... :(
Dafür macht man ja eine ausbildung...

Medium 9. Apr 2010 08:03

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von stho
Zicke? :shock:
das ist ja bööööööse.... :(

Da will man dir ernsthaft weiter helfen, und du reagierst SO. Dass das für uns hier nicht gerade motivationsfördernd ist, kannst du dir vielleicht vorstellen.

Bücher sind auch von unterschiedlicher Qualität.

Zitat:

und ja, ich rege mich auf wenn man mir das so sagt. -.-
Dann solltest du an deiner Kritikfähigkeit arbeiten. Das war völlig ernst, und mit besten Absichten geschrieben. Du tust MIR sicherlich keinen Gefallen wenn du dein Wissen erweiterst, und wie alzaimer ja nun auch bestätigt hat: Es kann nicht sein, dass du die Grundlagen hierzu drauf hast, da du ganz offensichtlich auch an wirklich grundlegenden Stellen schlicht und einfach offensichtliche Wissenslücken hast. Und das ist auch kein Fehler in deiner gerade so angegriffenen Persönlichkeit, sondern schlicht lernbares Wissen, was um so einfacher wird, wenn man weiss wonach zu gucken ist - was wir dir nun gesagt haben. Was ist daran zickig und böse bitte!?

Bereit sein zu lesen und zu lernen ist eine Sache, Hilfe dabei zu erkennen und annehmen zu können offenbar eine andere.

stho 9. Apr 2010 09:11

Re: Procedure als Event definieren? Wenn ja, wie?
 
ich sag nix mehr...
vielen dank -.-

leddl 9. Apr 2010 09:29

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von stho
Zicke? :shock:
das ist ja bööööööse.... :(

Zitat:

Zitat von Medium
Was ist daran zickig und böse bitte!?

*hust* Damit bezog er sich auf alzaimars Kommentar:
Zitat:

Zitat von alzaimar
Und schnippische kleine Zicken können wir hier gar nicht leiden :zwinker:

:zwinker:

Medium 9. Apr 2010 13:22

Re: Procedure als Event definieren? Wenn ja, wie?
 
Oh, ich hab's zwar auf alzaimars Posting bezogen verstanden, aber den Zicken-Satz wohl überlesen :oops:. Dass der - auch gern ohne Zwinkergelbling - nicht ganz unberechtigt war, hat stho ja eins über dir jetzt schön bewiesen :).

alzaimar 9. Apr 2010 20:00

Re: Procedure als Event definieren? Wenn ja, wie?
 
Ich habe nie nicht niemanden Zicke genannt.
Ich habe nur gesagt, das wir die nicht leiden können.
So wie schmollende Sumpfdohlen.
Oder ignorrante Kalbsschädel.
Zum Beispiel.

mkinzler 9. Apr 2010 20:04

Re: Procedure als Event definieren? Wenn ja, wie?
 
Oder anziehende Fettnäpfchen.

hoika 21. Apr 2010 11:00

Re: Procedure als Event definieren? Wenn ja, wie?
 
Hallo,

was mich an der ganzen Sache wundert.

Delphi-Quellcode:
procedure TDummeKlasse.BeforeInsert(DataSet: TDataSet);
begin
  Showmessage(Command.SQL.Text);
end;
Wenn ich ein Compiler wäre, würde ich sagen

Command not found


Wenn schon, dann DataSet.Command


Heiko

himitsu 21. Apr 2010 11:14

Re: Procedure als Event definieren? Wenn ja, wie?
 
Zitat:

Zitat von hoika
was mich an der ganzen Sache wundert.

Wer sagt denn, daß er kein globaleres Command deklariert hat, welches der Compiler dort nimmt? :roll:

hoika 21. Apr 2010 11:36

Re: Procedure als Event definieren? Wenn ja, wie?
 
Hallo,

naja ;)

aber was macht das für einen Sinn.
Er will ja, dass das Insert-Statement des jeweiligen DataSets angezeigt wird.

Solte das DataSet wirlich "global" irgendwo rumlungern,
bezeichne ich das mal als "Weg zum Bug" ;)


Heiko

hoika 21. Apr 2010 13:21

Re: Procedure als Event definieren? Wenn ja, wie?
 
Hallo,

ich würde doch gern mal wissen,
woher der TE weiss, dass das ShowMessage nicht "angesprungen wird",
vielleicht wird ja nur '' zurückgeben.

Ein bissel mehr Quellcode wäre nett.


Heiko


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