Forum: Object-Pascal / Delphi-Language
Delphi
by 3_of_8,
26. Apr 2006
OK, Problem: Wieso gibt TModuleClass(Pointer(ModuleButtons.Tag)).ClassName einen Leerstring zurück? Und warum nur an dieser Stelle und sonst nicht? Mir schwirrt der Kopf.
Edit: É voila! Auf einmal gehts! Hab tatsächlich das .Tag vergessen und das ganze jetzt so umgangen, dass der Funktion mit dem INI-File ihr eigener Klassenname übergeben wird. Ich versteh zwar immer noch nicht, warum es...
Forum: Object-Pascal / Delphi-Language
Delphi
by 3_of_8,
26. Apr 2006
Ich sage es nochmal: das ganze funktioniert wunderbar, bis auf das INI-File, wobei irgendwas mit ClassName() nicht hinhaut.
Das .Tag habe ich nur hier vergessen, in meinem Code stimmt das UND ES FUNKTIONIERT AUCH.
ModuleButtons ist ein array of TSpeedButton.
Forum: Object-Pascal / Delphi-Language
Delphi
by 3_of_8,
26. Apr 2006
TModuleClass ist eine Class of TModule. Wenn ich dann eine Instanz davon erzeute, erzeuge ich eine Instanz eines abgeleiteten Typs von TModule. Ich will einfach beim Klick auf einen SpeedButton die damit verbundene Klasse instantiieren. Das ganze soll dynamisch und leicht erweiterbar sein.
Das funktioniert auch prima, bis darauf, dass ich in der class function GetModuleID keine INI-Datei...
Forum: Object-Pascal / Delphi-Language
Delphi
by 3_of_8,
26. Apr 2006
for I:=0 to high(ModuleButtons) do
begin
showmessage(TModuleClass(Pointer(ModuleButtons)).ClassName);
bitmap:=TBitmap.Create;
bitmap.LoadFromResourceName(HINSTANCE,
TModuleClass(Pointer(ModuleButtons.Tag)).ClassName);
CreateCursorFromBMP(TModuleClass(Pointer(ModuleButtons)).
GetModuleID(TModuleClass(Pointer(ModuleButtons)).ClassName),bitmap);
end;
Forum: Object-Pascal / Delphi-Language
Delphi
by 3_of_8,
25. Apr 2006
Morgen.
Ich habe folgende Klassenfunktion, mit der ich die "ID" (ein von mir für jede meiner abgeleiteten Klassen vergebener Wert) aus einer INI-Datei auslese:
class function TModule.GetModuleID: Cardinal;
var ini: TIniFile;
begin
ini:=TIniFile.Create(ModuleConfigFile);
try
Result:=strtoint(ini.ReadString(ClassName,'ID','0'));