AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array of Tpicture?

Ein Thema von DerMario · begonnen am 4. Sep 2009 · letzter Beitrag vom 15. Okt 2014
Antwort Antwort
Kuehter

Registriert seit: 14. Okt 2014
59 Beiträge
 
Delphi 7 Professional
 
#1

AW: Array of Tpicture?

  Alt 15. Okt 2014, 08:06
Ok das funktioniert jetzt mit den Zeigern danke für den Tipp

hoffe ich geh euch nicht zu sehr auf den zeiger weil ich habe noch eine weitere frage denn die bilder die geladen werden werden nicht angezeigt

warum ?
nicht nur Delphi sondern auch Java und C# formen die Welt
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#2

AW: Array of Tpicture?

  Alt 15. Okt 2014, 08:16
Wo sollen die denn auch angezeigt werden? Du hast da irgendwelche globalen Variablen (allerdings ohne das Var-Schlüsselwort, eigentlich wäre das ja dann noch eine Tydeklaration, dass der Compiler da nicht meckert ) definiert, die zwar vom Typ TImage sind, aber nirgends erzeugt werden. Und selbst wenn sie erzeugt werden, musst Du immer noch einen Parent zuweisen, der für die Darstellung zuständig sein soll. Dieser Parent muss vom Typ TWinControl sein, also ein Festerhandle haben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Kuehter

Registriert seit: 14. Okt 2014
59 Beiträge
 
Delphi 7 Professional
 
#3

AW: Array of Tpicture?

  Alt 15. Okt 2014, 08:21
ok ich wollte mir das einfacher machen die bilder erkennt er sofort
Image1.Picture.LoadFromFile('Symbolik_1.jpg'); wenn ich das schreibe und zeigt sie auch direkt an
nur ich wollte die in ein array haben das unsortiert ist damit ich mit den bildern an sich noch arbeiten kann nur wenn ich die jetzt anzeigen lasse will habe ich keine ahnung wie ich das machen soll

Delphi-Quellcode:
type
  Tintegerarray = array of integer;
  Tpicarray = array of Timage;

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] := TImage.Create(nil);
    Result[counter].Picture.LoadFromFile('Symbolik_' + inttoStr(counter) + '.jpg');
  end;

  for counter := Low(result) to high(Result) do
  begin
    j := trunc(random(high(Result)))+Low(result);
    t := trunc(random(high(Result)))+Low(result);

    i := t;
    Result[t]:= Result[j];
    Result[j]:= Result[i];
  end;

end;


procedure TForm1.Button1Click(Sender: TObject);
var
  rec : TIntegerarray;
  caller : Tpicarray;

begin
    //Image1.Picture.LoadFromFile('Symbolik_1.jpg');
   rec := bedingung ;
   caller := picload;

   Image1 := Caller[0];
   Image2 := caller[2];

end;
dachte die anzeige kann man so machen wie das mit den arrays oder habe ich mich da getäuscht?
nicht nur Delphi sondern auch Java und C# formen die Welt
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#4

AW: Array of Tpicture?

  Alt 15. Okt 2014, 08:28
Du erzeugst die Images ja auch dynamisch, aber ohne ihnen einen Parent zuzuweisen. Wenn es immer dieselbe Anzahl von Images sein soll, wäre es doch einfacher, sie wie gewohnt auf das Formular zu klatschen und nur die anzuzeigenden Grafiken zufällig aus Deinem Array zuzuweisen. Übrigens solltest Du beachten, dass, wenn Du Dein Array freigibst bzw. die Dimensionen änderst, die enthaltenen Grafiken noch lange nicht freigegeben werden, Du fängst Dir also u.U. Speicherlecks ein. Ich würde an Deiner Stelle daher kein dynamisches Array, sondern eine TObjectList verwenden, da besteht diese Gefahr nicht, solange Du OwnsObjects nicht auf false stellst.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#5

AW: Array of Tpicture?

  Alt 15. Okt 2014, 08:32
Ein TImage ist ein Steuerelement.
Ein TPicture ist ein Klasse die als Container für eine Grafik (TGraphic) in beliebigem Format dient.
Delphi-Quellcode:
type
  TPicArray = array of TPicture;
{...}
  {Die Grafik aus caller[2] in Image2.Picture übernehmen und anzeigen.}
  Image2.Picture.Assign(caller[2]);
Du musst nicht das Steuerelement austauschen, sondern nur die angezeigte Grafik.

Beim Beenden des Formulars nicht vergessen die einzelnen Objekte im Array wieder freizugeben.
  Mit Zitat antworten Zitat
Kuehter

Registriert seit: 14. Okt 2014
59 Beiträge
 
Delphi 7 Professional
 
#6

AW: Array of Tpicture?

  Alt 15. Okt 2014, 08:37
ok danke blup ich probiere es sofort aus
nicht nur Delphi sondern auch Java und C# formen die Welt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Array of Tpicture?

  Alt 15. Okt 2014, 08:55
Zitat:
habe nur bei dem hier immer einen stack overflow
Erstmal hättest du hier einen Haltepunkt auf die Fehlerzeile Edit1.Text := InttoStr(rec[1]); machen sollen und dort mit dem Debugger nachschauen was im rec drin steckt.

Alternativ kann man in den Projektoptionen auch einfach mal die Bereichsprüfung aktivieren.
Diese baut dann Prüfcode in alle Array-Zugriffe und prüft, ob man auf gültige/existierende Indize zugreift.
Oftmals kann man Lösungswege von einem Problem auch bei anderen Problemen anwenden.
Ein Therapeut entspricht 1024 Gigapeut.
  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 00:21 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