AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi unbekannte Eigenschaften zur Laufzeit ändern
Thema durchsuchen
Ansicht
Themen-Optionen

unbekannte Eigenschaften zur Laufzeit ändern

Ein Thema von Dezipaitor · begonnen am 23. Aug 2004 · letzter Beitrag vom 25. Aug 2004
Antwort Antwort
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#1

unbekannte Eigenschaften zur Laufzeit ändern

  Alt 23. Aug 2004, 22:25
hi

ich habe hier eine kleine Demo, die unter Delphi 5 und Delphi 7
die Eigenschaften einer beliebigen Klasse ändern sollte, ohne
dass man direkt auf die Eigenschaften zugreift.

Das würde ich gerne für andere Delphiversionen auch funktionsfähig machen.

Also:
Einfach mal das Prog runterladen und kompilieren und sehen was passiert.
Hier mit deiner Delphiversion posten.

Das Problem besteht darin, dass von einer Delphiversion zur anderen die Unit "typeinfo.pas" sich geändert hat. Da muss man unterscheiden.

Irgendwelche Vorschläge - heiße auch gerne konstruktive Verbesserungen willkommen -> sprich additions im Quelltext.


Also mal sehen, wie das ankommt...

thx
Angehängte Dateien
Dateityp: zip rtti_499.zip (2,6 KB, 15x aufgerufen)
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Erichgue

Registriert seit: 24. Aug 2004
Ort: Gunzenhausen
15 Beiträge
 
Delphi XE6 Enterprise
 
#2

Re: unbekannte Eigenschaften zur Laufzeit ändern

  Alt 25. Aug 2004, 10:43
Hallo,
wenn es um die Unterscheidung der Delphi versionen geht, kann ich dir hiermit aushelfen:
Delphi definiert Symbold, die die akteuelle Version kennzeichnet

Abfragen kannst du diese wie folgt:

{$IFDEF VER120} { Delphi 4 }
{$DEFINE DELPHI_4_OR_HIGHER}
{$DEFINE DELPHI_4}
{$ENDIF}

{$IFDEF VER125} { C++ Builder 4 }
{$DEFINE DELPHI_4_OR_HIGHER}
{$DEFINE DELPHI_4}
{$ENDIF}

{$IFDEF VER130} { Delphi 5 and C++ Builder 5 }
{$DEFINE DELPHI_4_OR_HIGHER}
{$DEFINE DELPHI_5_OR_HIGHER}
{$DEFINE DELPHI_5}
{$ENDIF}

{$IFDEF VER140} { Delphi 6 }
{$DEFINE DELPHI_4_OR_HIGHER}
{$DEFINE DELPHI_5_OR_HIGHER}
{$DEFINE DELPHI_6_OR_HIGHER}
{$DEFINE DELPHI_6}
{$ENDIF}

{$IFDEF VER150} { Delphi 7 }
{$DEFINE DELPHI_4_OR_HIGHER}
{$DEFINE DELPHI_5_OR_HIGHER}
{$DEFINE DELPHI_6_OR_HIGHER}
{$DEFINE DELPHI_7_OR_HIGHER}
{$DEFINE DELPHI_7}
{$ENDIF}


Im Quellcode dann wie folgt abfragen:
(Zum Beispiel nach Delphi 5

{$IFDEF DELPHI_5_OR_HIGHER} // Delphi 6.0
ShowMessage(''Delphi 5 oder höher')
{$Else}
ShowMessage('nicht Delphi 5')
{$EndIf}

Also, je nach Delphi-Version musst du dann deine Anweisung die die TypInfo betreffen abändern
Erich Günthner
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#3

Re: unbekannte Eigenschaften zur Laufzeit ändern

  Alt 25. Aug 2004, 11:33
THX

nein es geht nicht um die Präprozessoranweisungen.
Wie kommst du denn darauf?
Das steht doch schon drin. Besonders, da es wichtig ist alle Delphiversionen unterschiedlich zu behandeln, weil sie unterschiedliche Versionen von TypInfo.pas besitzen. Ich kann nicht bei Delphi 7 ausgehen, dass ich auch Delphi 5 Konstrukte verwenden kann - da sich einige Parameter geändert haben.


Hast du das Programm mal kompiliert - es sollte ein Fehler im Hauptprogramm angezeigt werden - Das ist das Problem.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Erichgue

Registriert seit: 24. Aug 2004
Ort: Gunzenhausen
15 Beiträge
 
Delphi XE6 Enterprise
 
#4

Re: unbekannte Eigenschaften zur Laufzeit ändern

  Alt 25. Aug 2004, 12:11
Hallo,
na da hab ich ja mit meinen Delphi-Versions-Vergleich daneben gegriffen.

Nun gut, in Delphi 5 und 7 läßt sich dein Programm bei mir ohne Fehler kompelieren und starten!

Gruß
Erich Günthner
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#5

Re: unbekannte Eigenschaften zur Laufzeit ändern

  Alt 25. Aug 2004, 23:12
ich hab die lösung!!!

Code:
function Get_Method(Proc : Pointer) : TMethod;
begin
  result.Code := Proc;
  result.Data := nil;
end;
p.PropertyList['event'].MethodValue := Get_Method(@TMyObj.Test);
siehe auch im programm.


Also damit kann man die Eigenschaften ändern, ohne direkt auf die Eigenschaften zugreifen zu müssen. Man ändert sie über ihre Namen als String.
Angehängte Dateien
Dateityp: zip rtti_831.zip (4,8 KB, 6x aufgerufen)
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  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 23:04 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