Autor |
Beitrag |
BM_90
      
Beiträge: 49
|
Verfasst: Fr 14.12.07 16:02
Ich muss mehrere Bilder auf einmal in mehreren TIimages öffnen, hab aber keine Ahnung, wie das geht...
außerdem muss ich bei den Bildern die Größe anpassen...
das ist der Quelltext den ich dazu jetzt schon hab, kann mir jemand verraten, in wie fern ich den umschreiben muss??
laden:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm1.AusDatei1Click(Sender: TObject); begin if not list.execute then exit; image1.Picture.LoadFromFile(list.FileName); end; |
speichern:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm1.Exportieren1Click(Sender: TObject); begin if not savepicturedialog1.execute then exit; image1.Picture.Graphic.savetoFile(list.FileName); end; |
Moderiert von Narses: Delphi-Tags hinzugefügt
|
|
mister_x
      
Beiträge: 85
Win 98, WIN 2000, WIN XP PRO
Delphi 2006
|
Verfasst: Fr 14.12.07 18:20
so kannst du die bilder laden
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:
| var Images : Array[0..100]of TImage; ImagesCount : Integer=0;
procedure TForm1.BitBtn1Click(Sender: TObject); var I : Integer; begin if OpenDialog.Execute then begin for I:=0 to OpenDialog.Files.Count-1 do if I<100 then begin Images[I] := TImage.Create(Self); Images[I].Parent := Form1; Images[I].Left := (I mod 10)*(Width div 10); Images[I].Width := Width div 10; Images[I].Height := Height div 10; Images[I].Top := Trunc(I/10)*(Width div 10);
Images[I].Stretch := true; Images[I].Proportional := true;
Images[I].Picture.LoadFromFile(OpenDialog.Files.Strings[I]);
Inc(ImagesCount); end; end; end; |
beim speichern kommts drauf an wie dus speichern willst generell
Delphi-Quelltext 1: 2: 3: 4:
| for I:=0 to ImagesCount-1 do begin Images[I].Picture.SaveToFile(Verzeichnis+'Bild['+inttostr(I)+'].bmp'); end; |
Mister_X
_________________ Der Computer ist das genialste Produkt der menschlichen Faulheit
Zuletzt bearbeitet von mister_x am Mo 17.12.07 17:22, insgesamt 3-mal bearbeitet
|
|
BM_90 
      
Beiträge: 49
|
Verfasst: Mo 17.12.07 15:05
Vieln dank für deine hilfe. warn zwar n paar kleine fehler drin, aber naja...
hab jetz im griff. hab mir das so umgefummelt, dass ich mit nem savepicturedialog in nem beliebign verzeichnis speichern kannst. hab nur noch das problem, dass ich dass nich immer mit speichern unter.. machn will. will dass der die automatisch unter nem vorher per edit eingegebenen namen mit durchnummerierung die datein in nem bestimmtn verzeichnis speichert. hab außerdem noch das problem, dass ich im savepicturedialog immer nur eine datei markiern kann. wie kann ich das ändern?
kannste mir da vllt nochmal hefn??
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Mo 17.12.07 17:07
BM_90 hat folgendes geschrieben: | will dass der die automatisch unter nem vorher per edit eingegebenen namen mit durchnummerierung die datein in nem bestimmtn verzeichnis speichert. |
Wo genau liegt das Problem?
BM_90 hat folgendes geschrieben: | hab außerdem noch das problem, dass ich im savepicturedialog immer nur eine datei markiern kann. wie kann ich das ändern? |
Aus welchem Grund sollte man mehrere Dateinamen über den TSavePictureDialog festlegen können?
Lg, Martin
PS: Du solltest dir etwas mehr Mühe beim schreiben deiner Nachrichten geben... die sind nämlich sehr schwer zu lesen!
_________________ Ein Nutzer der Ecke
|
|
mister_x
      
Beiträge: 85
Win 98, WIN 2000, WIN XP PRO
Delphi 2006
|
Verfasst: Mo 17.12.07 17:25
BM_90 hat folgendes geschrieben: | Vieln dank für deine hilfe. warn zwar n paar kleine fehler drin, aber naja...
hab jetz im griff. hab mir das so umgefummelt, dass ich mit nem savepicturedialog in nem beliebign verzeichnis speichern kannst. hab nur noch das problem, dass ich dass nich immer mit speichern unter.. machn will. will dass der die automatisch unter nem vorher per edit eingegebenen namen mit durchnummerierung die datein in nem bestimmtn verzeichnis speichert. hab außerdem noch das problem, dass ich im savepicturedialog immer nur eine datei markiern kann. wie kann ich das ändern?
kannste mir da vllt nochmal hefn?? |
wo warn da fehler drin???
ich hab doch oben geschrieben wie du speichern kannst wo ist da dein problem???
un bei deiner anderen frage schließ ich mich ma Martin 1966 an
_________________ Der Computer ist das genialste Produkt der menschlichen Faulheit
|
|
BM_90 
      
