Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi bei klick auf bild dieses neu in originalgroesse oeffnen (https://www.delphipraxis.net/144907-bei-klick-auf-bild-dieses-neu-originalgroesse-oeffnen.html)

mijozi 19. Dez 2009 12:35


bei klick auf bild dieses neu in originalgroesse oeffnen
 
hallo zusammen -

folgendes problem:

ich habe ein kleines image, in das eine art vorschaubild eines jpg-bildes geladen wird. soweit, so gut. wenn der user nun jedoch auf dieses image draufklickt, soll sich screen-mittig ein neues formular oeffnen, das groessentechnisch angepasst an die originalgroesse des jpg-bildes ein image enthaelt, das wiederum das jpg-bild enthaelt - eben in originalgroesse. groesse des images und des formulars muessen also dynamisch an die jpg-bildgroesse, welche auszulesen ist, angepasst und screenmittig platziert werden.
damit scheine ich z.z. ueberfordert. :-) wer vermag mir mit code zu helfen?

beste gruesse,
mijozi.

ap_computers 19. Dez 2009 13:01

Re: bei klick auf bild dieses neu in originalgroesse oeffnen
 
Machs am besten so:

Delphi-Quellcode:
procedure TForm1.Image1Click(Sender: TObject);
begin
  Form2.Image1.Picture:= Image1.Picture;
  Form2.Image1.Left:= 0;
  Form2.Image1.Top:= 0;
  Form2.Image1.AutoSize:= true;
  Form2.BorderStyle:= bsNone; // Formular ohne Taskleiste
  Form2.AutoSize:= true;
  Form2.Position:= poScreenCenter;
  Form2.Visible:= true;
  Form1.Enabled:= false;
end;
Auf Form2 setzt du ein TImage und auf deine MainForm (oder Form1) erzeugst du die Image1Click-Methode.

Delphi-Quellcode:
procedure TForm2.Image1Click(Sender: TObject);
begin
  Form1.Enabled:= true;
  Form2.Visible:= false;
end;
Auf der Form2 erzeugst du für dieses Image wieder eine Image1Click-Methode, damit du später wieder auf das Hauptformular kommst.

Progman 19. Dez 2009 13:07

Re: bei klick auf bild dieses neu in originalgroesse oeffnen
 
Als Anregung:
Du setzt auf das Form, das die große Anzeige bewerkstelligen soll, ein TImage. Positionierst es auf 0,0 (obere linke Ecke) und stellst die Eigenschaft Autosize auf True.
Nach dem Laden des Bildes (Image1.Picture.LoadfromFile('irgendwas.jpg')) setzt du die Abmessungen des Forms auf die jetzigen neuen Abmessungen des Bildes (Form1.ClientWidth:=Image1.Width; Form1.ClientHeight:=Image1.Heigh;).
So hast du schonmal die Größe des Forms dem Bild angepasst.
Dann noch Form1.Position:=poScreenCenter und es ist zentriert.
Das wäre eine Variante, wie man das bewerkstelligen kann.

Edit: Ups, da war jemand schneller :)

mijozi 19. Dez 2009 17:24

Re: bei klick auf bild dieses neu in originalgroesse oeffnen
 
danke, jungs, habe es nun folgendermassen geloest:

Delphi-Quellcode:
  { Einstellungen zu Formular FormBild und dem dazugehoerigen Image vornehmen }
  FormBild.AutoSize := True;
  FormBild.Position:= poScreenCenter;
  FormBild.ImgBildOriginalgroesse.AutoSize := True;
  FormBild.ImgBildOriginalgroesse.Top := 0;
  FormBild.ImgBildOriginalgroesse.Left := 0;
  FormBild.ImgBildOriginalgroesse.Picture := ImgBild.Picture;
  { Bildformular aufrufen }
  FormBild.ShowModal;
ciao,
mijozi.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:10 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