Autor Beitrag
keshia
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 14.10.02 10:58 
:roll: Hallo,

ich möchte einen Bildauschnitt in einem Bild anklicken und dieser soll mir dann gezoomt dargestellt werden. Leider weis ich nicht wie ich übergeben kann welcher Bildauschnitt und wie ich dies dann zoomen kann.

Z.b. Nehmen wir mal die Deutschlandkarte. klick z.B. auf Bayern dann soll Bayern gezoomt werden.

Vielleicht kann mir ja da jemand helfen. Oder mir vielleicht nen LInk für ein Beispiel schicken. Wäre super net.

Hab noch nie was mit Grafiken gemacht deshalb bin ich da voll ahnungslos.
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 15.10.02 17:43 
Eigentlich ist das ganze schon ein kleines Programm. So ein einfaches kleines Beispiel wird es wahrscheinlich garnicht geben. Ich kann mir auch nicht vorstellen, daß sich jetzt einer paar Stunden hinsetzt und da etwas schreibt.

Denk also selbst über das Programm nach und fang schon mal an. Jedes mal wenn du nicht weiterkommst kannst du fragen. Stell also lieber viele kleinere Fragen.
Snoop007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 50



BeitragVerfasst: Di 15.10.02 19:27 
lade ein bild ins image, positioniere es bei left 0 und top 0 ( nur testhalber )
ausblenden volle Höhe 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:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Tabs, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

var
  x1, y1 : integer;
  
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if button = mbLeft then
  begin
    x1 := x;
    y1 := y;
  end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  image1.Refresh;
  if shift = [ssLeft] then
  begin
    canvas.Brush.Style := bsclear;
    canvas.Rectangle(x,y,x1,y1);
  end;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
 von_image, zu_image: TRect;
begin
  if button = mbLeft then
  begin
    von_image := Rect(x,y,x1,y1);
    zu_image  :=  Rect(image1.Width+x,20+y,x1,y1);
    Form1.Canvas.CopyRect(zu_image,form1.canvas,von_image);
  end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  form1.DoubleBuffered := true;
end;

end.

das problem ist, der kopierte bereich ist sehr pixelig
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 15.10.02 21:52 
Eigentlich dachte ich, daß er Regionen zoomen will. Dabei hatte ich ein bestimmtes Programm im Sinn das das kann/macht.

Zitat:
Z.b. Nehmen wir mal die Deutschlandkarte. klick z.B. auf Bayern dann soll Bayern gezoomt werden.


Wenn es um ein Rechteck geht, dann ist das natürlich auch mit etwas wenige Code möglich.
keshia Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 16.10.02 11:21 
Ja genau, wie ich ein Bild zoomen kann habe ich schon gemacht, so wie du mir in dem Beispiel geschrieben hast, mein Problem ist das ich nicht weis wie ich nur einen bestimmten teil zoomen kann.

z.b. ja genau ich möchte z.b. bei einer Deutschlandkarte bayern anklicken und das komplette Bundesland wird vergrößert und nicht nur ein Teil (wie im obigen Beispiel) das hätte ich dann schon.

D.h. ich weis nicht wie ich einem Bild eine bestimmte region zuweisen kann die sich bei anklicken vergrößert egal wo ich gerade auf bayern klicke, es soll immer ganz bayern vergrößert werden.
Snoop007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 50



BeitragVerfasst: Mi 16.10.02 17:33 
das ist aber sehr aufwendig

gehen wir mal von deutschland und seinen bundesländern aus
du brauchst dann erstmal von jedem bundesland ein eigenes bild
diesen bildern legst du bereiche fest

du legst über das bild von deutschland eine koordinatenaxe x,y

klicks du auf einen bereich, fragst du die koordinaten ab und lädst das entsprechende bundesland

es sieht aus, als würdest du zoomen
keshia Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 17.10.02 13:05 
Vielen Dank ,

werde es mal ausprobieren. Ein koordinaten System habe ich schon mal gemacht, dürfte ja dann nicht so das problem sein.

vielen Dank