![]() |
AW: die aufzurufende funktion wurde vom linker entfernt
Zitat:
Delphi-Quellcode:
einfach z.B: das hier nehmen:
function TNegativeArray.getData(index: Integer): TSprite;
begin assert(index <= 0); result := fData[abs(index)]; end;
Delphi-Quellcode:
Edit: Quelltext angepasst, siehe unten.
function TNegativeArray.getData(index: Integer): TSprite;
begin if Index < 0 then result := fData[abs(index + 1) * 2 + 1] else result := fData[index*2]; end; |
AW: die aufzurufende funktion wurde vom linker entfernt
Delphi-Quellcode:
Zusätzlich habe ich immer noch das Problem bei der Redimensionierung.
function TNegativeArray.getData(index: Integer): TSprite;
begin if Index < 0 then result := fData[abs(index + 1) * 2 + 1] else result := fData[index * 2]; fData[abs(index)]; //[DCC Fehler] uSprite.pas(297): E2014 Anweisung erforderlich, aber Ausdruck vom Typ 'TSprite' gefunden end;
Delphi-Quellcode:
Irgendwie ein Anfang ohne Ende ;)
if CreateBarIcon(sIconSearch, nFound) then
begin inc(nCount); //Setlength(gS, nCount); Denke mal Zitat:
gruss |
AW: die aufzurufende funktion wurde vom linker entfernt
Genau.
Delphi-Quellcode:
muss weg. Das stand da noch von vorher. Copy&Paste halt.
fData[abs(index)];
Für deine Dimensionierung (SetLength) machst du einfach eine Methode in die Klasse, die dies vornimmt; Wenn dein TNegativeArray von -n..+n geht, musst du SetLength mit n*2+1 aufrufen; |
AW: die aufzurufende funktion wurde vom linker entfernt
Zitat:
Danke.. wenn es funktioniert kann ich die vielleicht doch noch verwenden. gruss |
AW: die aufzurufende funktion wurde vom linker entfernt
Delphi-Quellcode:
Dann kannst du dein Array mit TNegativeArray = class(TObject) ... public ... procedure SetLen(n: Integer); property Data[index: Integer]: TSprite read getData write setData; default; property MaxValue: Integer read GetMaxValue write SetMaxValue; end; procedure TNegativeArray.SetLen(n: Integer); begin SetLength(fData, n*2+1); end;
Delphi-Quellcode:
gs.SetLen(n) dimensionieren.
|
AW: die aufzurufende funktion wurde vom linker entfernt
Danke werde es gleich mal testen. ;)
gruss |
AW: die aufzurufende funktion wurde vom linker entfernt
Hmmm...
Bei
Delphi-Quellcode:
also Index -4 kracht es beim einlesen der Bitmap. :wall:
gS[ID_BLUEFLARE].Bitmap :=
Delphi-Quellcode:
Es sind alle Arrays mit TSprite.Create zugewiesen.
procedure TSprite.SetBitmap(const Value: HBitmap);
begin FBitmap := Value; end; Das HBitmap handle was übergeben werden soll ist auch korrekt. getData ist wieder nicht zugewiesen. gruss |
AW: die aufzurufende funktion wurde vom linker entfernt
Was gibst du denn beim Create für einen Wert für aLength an?
|
AW: die aufzurufende funktion wurde vom linker entfernt
Zitat:
Delphi-Quellcode:
constructor TNegativeArray.Create(aLenght: Integer);
var i: Integer; begin MaxValue := IIF(aLenght > 6, aLenght, 0); SetLength(FData, aLenght); for I := 0 to aLenght do FData[i] := TSprite.Create; end;
Delphi-Quellcode:
gs := TNegativeArray.Create(6);
gruss |
AW: die aufzurufende funktion wurde vom linker entfernt
6 ist auch zu wenig => n*2+1
Da du scheinbar mit 5 anfängst also 11. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 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 by Thomas Breitkreuz