AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Mehrere TImages mit einer Procedure erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere TImages mit einer Procedure erstellen

Ein Thema von Benni0811 · begonnen am 3. Okt 2016 · letzter Beitrag vom 11. Okt 2016
Antwort Antwort
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.538 Beiträge
 
Delphi 12 Athens
 
#1

AW: Mehrere TImages mit einer Procedure erstellen

  Alt 3. Okt 2016, 21:12
statt einem Array

Delphi-Quellcode:
type
  TMyImagesArray = array of TImages; // TMyImagesArray = TArray<TImages>;

function GibMirWasDasGarantiertInEinemSpeicherleckEndet: TMyImagesArray;
// oder
procedure GibMirWasDasGarantiertInEinemSpeicherleckEndet(var ImagesList: TMyImagesArray);
Besser eine Liste mit OwnsObjects=True
Delphi-Quellcode:
var
  Liste: TObjectList<TImages>;

procedure GibMirWas(ImagesList: TObjectList<TImages>);

PS: Gibt es kein 2DBox Box2D mehr im GetIt?
Bei Google suchendelphi 2d game engine

[edit] Wo kommt Luckie plötzlich her
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 3. Okt 2016 um 21:14 Uhr)
  Mit Zitat antworten Zitat
Benni0811

Registriert seit: 26. Sep 2016
25 Beiträge
 
Delphi 10.1 Berlin Starter
 
#2

AW: Mehrere TImages mit einer Procedure erstellen

  Alt 4. Okt 2016, 17:44
Danke für die Antworten, ich habe jetzt eine Objectlist mit verschiedenen Bildern. Ich habe auch herausgefunden, dass man die Bilder mit der Funktion GetItem aufrufen kann. Wie Kombiniere ich das jetzt mit der Erstellung neuer Bilder mit Einer Stringvariable als Bildnamen und unterschiedlichen Koordinaten?
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#3

AW: Mehrere TImages mit einer Procedure erstellen

  Alt 4. Okt 2016, 17:59
Hallöle...
Schau dir mal TDictiorary bzw. TObjectDictonary an. Dann macht du dir eine Datenklasse mit dem Bild und den Eigenschaften welche du möchtest. Dann hast du einen KEY welcher das Bild identifiziert... fertsch.
http://docwiki.embarcadero.com/Libra...jectDictionary

Beim Arbeiten mit Listen kannst über den Index zugreifen. Bei generischen Listen kriegst du das entsprechende Objekt zurück.

Arbeite dich mal durch. Wenn du fragen hast kann ich notfalls ein Beispiel machen.

Geändert von haentschman ( 4. Okt 2016 um 18:17 Uhr)
  Mit Zitat antworten Zitat
Benni0811

Registriert seit: 26. Sep 2016
25 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

AW: Mehrere TImages mit einer Procedure erstellen

  Alt 5. Okt 2016, 13:10
Okay ich habe folgende Fragen:

Ich habe mir eine Klasse erstellt mit Eigenschaften des Bilds(Mithilfe von Google). Die sieht so aus:
Code:
type
    TBild = Class
    private
      x,y,Width,Height:Integer;
      Name:String;
    public
      Constructor Init(x,y,Width,Height:Integer; Name:String);
End;
Wie kann ich dem Bild eine Bitmap zuweisen?
Wie übertrage ich die Daten auf ein neues Bild?
Ist die Klasse überhaupt richtig?

Und wie Kombiniere ich das ganze mit der Objectlist?

Wie du siehst bin ich damit etwas überfordert, ich wäre dir für ein kleines Beispiel sehr dankbar.

Edit: Habe gerade gemerkt, dass beim kompilieren die Fehlermeldung: "[dcc32 Fehler] Unit1.pas(14): E2065 Ungenügende Forward- oder External-Deklaration: 'TBild.Init'" erscheint.

