Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Image in Obejctlist laden (https://www.delphipraxis.net/182306-image-obejctlist-laden.html)

Kuehter 16. Okt 2014 11:07

Image in Obejctlist laden
 
ist das Möglich ein Image in eine ObjectList zu laden ?
Habe das jetzt so geschrieben wie ich mir das gedacht habe.

Delphi-Quellcode:
function Imageloader: TObjectList;
begin
    Result.Create;
    Result.Add(Image1);
    Result.Add(Image2);
    Result.Add(Image3);
    Result.Add(Image4);
    Result.Add(Image5);
    Result.Add(Image6);
    Result.Add(Image7);
    Result.Add(Image8);
    Result.Add(Image9);
    Result.Add(Image10);
    Result.Add(Image11);
    Result.Add(Image12);
    Result.Add(Image13);
    Result.Add(Image14);
    Result.Add(Image15);
    Result.Add(Image16);
    Result.Add(Image17);
    Result.Add(Image18);
    Result.Add(Image19);
    Result.Add(Image20);
    Result.Add(Image21);
    Result.Add(Image22);
    Result.Add(Image23);
    Result.Add(Image24);
    Result.Add(Image25);
    Result.Add(Image26);
    Result.Add(Image27);
end;
es war leider nicht von Erfolg gekrönt worden vielleicht habe ihr einen bessere Idee oder wisst eine Lösung zu meinem Dilemmer

bcvs 16. Okt 2014 11:14

AW: Image in Obejctlist laden
 
probier mal
Delphi-Quellcode:
Result:=TObjectList.Create;

mkinzler 16. Okt 2014 11:24

AW: Image in Obejctlist laden
 
Delphi-Quellcode:
Result := TObjectList.Create;

Kuehter 16. Okt 2014 12:02

AW: Image in Obejctlist laden
 
ne hat auch nichts gebracht der sagt immer noch

Undefinierter Bezeichner 'Image1'

mkinzler 16. Okt 2014 12:04

AW: Image in Obejctlist laden
 
Gibt es den Image1 ff. als globales Objekt?

Kuehter 16. Okt 2014 12:07

AW: Image in Obejctlist laden
 
Die sind doch schon Globale Objekte oder?

und wenn nicht wie bekommt man globale objekte?

Also in der Type unter den uses sind die ja alle drin das ist für mich global

Blup 16. Okt 2014 12:18

AW: Image in Obejctlist laden
 
Image1..Image27 sind doch Komponenten, die hängen nicht einfach im leeren Raum sondern gehören zu einem Formular.
Und nur Methoden des Formulars sollten direkt darauf zugreifen:
Delphi-Quellcode:
function TForm1.Imageloader: TObjectList;
begin
{...}
  Result.Add(Image1);
{...}
end;

// das geht zwar auch, ist aber schlechter Stil
function Imageloader: TObjectList;
begin
{...}
  Result.Add(Form1.Image1);
{...}
end;

mkinzler 16. Okt 2014 12:20

AW: Image in Obejctlist laden
 
Die werden auf einem Formular liegen, dann gehören diese auch zu diesem.
Mach aus der (freien) Prozedur eine Methode des Formulars.

Btw. Dir scheinen einige Grundlagen zu objektorientiertem Programmierung ( sind c+ und c++ nicht objektorientiert?) und zu Delphi im Speziellen zu fehlen. Vielleicht solltest Du Deine Wissenslücken in dieser Richtung erst einmal schliessen.

Kuehter 16. Okt 2014 12:23

AW: Image in Obejctlist laden
 
ich sage es eher so ich habe nicht mehr daran gedacht die in die Form einzubinden, bin länger aus Delphi raus was wie es schien nicht gut getan hat. :oops:

es hat funktioniert vielen dank

Kuehter 16. Okt 2014 12:46

AW: Image in Obejctlist laden
 
Jetzt noch mal eine ganz dumme Frage

Wie kann ich den jetzt an die Eigenschaften von Image ran kommen?
denn die Images sind jetzt ja in einer ObjectList geladen, jedoch brauche ich von die noch im Bilder aufzurufen.

Bsp.

Delphi-Quellcode:
Image1.Picture.LoadfromFile('*.*')
nur jetzt hat ich ja ne ObjectList habe es mir leider zu leicht vorgestellt nur ich dachte man kann mit

Delphi-Quellcode:
 B:ImageLoader.Items[1]
B.Loadfromfile...
weiter machen

mkinzler 16. Okt 2014 12:51

AW: Image in Obejctlist laden
 
Du musst auf den entsprechenden Typ Casten.

Kuehter 16. Okt 2014 13:00

AW: Image in Obejctlist laden
 
Wäre das so Richtig?

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
type
    Allrounder = TImage;

var
    rec : TIntegerarray;
  // caller : Tpicarray;
    saferend: TByteDynArray;
    firstIcon: Tstringarray;
    counter: integer;
    testvariable : TObjectlist;


begin

   SetLength(saferend,3);
   rec := bedingung;
   firstIcon := Symbolspeicher;
       
Allrounder := TImage(Imageloader.Items[0]);
Allrounder.Picture.LoadFromFile(firstIcon[0]);

end;

mkinzler 16. Okt 2014 13:07

AW: Image in Obejctlist laden
 
Grundsätzlich ja. Allerdings bergen harte Casts einige Gefahren für AV. Man muss sich sicher sein, dass das Objekt wirklich von diesem Typ ist. Wenn Du aber nur Imgaes in diesem Typ hast, kann man das so machen, wobei sich mir dann die Frage aufdrängt, warum man diese dann nicht als Liste mit Images verwaltet, sondern als TObject.

Kuehter 16. Okt 2014 13:10

AW: Image in Obejctlist laden
 
du meinst ImageList, habe ich schon versucht, die Grafik verzieht da mega und die werden als icon ausgegen. die bilder sind dann zu klein die haben ein Standart von 81 zu 81.

Aber wenn du weißt wie es geht ich lasse mich gerne belehren.
Dafür frage ich hier ja auch :thumb:

mkinzler 16. Okt 2014 13:17

AW: Image in Obejctlist laden
 
man kann dort einstellen, wie groß die Images sein sollen.
Ich dachte aber eher an eine List mit Images oder noch einfacher einem (dynamischen) Array.

Kuehter 16. Okt 2014 13:20

AW: Image in Obejctlist laden
 
Delphi-Quellcode:
 function picload: Tpicarray;

var counter: integer;
    i,j,t: integer;

begin
  SetLength(result,9);

  for counter := Low(result) to high(Result) do
  begin
    Result[counter] := TPicture.Create;
    Result[counter].LoadFromFile('Symbolik_' + inttoStr(counter) + '.jpg');
  end;
habe ich schon versucht das Problem ist ich kann das anders besser gebrauchen.

aus irgend einen grund funktioniert das mit dem Allrounder nicht der meint zu mir

[Fehler] Unit1.pas(303): Der linken Seite kann nichts zugewiesen werden

[Fehler] Unit1.pas(303): Inkompatible Typen: 'Class reference' und 'TImage'

Kuehter 16. Okt 2014 13:39

AW: Image in Obejctlist laden
 
Könntest du mir bitte sagen wir ich TImage1-27 in ein Array bekomme
weil, Variablen usw ist mir klar und ich weiß auch wie ich ein Image Array erzeuge. Aber die Objekte an sich in ein Array zu packen ist mir in Delphi fremd


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:49 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