Autor Beitrag
BM_90
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 49



BeitragVerfasst: 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:

ausblenden 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:

ausblenden 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 user profile iconNarses: Delphi-Tags hinzugefügt
mister_x
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 85

Win 98, WIN 2000, WIN XP PRO
Delphi 2006
BeitragVerfasst: Fr 14.12.07 18:20 
so kannst du die bilder laden

ausblenden 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

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 49



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Mo 17.12.07 17:07 
user profile iconBM_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?

user profile iconBM_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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 85

Win 98, WIN 2000, WIN XP PRO
Delphi 2006
BeitragVerfasst: Mo 17.12.07 17:25 
user profile iconBM_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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 49



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 85

Win 98, WIN 2000, WIN XP PRO
Delphi 2006
BeitragVerfasst: Mo 17.12.07 17:36 
user profile iconBM_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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 49



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Di 18.12.07 14:06 
user profile iconBM_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:
ausblenden volle Höhe 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:
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;


user profile iconBM_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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 49



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 85

Win 98, WIN 2000, WIN XP PRO
Delphi 2006
BeitragVerfasst: Di 18.12.07 17:32 
user profile iconBM_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

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 49



BeitragVerfasst: Di 18.12.07 17:47 
SUPER!!!
Das gibt 2 Daum nach oben!
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Mi 19.12.07 14:00 
user profile iconBM_90 hat folgendes geschrieben:
Dankeschön, aber genauso sieht mein Quelltext auch aus...

Nein, sieht er nicht!

ausblenden Deine Version
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
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;


ausblenden Meine Version
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
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;


Siehst du den Unterschied?

Lg, Martin

_________________
Ein Nutzer der Ecke ;-)
BM_90 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 49



BeitragVerfasst: Mi 19.12.07 14:17 
Das ist aber im Prinzip das selbe, oder??
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 49



BeitragVerfasst: Mi 19.12.07 14:47 
Ach ich weiß auch nicht, kann schon sein...
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 49



BeitragVerfasst: Do 03.01.08 14:31 
Hä?? Wie kommste denn jetz da drauf?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 03.01.08 14:40 
Moin!

user profile iconBM_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). :nixweiss: Das man da schonmal so Reaktionen wie von user profile iconMartin1966 "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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 49



BeitragVerfasst: 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...