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



BeitragVerfasst: Di 18.12.07 11:50 
Moin!
Ich hab folgendes Problem: Mit meinem Programm kann ich mehrere Bilder öffnen, die denn neben einander angeordnet werden. Ich möchte die Bilder gerne per Mausklick "auswählen", also markieren können. Von dem markierten Bild sollen dann die Eigenschaften (Auflösung, Name, Pfad, Größe,...) in TLabels angezeigt werden. Leider habe ich aber keinen Schimmer, wie das geht.

Vielen Dank schonmal im Vorraus...
jackle32
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 7

Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
BeitragVerfasst: Di 18.12.07 12:27 
Servus,

dafür hast du bei der TImage Komponente das Ereignis "OnMouseDown". Dieses wird aufgerufen wenn du auf das entsprechende Image klickst und da lässt du dann einfach die Eigenschaften des jeweiligen Bildes auslesen und Anzeigen. Dieses Ereignis kann auch noch mehr, z.B. sagt es dir welche Maustaste gedrückt wurde. Das steht dann aber in der Hilfe ausführlich drin.

Gruß Jack

_________________
Es gibt keine dummen Fragen, nur dumme Antworten.
BM_90 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 49



BeitragVerfasst: Di 18.12.07 17:10 
Vielen Dank, aber das problem ist, dass ich die erst beim öffnen der Bilder erzeugen lasse...
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 18:39 
user profile iconBM_90 hat folgendes geschrieben:
Vielen Dank, aber das problem ist, dass ich die erst beim öffnen der Bilder erzeugen lasse...


dann weiß halt da auch das OnClick event zu

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:
...
private
  procedure ImageClick(Sender:TObject);
....
procedure TForm1.ImageClick(Sender:TObject);
begin
  Caption := IntToStr((Sender as TImage).Width);
end;

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].OnClick :=  ImageClick;
            .....
          end;
    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 18:47 
Ich habe jetzt mal eine ganz dumme Frage:

Soll das "ImageClick" eine neue procedure sein??
Wenn ja, dann haut das nicht hin.
Wenn nein, dann bin ich wohl mal wieder zu blöd dafür...
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 18:49 
user profile iconBM_90 hat folgendes geschrieben:
Ich habe jetzt mal eine ganz dumme Frage:

Soll das "ImageClick" eine neue procedure sein??
Wenn ja, dann haut das nicht hin.
Wenn nein, dann bin ich wohl mal wieder zu blöd dafür...

jep des is ne neue procedure aber warum soll des dann nich hin haun???

_________________
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 18:56 
Das ist meine precedure:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure ImageClick;
var I : Integer;
begin
  images[I].width:=300;
  Images[I].Stretch :=  true;
  Images[I].Proportional :=  true;
end;


Und das hat Delphi zu meckern:
[DCC Fehler] Unit1.pas(168): E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'

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: Di 18.12.07 19:01 
user profile iconBM_90 hat folgendes geschrieben:
Das ist meine precedure:

procedure ImageClick;
var I : Integer;
begin
images[I].width:=300;
Images[I].Stretch := true;
Images[I].Proportional := true;
end;

Und das hat Delphi zu meckern:
[DCC Fehler] Unit1.pas(168): E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'


schreibs ma so um

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.ImageClick(Sender:TObject);
begin
  (Sender as TImage).width:=300;
  (Sender as TImage).Stretch :=  true;
  (Sender as TImage).Proportional :=  true;
end;


un nich vergessen die procedure zu deklarieren
wie oben geschrieben bei private oder public deklarieren....

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 19:09 
Ich weiß, ich stell mich bestimmt total dumm an, aber mein Info-Lehrer hat selber keine Ahnung, wie soll man da was lernen... Muss mir fast alles selber beibringen, naja...
jedenfalls meckert Delphi schonwieder
Einloggen, um Attachments anzusehen!
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 19:14 
haste die procedure deklariert???
schick ma auschnitte von deinem quelltext also dein ImageClick procedure un wo dus deklariert hast...

_________________
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 19:17 
Ist bestimmt wieder ein ganz dummer Fehler:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
...
  private
    procedure TForm1.ImageClick(Sender:TObject);
  public
    { Public-Deklarationen }
  end;
...
procedure TForm1.ImageClick(Sender:TObject);
begin
  (Sender as TImage).width:=300;
  (Sender as TImage).Stretch :=  true;
  (Sender as TImage).Proportional :=  true;
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: Di 18.12.07 19:18 
user profile iconBM_90 hat folgendes geschrieben:
Ist bestimmt wieder ein ganz dummer Fehler:

...
private
procedure TForm1.ImageClick(Sender:TObject);
public
{ Public-Deklarationen }
end;
...
procedure TForm1.ImageClick(Sender:TObject);
begin
(Sender as TImage).width:=300;
(Sender as TImage).Stretch := true;
(Sender as TImage).Proportional := true;
end;


bei der deklaration machste des TForm1 weg un dann dürfte es gehn

_________________
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 19:27 
So wie ich das jetzt im Moment beurteilen kann, siehts sehr gut aus.
Ich bedanke mich!!
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 13:57 
user profile iconBM_90 hat folgendes geschrieben:
Ich weiß, ich stell mich bestimmt total dumm an, aber mein Info-Lehrer hat selber keine Ahnung, wie soll man da was lernen.

Ja ja, immer liegt es am Lehrer. ;-)

Bei deinem Kenntnisstand möchte ich dir den Delphi-Crash-Kurs von Christian empfehlen.

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:45 
Danke für den Link, wird mir nur nicht viel bringen. Hab schon das Buch "Jetz lerne ich Delphi" von Markt+Technik. Was ich damit nicht gelernt habe, lerne ich wahrscheinlich auch so nicht mehr.

Aber wie ich die Eigenschaften ausgebe, weiß ich immer noch nicht...
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:33 
user profile iconBM_90 hat folgendes geschrieben:
Aber wie ich die Eigenschaften ausgebe, weiß ich immer noch nicht...


Funktioniert denn mittlerweile das Beispiel was Mister X gestern gepostet hat:
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:
private
  procedure ImageClick(Sender:TObject);
....
procedure TForm1.ImageClick(Sender:TObject);
begin
  Caption := IntToStr((Sender as TImage).Width);
end;

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].OnClick :=  ImageClick;
            .....
          end;
    end;
end;


??

Lg Martin

_________________
Ein Nutzer der Ecke ;-)
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Do 20.12.07 17:59 

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
BM_90 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 49



BeitragVerfasst: Do 03.01.08 16:48 
@Martin1966:
Vielen Dank! Ich gehe einfach mal davon aus, dass es funktioniert. Konnte es noch nicht ausprobieren, mein Delphi spinnt ein bisschen...