Beiträge: 49
|
Verfasst: Mo 17.12.07 17:33
naja, ich will halt mehrere bilder auf einmal öffnen...
un wegen der fehler: beim kopieren von dem quelltext, hat der son [color] mit reingemacht, natürlich hat sich delphi deswegen beim compilieren beschwert.
und ich wundere mich... schön blöd
|
|
mister_x
      
Beiträge: 85
Win 98, WIN 2000, WIN XP PRO
Delphi 2006
|
Verfasst: Mo 17.12.07 17:36
BM_90 hat folgendes geschrieben: | naja, ich will halt mehrere bilder auf einmal öffnen...
un wegen der fehler: beim kopieren von dem quelltext, hat der son [color] mit reingemacht, natürlich hat sich delphi deswegen beim compilieren beschwert.
und ich wundere mich... schön blöd |
ach es geht um den opendialog
gehste mal unter opendialog.options.allowmultiselect:=true;
Mister_X
_________________ Der Computer ist das genialste Produkt der menschlichen Faulheit
|
|
BM_90 
      
Beiträge: 49
|
Verfasst: Di 18.12.07 11:13
Vielen Dank mister_x!! Haut astrein hin. Jetz habe ich aber leider ein neues Problem. Wenn ich, sagen wir mal 5 Bilder öffne, soll er mir die Biler nebeneinander anordnen. Das macht er zwar, wenn ich jetzt aber nochträgllich nochmal welche öffne, läd der die zwar auch, legt sie aber über die vorher geladenen Bilder. Wie mache ich meinem Programm klar, dass er, wenn schon Bilder angezeigt werden, die neuen Bilder daneben anordnen soll??
Und mein zweites Problem ist, dass ich die Bilder per mausklick untendrunter nocheinmal vergrößert darstellen will, das wäre ja im Prinzip nicht das Problem, weil die TImages aber erst beim Laden der Bilder erstellt erstellt werden, habe ich leider nicht die geringste Ahnung, wie das geht. Ich hab es schonmal mit OnClick versucht, aber irgendwie bekomme ich es nicht auf die Reihe.
Ich weiß, ich beanspruche dich ganz schön, aber du scheinst wirklich Ahnung zu haben. Naja und das muss ich nunmal ausnutzen...
VIELEN DANK!
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Di 18.12.07 14:06
BM_90 hat folgendes geschrieben: | Vielen Dank mister_x!! Haut astrein hin. Jetz habe ich aber leider ein neues Problem. Wenn ich, sagen wir mal 5 Bilder öffne, soll er mir die Biler nebeneinander anordnen. Das macht er zwar, wenn ich jetzt aber nochträgllich nochmal welche öffne, läd der die zwar auch, legt sie aber über die vorher geladenen Bilder. Wie mache ich meinem Programm klar, dass er, wenn schon Bilder angezeigt werden, die neuen Bilder daneben anordnen soll?? |
Am besten so:
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:
| var Images : Array[0..100]of TImage; ImagesCount : Integer=0;
procedure TForm1.BitBtn1Click(Sender: TObject); var I : Integer; begin if OpenDialog.Execute then begin for I:=0 to OpenDialog.Files.Count-1 do if ImagesCount<100 then begin Images[ImagesCount] := TImage.Create(Self); Images[ImagesCount].Parent := Form1; Images[ImagesCount].Left := (I mod 10)*(Width div 10); Images[ImagesCount].Width := Width div 10; Images[ImagesCount].Height := Height div 10; Images[ImagesCount].Top := Trunc(I/10)*(Width div 10);
Images[ImagesCount].Stretch := true; Images[ImagesCount].Proportional := true;
Images[ImagesCount].Picture.LoadFromFile(OpenDialog.Files.Strings[I]);
Inc(ImagesCount); end; end; end; |
BM_90 hat folgendes geschrieben: | Und mein zweites Problem ist, dass ich die Bilder per mausklick untendrunter nocheinmal vergrößert darstellen will, das wäre ja im Prinzip nicht das Problem, weil die TImages aber erst beim Laden der Bilder erstellt erstellt werden, habe ich leider nicht die geringste Ahnung, wie das geht. Ich hab es schonmal mit OnClick versucht, aber irgendwie bekomme ich es nicht auf die Reihe. |
Warum sollte das da ein Problem geben? Zeig mal dein Sourcecode Ausschnitt wo du das im OnClick ausprobiert hast.
Lg Martin
_________________ Ein Nutzer der Ecke
|
|
BM_90 
      
