AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi die aufzurufende funktion wurde vom linker entfernt
Thema durchsuchen
Ansicht
Themen-Optionen

die aufzurufende funktion wurde vom linker entfernt

Ein Thema von EWeiss · begonnen am 1. Mai 2017 · letzter Beitrag vom 2. Mai 2017
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: die aufzurufende funktion wurde vom linker entfernt

  Alt 2. Mai 2017, 14:19
So funktioniert es:
Anhang 47237

Edit: Und wenn du bei der Deklaration von getData und setData das "inline" rausnimmst, kannst du die Methoden auch debuggen.
Sorry Olli hatte jetzt erst die Möglichkeit es zu testen.
Wenn es das richtig Archiv ist das du hochgeladen hast dann funktioniert es immer noch nicht

sobald ich auf den Check Valid Button klicke kracht es.

gruss

Geändert von EWeiss (11. Jul 2019 um 15:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
797 Beiträge
 
#2

AW: die aufzurufende funktion wurde vom linker entfernt

  Alt 2. Mai 2017, 14:31
War wohl die alte Version. Hier das aktuelle:
Angehängte Dateien
Dateityp: rar NegativeArray.rar (19,4 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: die aufzurufende funktion wurde vom linker entfernt

  Alt 2. Mai 2017, 14:43
War wohl die alte Version. Hier das aktuelle:
Perfekt
Danke noch mal.

gruss
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: die aufzurufende funktion wurde vom linker entfernt

  Alt 2. Mai 2017, 15:15
Habe es noch etwas abgeändert damit die Classe flexibel bleibt.

snipp im nächsten Beitrag.

gruss

Geändert von EWeiss ( 2. Mai 2017 um 15:32 Uhr)
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: die aufzurufende funktion wurde vom linker entfernt

  Alt 2. Mai 2017, 15:16
Hier mal meine korregierte Variante mit Kommentaren

Schaus dir einfach mal an.

Kleiner Tip am Rande: In einer Debug-Konfiguration immer die Compileroptimierung abschalten
Angehängte Dateien
Dateityp: zip help.zip (35,9 KB, 4x aufgerufen)
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: die aufzurufende funktion wurde vom linker entfernt

  Alt 2. Mai 2017, 15:17
Hier mal meine korregierte Variante mit Kommentaren

Schaus dir einfach mal an.

Kleiner Tip am Rande: In einer Debug-Konfiguration immer die Compileroptimierung abschalten
Auf jeden Fall werde ich mir Anschauen..
Danke.

gruss
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: die aufzurufende funktion wurde vom linker entfernt

  Alt 2. Mai 2017, 15:38
Noch ein paar kleine Änderungen damit die Classe flexibel bleibt.

Rückgabe NIL addiert falls was schief läuft.

Delphi-Quellcode:
function TNegativeArray.getData(index: Integer): TSprite;
var
 idx : Integer;
begin
  result := nil;

  if ((index <= 0) or ((index > 0) and (Length(Fdata) > FMaxDefault ))) then
  begin
    idx := self.MappIndex(index);
    result := fdata[idx];
  end;
end;
create verändert keine festen werte mehr zuweisen.

Delphi-Quellcode:
constructor TNegativeArray.Create(aLenght: Integer; MaxDefault: Integer);
var
  i: Integer;
begin

  FMaxDefault := MaxDefault;
  MaxValue := IIF(aLenght > FMaxDefault, aLenght, 0);
  SetLength(FData, aLenght);

  for I := 0 to aLenght do
    FData[i] := TSprite.Create;
end;
Der Rest im Anhang.

gruss

Geändert von EWeiss (11. Jul 2019 um 15:47 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: die aufzurufende funktion wurde vom linker entfernt

  Alt 2. Mai 2017, 16:58
Noch eine Änderung.

Delphi-Quellcode:
procedure TNegativeArray.SetLen(Len: Integer);
var
  oldidx,i : Integer;

begin
  if ((Len + FMaxDefault) > Length(Fdata)) then
  begin
    //alte Länge = 1. neuer Index nach der vergrößerung
    oldidx := Length(Fdata);
    //Neue Länge (len = 1 entspricht neue größe 7 elemente also -5 bis 1
    SetLength(fData, Len + FMaxDefault);

    for i := oldidx to Length(Fdata)-1 do
    begin
      fdata[i] := TSprite.Create;
      MaxValue := IIF(i > (FMaxDefault - 1), (i - (FMaxDefault - 1)), 0);
    end;
  end;
end;
MaxValue muss hier aktualisiert werden.
Das ist deshalb wichtig weil alle Bitmaps > 0 (Icons) vorher gelöscht werden müssen.

Delphi-Quellcode:
  if gS.MaxValue > 0 then
  begin
    for K := 1 to gS.MaxValue do
    begin
      if gS[K].Bitmap <> 0 then
      begin
        DeleteObject(gS[K].Bitmap);
        gS[K].Bitmap := 0;
      end;
    end;
  end;
gruss

Geändert von EWeiss ( 2. Mai 2017 um 17:02 Uhr)
  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 19:59 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