Geändert von Benni0811 ( 5. Okt 2016 um 13:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#5

AW: Mehrere TImages mit einer Procedure erstellen

  Alt 5. Okt 2016, 13:31
Hallo...

Knapp daneben...

Ich zeige es anhand eines Beispieles:
Delphi-Quellcode:
TBlubb = class // der Klassenname ist egal
  private
    FImageContent: TBitmap;
    FImageHeight: Integer;
    FImageName: string;
    FImageWidth: Integer;
  public
    property ImageName: string read FImageName write FImageName; // der Name des Bildes für z.b. die Anzeige etc.
    property ImageContent: TBitmap read FImageContent write FImageContent; // das eigentliche Bild incl. der Originalhöhe etc.
    property ImageHeight: Integer read FImageHeight write FImageHeight; // Höhe des Bildes vom Original abweichend -> muß gesetzt werden
    property ImageWidth: Integer read FImageWidth write FImageWidth; // Breite des Bildes vom Original abweichend -> muß gesetzt werden
    // und so weiter
  end;
Du mußt dir das Tutorial aus dem DT anschauen. Du mußt lernen was Klassen sind, was Propertys sind und wie man das verwendet. Sonst kommst du auf keinen grünen Zweig.
https://www.delphi-treff.de/tutorial...phi-crashkurs/ ...Klassen ab Seite 8

Wenn du das verstanden hast, können wir mit der Objectliste weitermachen.
PS: Wenn du Klassen verstanden hast, wirst du auch die Vorteile von Klassen erkennen.

Geändert von haentschman ( 5. Okt 2016 um 13:40 Uhr)
  Mit Zitat antworten Zitat
Benni0811

Registriert seit: 26. Sep 2016
25 Beiträge
 
Delphi 10.1 Berlin Starter
 
#6

AW: Mehrere TImages mit einer Procedure erstellen

  Alt 10. Okt 2016, 16:08
Ich habe den Crashkurs jetzt gelesen und außerdem der Klasse die Eigenschaften ImageTop und ImageLeft hinzugefügt:
Delphi-Quellcode:
TBild = Class
    private
      FImageContent: TBitmap;
      FImageHeight: Integer;
      FImageName: string;
      FImageWidth: Integer;
      FImageTop: Integer;
      FImageLeft: Integer;
    public
      property ImageName: string read FImageName write FImageName;
      property ImageContent: TBitmap read FImageContent write FImageContent;
      property ImageHeight: Integer read FImageHeight write FImageHeight;
      property ImageWidth: Integer read FImageWidth write FImageWidth;
      property ImageTop: Integer read FImageTop write FImageTop;
      property ImageLeft: Integer read FImageLeft write FImageLeft;
    End;
Außerdem habe ich in einer Procedure den Eigenschaften verschiedene Werte zugewiesen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var Test:TBild;
begin
    Key:='Feld'+IntToStr(Feldx)+','+IntToStr(Feldy);
    Test:=TBild.Create;
    Test.FImageName:=Key;
    Test.FImageHeight:=Feldsize;
    Test.FImageWidth:=Feldsize;
    Imagelist1.GetBitmap(0,Test.FImageContent);
end;
Feldx und Feldy sind Variablen zur bestimmeug der Position des Feldes, Feldsize ist die Konstante die die Größe der Felder festlegt.

Wie kombiniere ich das jetzt mit der TObjectlist?
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#7

AW: Mehrere TImages mit einer Procedure erstellen

  Alt 10. Okt 2016, 16:12
Wie kombiniere ich das jetzt mit der TObjectlist?
Also ohne Generics (ja, haut mich), müsstest du jetzt eine TObjectList irgendwo erstellen und sie füllen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 MeineObjectList: TObjectList;
 Test: TBild;
begin
 MeineObjectList := TObjectList.Create;

 Key := 'Feld'+IntToStr(Feldx)+','+IntToStr(Feldy);
 Test := TBild.Create;
 Test.FImageName:=Key;
 Test.FImageHeight:=Feldsize;
 Test.FImageWidth:=Feldsize;
 Imagelist1.GetBitmap(0,Test.FImageContent);

 MeineObjectList.Add(Test);

 // Irgendwo musst du dann auch die ObjectListe wieder freigeben.
end;
Ich habe das jetzt nicht getestet aber das müsste doch eigentlich so funktionieren, oder?
  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 10:01 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