AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Bilder aus Thumnails in einem Image anzeigen lassen
Thema durchsuchen
Ansicht
Themen-Optionen

Bilder aus Thumnails in einem Image anzeigen lassen

Ein Thema von spartakus · begonnen am 11. Mai 2006 · letzter Beitrag vom 4. Aug 2006
Antwort Antwort
spartakus

Registriert seit: 20. Feb 2005
22 Beiträge
 
#1

Bilder aus Thumnails in einem Image anzeigen lassen

  Alt 11. Mai 2006, 16:26
Hallo!


1.ich lade die Bilder erst auf die Scrollbox...
2.die Bilder befinden sich jetzt auf Scrollbox als Thumbs...
3.jetzt klicke ich auf einem Bild in der Scrollbox...
4.das bild dass ich angeklickt habe ,sollte (ich habe noch auf Form einer Image
Komponente) auf dem Image Kompo. angezeigt be. geladen werden ...

Das Problen ist ;

wenn ich diese Code nehme läd nur das letzte Bild von Thumbnails!
Image1.Picture.Assign(pct.Create); -------------
...wenn ich diese nehme läd jedem angeklicktes bild ,aber nicht in Orginal grösse!
 Image1.Picture.Assign(TImage(Sender).Picture); wie kann ich das Problem lösen ?
danke!

hier die kompelette Code! von DBR
_____________________________
Delphi-Quellcode:
[img]][img=http//www.sanalresim.com/rs/64589.jpg] Resim: [/url][/img]
{$R *.dfm}
 

var
  sl, gr, ab: TStringlist;
  im: array of TImage;
  pct: TPicture;
  bmp: TBitmap;


 procedure freigeben;
var x: integer;
begin
  for x := 0 to length(im) - 1 do
    im[x].free;
  im := nil;
end;



procedure TForm1.FormCreate(Sender: TObject);
begin
  pct := TPicture.create;
  bmp := TBitmap.create;
  sl := TStringlist.create;
  gr := TStringlist.create;
  ab := TStringlist.create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   freigeben;
  ab.free;
  gr.free;
  sl.free;
  pct.free;
  bmp.free;
end;

 procedure anpassen(datei: string; mass: integer;
   Image: TImage; Hintergrund, rand: TColor);
var
  faktor: double;
  fehler: boolean;
const s = 'FEHLER';
begin
  fehler := false;
  try
    pct.loadfromfile(datei);
  except
    fehler := true;
  end;
  ab.add(Inttostr(pct.width) + ' x ' + inttostr(pct.height));
  if pct.width > pct.Height then begin
    faktor := pct.height / pct.width;
    bmp.width := mass - 2;
    bmp.height := trunc(mass * faktor) - 2;
  end else begin
    faktor := pct.width / pct.height;
    bmp.height := mass - 2;
    bmp.width := trunc(mass * faktor) - 2;
  end;
  bmp.canvas.brush.color := hintergrund;
  bmp.canvas.fillrect(bmp.canvas.cliprect);
  if not fehler then
    bmp.canvas.stretchdraw(rect(0, 0, bmp.width, bmp.height), pct.graphic);
  with image.picture.bitmap do begin
    width := mass;
    height := mass;
    canvas.font.color := clred;
    canvas.pen.color := rand;
    canvas.brush.color := hintergrund;
    canvas.rectangle(0, 0, image.width, image.height);
    if fehler then
      canvas.textout((mass - canvas.textwidth(s)) div 2, (mass -
        canvas.textheight(s)) div 2, 'FEHLER') else
      canvas.draw((width - bmp.width) div 2, (height - bmp.height) div 2, bmp);
  end;
end;
//________________

  procedure suchen(pfad, filter: string);
var sr: TWin32FindData;
  h: THandle;
begin

  sl.clear;
  gr.clear;
  ab.clear;
 
    if ansilastchar(pfad) <> 'then pfad := pfad + '';
  h := FindFirstFile(PChar(pfad + '*.*'), sr);
  if h <> INVALID_HANDLE_VALUE then repeat
      if (sr.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = 0)
        and (pos(lowercase(extractfileext(sr.cFileName)), filter) > 0)
        then begin
        sl.add(pfad + sr.cFileName);
        gr.add(inttostr(round(
          (sr.nFileSizeHigh * MAXDWORD + sr.nFileSizeLow) / 1024 + 0.49)))
      end;
    until Findnextfile(h, sr) = false;
  windows.FindClose(h);
end;

 procedure TForm1.MDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  
          begin
         if button= mbleft then

       //LÄD NUR DAS LETZTE BILD VOM THUMBNAILS !IN ORGINAL GRÖSSE
     Image1.Picture.Assign(pct.Create);
           
    //läd jedem angeklicktes bild ,aber nicht in Orginal grösse!
          { Image1.Picture.Assign(TImage(Sender).Picture); }
       
          end;
          end;


procedure TForm1.Button1Click(Sender: TObject); // BILDER LADEN
 var
  abstand, groesse, nebeneinander, untereinander, x, y, z: integer;
begin
  screen.cursor := crHourglass;
  groesse := 90; { Thumbnailgröße }  
  abstand := 2;

  freigeben;
       
         suchen('', '.bmp.wmf.jpg.jpeg'); { '.bmp.emf.wmf.jpg.jpeg' }
  if sl.count > 0 then begin
    setlength(im, sl.count);
    progressbar1.max := sl.count;
    z := 0;
    nebeneinander := (scrollbox1.clientwidth - abstand) div (groesse +
      abstand); { oder frei festlegen, z.B.: nebeneinander:=20; }
    if sl.count < nebeneinander then nebeneinander := sl.count;
    untereinander := (sl.count div nebeneinander) +
      ord(sl.count mod nebeneinander > 0);
    for y := 0 to untereinander - 1 do
      for x := 0 to nebeneinander - 1 do begin
        if z < sl.count then begin
          im[z] := TImage.create(scrollbox1);
          im[z].tag := z;
          im[z].width := groesse;
          im[z].height := groesse;
          im[z].parent := scrollbox1;
          im[z].left := abstand + x * (groesse + abstand);
          im[z].top := abstand + y * (groesse + abstand);
          im[z].OnMouseDown := MDown;
          anpassen(sl[z], groesse, im[z], scrollbox1.color, clBtnShadow);
          inc(z);
          progressbar1.position := z;
        end;
      end;
    { falls "nebeneinander" nicht frei festgelegt wurde, dann z.B.: }
    scrollbox1.clientwidth := (groesse + abstand) * nebeneinander + abstand;
  end;
  progressbar1.position := 0;
  screen.cursor := crDefault;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Bilder aus Thumnails in einem Image anzeigen lassen

  Alt 11. Mai 2006, 18:14
Hi!

Wie wäre es mit

Delphi-Quellcode:

Image1.Picture.Loadfromfile(sl[(sender as TImage).Tag])
Wenn ich es auf die schnelle richtig gelesen habe...

Frank
  Mit Zitat antworten Zitat
spartakus

Registriert seit: 20. Feb 2005
22 Beiträge
 
#3

Re: Bilder aus Thumnails in einem Image anzeigen lassen

  Alt 12. Mai 2006, 22:12
danke Mavarik ,super es funktioniert!
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Bilder aus Thumnails in einem Image anzeigen lassen

  Alt 4. Aug 2006, 10:48
ich hab das auch mal getestet aber obwohl ein image1 vorhanden ist, wirds als "nicht vorhanden" angezeigt. ???
  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 12:37 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