Entwickler-Ecke
Dateizugriff - Eigenschaften von Bildern ausgeben
BM_90 - Di 18.12.07 11:50
Titel: Eigenschaften von Bildern ausgeben
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 - 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
BM_90 - Di 18.12.07 17:10
Vielen Dank, aber das problem ist, dass ich die erst beim öffnen der Bilder erzeugen lasse...
mister_x - Di 18.12.07 18:39
BM_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
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
BM_90 - 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 - Di 18.12.07 18:49
BM_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???
BM_90 - Di 18.12.07 18:56
Das ist meine precedure:
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
Narses: Delphi-Tags hinzugefügt
mister_x - Di 18.12.07 19:01
BM_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
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
BM_90 - 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
mister_x - 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...
BM_90 - Di 18.12.07 19:17
Ist bestimmt wieder ein ganz dummer Fehler:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| ... private procedure TForm1.ImageClick(Sender:TObject); public 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
Narses: Delphi-Tags hinzugefügt
mister_x - Di 18.12.07 19:18
BM_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
BM_90 - Di 18.12.07 19:27
So wie ich das jetzt im Moment beurteilen kann, siehts sehr gut aus.
Ich bedanke mich!!
BM_90 - 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 - Mi 19.12.07 15:33
BM_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:
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
BM_90 - 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...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!