Beiträge: 49
|
Verfasst: Di 18.12.07 17:16
Dankeschön, aber genauso sieht mein Quelltext auch aus...
Wenn ich ein paar Bilder öffne (zB 3), öffnet der die 3 Bilder. Gehe ich dann nochmal auf öffnen und öffne wieder 3 Bilder (ist eigentlich egal wie viele), legt er die neuen einfach über die anderen, un nicht einfach daneben...
Ach ja: wegen dem OnClick. Davon hab ich nicht wirklich Ahnung. War nur so ein Versuch auf gut Glück. Ich hab dann wieder alles über den Haufen geschmissen, weil das nicht funktioniert hat...
|
|
mister_x
      
Beiträge: 85
Win 98, WIN 2000, WIN XP PRO
Delphi 2006
|
Verfasst: Di 18.12.07 17:32
BM_90 hat folgendes geschrieben: | Dankeschön, aber genauso sieht mein Quelltext auch aus...
Wenn ich ein paar Bilder öffne (zB 3), öffnet der die 3 Bilder. Gehe ich dann nochmal auf öffnen und öffne wieder 3 Bilder (ist eigentlich egal wie viele), legt er die neuen einfach über die anderen, un nicht einfach daneben...
Ach ja: wegen dem OnClick. Davon hab ich nicht wirklich Ahnung. War nur so ein Versuch auf gut Glück. Ich hab dann wieder alles über den Haufen geschmissen, weil das nicht funktioniert hat... |
mach einfach
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.BitBtn1Click(Sender: TObject); var I , L : Integer; begin L := ImagesCount; if OpenDialog.Execute then begin for I:=L to L+OpenDialog.Files.Count-1 do if ImagesCount<100 then begin ... Images[ImagesCount].Picture.LoadFromFile(OpenDialog.Files.Strings[I-L]); Inc(ImagesCount); end; end; end; |
Mister_X
_________________ Der Computer ist das genialste Produkt der menschlichen Faulheit
|
|
BM_90 
      
Beiträge: 49
|
Verfasst: Di 18.12.07 17:47
SUPER!!!
Das gibt 2 Daum nach oben!
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Mi 19.12.07 14:00
_________________ Ein Nutzer der Ecke
|
|
BM_90 
      
Beiträge: 49
|
Verfasst: Mi 19.12.07 14:17
Das ist aber im Prinzip das selbe, oder??
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Mi 19.12.07 14:23
Äh.. Die Variable I (welche lokal definiert ist) und die Variable ImagesCount (welche global definiert ist) haben doch völlig unterschiedliche Aufgaben, oder?
_________________ Ein Nutzer der Ecke
|
|
BM_90 
      
Beiträge: 49
|
Verfasst: Mi 19.12.07 14:47
Ach ich weiß auch nicht, kann schon sein...
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Mi 19.12.07 15:30
Soll das jetzt ein Scherz sein? Wenn du keine Lust mehr hast dann sag bescheid. Dann versuche ich es erst gar nicht dir zu helfen.
_________________ Ein Nutzer der Ecke
|
|
BM_90 
      
Beiträge: 49
|
Verfasst: Do 03.01.08 14:31
Hä?? Wie kommste denn jetz da drauf?
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 03.01.08 14:40
Moin!
BM_90 hat folgendes geschrieben: | Hä?? Wie kommste denn jetz da drauf? |
Das ist ganz leicht: du machst deutlich den Eindruck, dass es dir nicht wichtig ist (hier was zu lernen).  Das man da schonmal so Reaktionen wie von Martin1966 "erntet", ist wohl normal.
Vorsorglich: bitte beim Thema bleiben.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
BM_90 
      
Beiträge: 49
|
Verfasst: Do 03.01.08 16:41
tut mir ja leid, ich bemühe mich ja wie sau, wenn ich dann aber trotzdem nicht weiter komme, verliere ich auch irgendwann die lust. außerdem hab ich selber kein internet, schreibe deshalb manchmal ewigkeiten nicht zurück...
|
|