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
Seite 7 von 7   « Erste     567   
EWeiss
(Gast)

n/a Beiträge
 
#61

AW: die aufzurufende funktion wurde vom linker entfernt

  Alt 2. Mai 2017, 16: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
 
#62

AW: die aufzurufende funktion wurde vom linker entfernt

  Alt 2. Mai 2017, 16: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 16:47 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#63

AW: die aufzurufende funktion wurde vom linker entfernt

  Alt 2. Mai 2017, 17: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 18:02 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 7 von 7   « Erste     567   


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 17:17 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