AGB  ·  Datenschutz  ·  Impressum  







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

TObject ausgeben

Ein Thema von Mike_ · begonnen am 10. Feb 2011 · letzter Beitrag vom 10. Feb 2011
Antwort Antwort
Seite 1 von 2  1 2      
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#1

AW: TObject ausgeben

  Alt 10. Feb 2011, 15:38
Edit://
Mit asender.classname hat es nun funktioniert.
Hatte mein Kopf ebend auf Durchzug

Edit2://
Wie kann man nun diese dem Prozeduraufruf dieses Object mitgeben ?
Beispiel: Prozedur123(Classname:TObject, var1, var2)

Wenn ich den Namen einfach hineinschreibe klappt es nicht "undeclared identifier"
Mit dem Aufruf "Classname:TObject" ebenfalls nicht, obwohl ich dachte dass er nun die Klasse als Object nehmen kann...

Edit3://
Behoben indem ich die entsprechende Unit eingebunden habe.
Nun erhalte ich einen "TObject" und Classreference" incompatible types.

Aufruf versucht:

Prozedur(Classname, var1, var2)
Prozedur(Classname:TObject, var1, var2)
Delphi-Nachwuchs

Geändert von Mike_ (10. Feb 2011 um 15:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#2

AW: TObject ausgeben

  Alt 10. Feb 2011, 15:41
Wieso gibst Du nicht den Sender weiter? Du brauchst ja eine Instanz und keinen Klassennamen, sofern ich Dich richtig verstanden habe. Bei Letzterem bin ich mir aber zugegebenermaßen nicht sicher.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#3

AW: TObject ausgeben

  Alt 10. Feb 2011, 15:47
Weil dann "Types of actual and formal var parameters must be identical" kommt...
Delphi-Nachwuchs

Geändert von Mike_ (10. Feb 2011 um 15:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#4

AW: TObject ausgeben

  Alt 10. Feb 2011, 15:49
Kannst Du mal ein bisschen Code zeigen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#5

AW: TObject ausgeben

  Alt 10. Feb 2011, 15:54
Edit//
Wobei das nur heißt dass meine übergebenen Parameter fehlerhaft sind !?


Delphi-Quellcode:
Prozedur(ASender:TObject; var var1, var2, var3: integer; var var4, var5: wideString; var var6: Integer);
[...]
und ich rufe diese wie folgt auf:

Delphi-Quellcode:
procedure ButtonClick(Sender:Tobject);
begin
Prozedur (Sender, 124, 412, 412, '412', '', 124)
end;
Kann doch nichts verkeht sein !?
Delphi-Nachwuchs
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#6

AW: TObject ausgeben

  Alt 10. Feb 2011, 15:58
Du hast Var-Parameter deklariert, übergibst aber Konstanten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TObject ausgeben

  Alt 10. Feb 2011, 15:56
Dann gibt esben statt Sender die Klasse weiter, welche benötigt wird,
so ala (Sender as TTheClassName) .

[add]
Das Sender ist OK, aber du übergibst Konstanten (deine Zahlen), wärend Variablen verangt werden.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: TObject ausgeben

  Alt 10. Feb 2011, 16:02
Das geht so nicht Typen müssen gleich sein,
Du kannst hier als Beispiel nicht einfach "124" eingeben
Besser deklarieren

Delphi-Quellcode:
var
  Test: Integer;

Test := 124;
Prozedur (Sender, Test, x, x, 'x', '', x);
oder aber den var Parameter entfernen wenn er nicht benötigt wird.
Wäre dann.

Delphi-Quellcode:
Prozedur(ASender:TObject; var1, var2, var3: integer; var4, var5: wideString; var6: Integer);
[...]
gruss

Geändert von EWeiss (10. Feb 2011 um 16:05 Uhr)
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#9

AW: TObject ausgeben

  Alt 10. Feb 2011, 16:07
Hab es nun entsprechend abgeändert dass ich Variablen in der ButtonClick Prozedur festgelegt habe und die andere Prozedur damit aufrufe.

Nun kommt "This form of method call only allowed for class methods"

Delphi-Quellcode:
procedure TMainForm.ButtonClick(Sender: TObject);
var
var1, var2, var3: Integer;
var4, var5: WideString;
var6: Integer;
begin
var1 := 18;
var2 := 65605;
var3 := 51103;
var4 := '533';
var5 := '';
var6 := 8;

AndereProzedur(Sender as Classname, var1, var2, var3, var4, var5, var6);

end;
(Classname = das, was vorhin bei Sender.Classname herauskam)


Original Prozedur:

Prozedur(ASender:TObject; var var1, var2, var3: integer; var var4, var5: wideString; var var6: Integer);
Delphi-Nachwuchs
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#10

AW: TObject ausgeben

  Alt 10. Feb 2011, 16:21
Lass das "as Classname" einmal weg.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:07 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