Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Dynamisches Einbinden mehrerer Bilder in einem Image
compiler93 - Sa 11.02.12 15:09
Titel: Dynamisches Einbinden mehrerer Bilder in einem Image
Hey,
ich will ein Programm erstellen, das mehrere Bilder in ein Image lädt, ungefähr wie ein Dia-Projektor, aber ich weiß nicht mehr wie genau ich die Bilder ins Image reinlade. Laut meinen Lehrer warens drei Schritte, mir fallen aber nur die ersten beiden ein, und den Lehrer kann ich nicht fragen, da er länger Krank ist und die Datei mit den Anweisungen nicht hochgeladen hat.
Die ersten beiden Schritte müssten die hier gewesen sein (ich kann mich auch irren!):
Delphi-Quelltext
1: 2:
| Image1.Canvas.Create; Image1.Picture.LoadFromFile('1.png'); |
Schonmal vielen Dank :wink:
Moderiert von
Martok: Quote- durch Delphi-Tags ersetzt
Delete - Sa 11.02.12 15:12
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
Was passiert denn, wenn du diesen Code ausführst?
compiler93 - Sa 11.02.12 15:16
es kommt nur ne Fehlermeldung: "unbekannte Bilderweiterung"...
egal welche erweiterung ich einbinde, *.bmb, *.gif, *.png, ... nichts wird angenommen
FinnO - Sa 11.02.12 15:57
compiler93 hat folgendes geschrieben : |
| egal welche erweiterung ich einbinde, *.bmb[...] nichts wird angenommen |
versuch doch mal bmp.
compiler93 - Sa 11.02.12 16:02
FinnO hat folgendes geschrieben : |
compiler93 hat folgendes geschrieben : | | egal welche erweiterung ich einbinde, *.bmb[...] nichts wird angenommen |
versuch doch mal bmp. |
sry hatte mich vertippt, wie blöd muss man sein :oops: :oops: :oops:
DANKE :wink: :wink: :wink:
Delete - So 12.02.12 01:07
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
Ursprünglich wolltest du doch auch noch die Formate *.jpg, *.png und *.gif einbinden. Hast du diese Absicht inzwischen aufgegeben?
compiler93 - So 12.02.12 18:03
am besten wärs wenn ich auch noch *.JPG's einbinden könnte, aber so funktionierst immerhin schonmal mit einer Dateiart
auf jedenfall wäre es toll, wenn du noch was hast, aber außer nem Image fällt mir nichts ein
gif und png hatte ich nur als alternative Probiert, weil jpg nicht funktioniert hatte, nehme aber auch gern noch weitere Vorschläge an
außerdem hab ich noch das Problem, das meine Dateien im Moment immer einen speziellen namen haben müssen, weil ich nicht weiß wie ich andere Dateinamen einbinde, ohne diese vorher zu kennen. im moment müssen die Dateien alle 1.bmp, 2.bmp, ... heißen.
hier der Quelltext:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53:
| procedure p_image; begin with form1 do begin v_d:= inttostr(v_x)+'.bmp'; Image1.Canvas.Create; Image1.Picture.LoadFromFile(v_d); end; end;
procedure TForm1.Button1Click(Sender: TObject); begin v_z:= strtoint(Edit1.Text); if v_z<1 then showmessage('Bitte eine positive Anzahl eingeben!') else begin v_y:=v_z; Edit1.Enabled:=False; BitBtn3.Enabled:=True; Button1.Enabled:=False; v_x:=1; p_image; end; end;
procedure TForm1.BitBtn2Click(Sender: TObject); begin BitBtn3.Enabled:=true; v_x:= v_x-1; p_image; if v_x=1 then BitBtn2.Enabled:=false; end;
procedure TForm1.BitBtn3Click(Sender: TObject); begin if v_x=v_y then BitBtn3.Enabled:=false else begin BitBtn2.Enabled:=true; v_x:= v_x+1; p_image; if v_x=v_y then BitBtn3.Enabled:=false; end; end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_LEFT then if BitBtn2.Enabled=true then BitBtn2.Click else begin end else if Key = VK_RIGHT then if BitBtn3.Enabled=true then BitBtn3.Click; end; |
Moderiert von
Narses: Delphi-Tags hinzugefügt
Narses - So 12.02.12 18:35
Moin!
compiler93 hat folgendes geschrieben : |
| am besten wärs wenn ich auch noch *.JPG's einbinden könnte, |
Binde einfach die Unit JPEG mit ein, dann kann TImage auch JPEG-Bilder laden. :idea: ;)
compiler93 hat folgendes geschrieben : |
| außerdem hab ich noch das Problem, das meine Dateien im Moment immer einen speziellen namen haben müssen, weil ich nicht weiß wie ich andere Dateinamen einbinde, ohne diese vorher zu kennen. |
Schau dir mal Luckies
DriveTools [
http://www.delphi-forum.de/viewtopic.php?t=33882&highlight=drivetools]an, damit kann man das relativ leicht lösen. :les: :think:
cu
Narses
compiler93 - Mo 13.02.12 08:09
ok, hab jetzt bei USES noch JPEG ergänzt, dass erste Bild lädt er auch, aber wenn ich das nächste Bild laden will kommt nur diese Fehlermeldung:
gibs eigentlich eine procedure, die die Bilder automatisch skaliert? weil mit hochauflösenden Fotos hab ich im Moment noch schwierigkeiten
jaenicke - Mo 13.02.12 08:27
compiler93 hat folgendes geschrieben : |
| ok, hab jetzt bei USES noch JPEG ergänzt, dass erste Bild lädt er auch, aber wenn ich das nächste Bild laden will kommt nur diese Fehlermeldung: |
Bei welchem Code denn? Und in welcher Zeile davon?
compiler93 hat folgendes geschrieben : |
| gibs eigentlich eine procedure, die die Bilder automatisch skaliert? |
Wenn du ein TImage zur Anzeige benutzt, kannst du ein fach Stretch und Proportional auf True setzen. Ansonsten kannst du z.B. mit StretchBlt oder Canvas.StretchDraw Bilder auf eine andere Größe bringen.
Narses - Mo 13.02.12 12:05
Moin!
compiler93 hat folgendes geschrieben : |
| ok, hab jetzt bei USES noch JPEG ergänzt, dass erste Bild lädt er auch, aber wenn ich das nächste Bild laden will kommt nur diese Fehlermeldung: |
Lass mal dieses
weg, das ist unnötig. :idea:
cu
Narses
jaenicke - Mo 13.02.12 17:59
compiler93 hat folgendes geschrieben : |
Delphi-Quelltext 1:
| Image1.Canvas.StretchDraw(); | beim zweiten den Dateinamen |
Äh, ja... Dateiname --> string, Parameter --> TGraphic, sieht so aus als ob die Birne gut zum Apfel-Parameter passt...
compiler93 hat folgendes geschrieben : |
| , aber was ist dieses const Rect? |
Weißt du was die Hilfe ist? Da stehen oft hilfreiche Beschreibungen...
http://docwiki.embarcadero.com/VCL/de/Graphics.TCanvas.StretchDraw
compiler93 - Mo 13.02.12 18:58
ist ja schon gut, jetzt funktioniert es, trotzdem kein Grund gleich so genervt zu reagieren, ich hab halt noch nie mit const Rect gearbeitet, und auf die Idee bin ich in dem moment nicht gekommen, kann ja mal vorkommen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!