![]() |
TnTImage -> Welche Bildformate unterstützt?
Hallo,
ich will mit einen Bildbetrachter bauen, wo ich die Reihenfolge der Bilder vorher durch Verschieben in eine TListView festlege. Ich habe dazu als Imagekomponente die TntImage ausgewählt, weil die Delphi-Timage Komponente nur Bitmaps unterstützt, zumindest in meinem Turbo Delphi 2006. Ich weiß zwar vom Download der kostenlosen Delphi Starter Edition, die habe ich auch runter geladen, nur noch nicht installiert. Welche bildformate unterstützt nun die TntImage-Komponente. Ich brauche .jpg Ich erhalte aber beim Verschieben vom Windows Exploerer in meine TListview eine Exception mit der Meldung unbekanntes Datenformat. Ich nehme keine Typumwandlungen vor. Ich übergebe mein TntImage an Listview.Items.Item[Listview.Items.Count-1] := MyTntImage; Ist das vielleicht auch die Ursache. Wenn ja, wie muss ich den Quellcode formulieren, damit ich in der Listview mein Bild erhalte?
Delphi-Quellcode:
unit main;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ShellAPI, Dialogs, ExtCtrls, StdCtrls, Menus, ExtDlgs, ComCtrls, TntExtCtrls; type TForm1 = class(TForm) PictureDialog: TOpenPictureDialog; MainMenu1: TMainMenu; Datei1: TMenuItem; Bildladen1: TMenuItem; Beenden1: TMenuItem; PictureList: TListView; Memo: TMemo; Image: TTntImage; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Bildladen1Click(Sender: TObject); procedure Beenden1Click(Sender: TObject); procedure MemoDragDrop(Sender, Source: TObject; X, Y: Integer); protected procedure WMDROPFILES (var Msg: TMessage); message WM_DROPFILES; private { Private-Deklarationen } FFileName: String; FFileList: TStrings; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Beenden1Click(Sender: TObject); begin Close; end; procedure TForm1.Bildladen1Click(Sender: TObject); var Picture: TBitmap; begin //Zusätzlich zum Verschieben mit Maus normales Laden per Dateidialog if PictureDialog.Execute then begin FFileName := PictureDialog.FileName; { Picture := TBitmap.Create; Picture.LoadFromFile(FFileName); } Image.Picture.LoadFromFile(FFileName); FFileList.AddObject(FFileName,Image); Memo.Lines.Add(FFilename); end; end; procedure TForm1.FormCreate(Sender: TObject); begin FFileList := TStringList.Create; DragAcceptFiles(Form1.Handle, true); end; procedure TForm1.FormDestroy(Sender: TObject); begin FFileList.Free; end; procedure TForm1.MemoDragDrop(Sender, Source: TObject; X, Y: Integer); var Msg: TMessage; begin { Msg.WParamLo := X; Msg.WParamHi := y; WmDropFiles(Msg); } end; procedure TForm1.WMDROPFILES(var Msg: TMessage); var Picture : TBitmap; size,i : integer; Dateiname : PChar; var Img : TTntImage; Item : TListItem; begin size := DragQueryFile(Msg.WParam, i , nil, 0) + 1; Dateiname:= StrAlloc(size); DragQueryFile(Msg.WParam,i , Dateiname, size); //ShowMessage(StrPas(Dateiname)); //DragQueryFile übernimmt den Dateinamen //Datei wird dann in Picture Objekt übernommen //Picture := TBitmap.Create; //Picture.LoadFromFile(StrPas(Dateiname)); Image.Picture.LoadFromFile(FFileName); FFileList.AddObject(StrPas(Dateiname),Image); Memo.Lines.Add(FFileList.Strings[FFileList.Count-1]); Item := PictureList.Items.Add; Item.Data := Image.Picture; PictureList.Items.Item[PictureList.Items.Count-1].Data := Item.Data; // Muss ich evtl noch Typumwandlungen vornehmen, wenn ja wie? // oder wird das .jpg Format auch von TntImage einfach nicht unterstützt? StrDispose(Dateiname); DragFinish(Msg.WParam); end; end. |
AW: TnTImage -> Welche Bildformate unterstützt?
Unit jpeg fehlt in uses
Probiere mal Listview.Items.Item[Listview.Items.Count-1].assign(MyTntImage); |
AW: TnTImage -> Welche Bildformate unterstützt?
Zitat:
Sind keine Units (z.B. jpeg) eingebunden dann nur BMP. Ansonsten unterstützt Delphi JPEG, PNG, GIF und BMP. Es gibt auch Zusatzkomponenten welche diese Liste auf "Exotische" Bildformate erweitern. |
AW: TnTImage -> Welche Bildformate unterstützt?
Zitat:
|
AW: TnTImage -> Welche Bildformate unterstützt?
Leider muss ich noch mal nerven. Ich erhalte beim Drag eine EAccessViolation an dieser Stelle:
Delphi-Quellcode:
Bin mir gar nicht mehr so sicher, ob sich die Installation der, wenn auch kostenlosen, Delphi Starter wirklich lohnt. Exceptions dieser Art bekomme ich ja wohl dort genauso.
FFileName := String(Dateiname);
Image.Picture.LoadFromFile(FFileName); //Hier Knallt es! Warum???? Das wäre ein Feature Request. Der Compiler möge in solcher oder ähnlicher Situation den Code so erzeugen, dass er läuft. Heißt, die nötigen Datenformatanpassungen erkennen und vornehmen. |
AW: TnTImage -> Welche Bildformate unterstützt?
Könntest Du uns bitte die Fehlermeldung "spendieren".
Einfach im Fehlerdialog Strg+C drücken und dann hier per STRG+V zwischen Code-Tags einfügen. So ist die Fehlerbeschreibung etwas dürftig. Die erste Vermutung wäre mal, das Image nicht inizialisiert ist. Dann käme ein EAccessViolation. Ansonsten poste bitte mal etwas mehr vom Quelltext vor der Fehlerstelle. Oder BreakPoint vor die fehlerhafte Stelle und dann schrittweise durchgehen, bis zur konkreten Fehlerstelle. Eventuell kann man dann da etwas besser erkennen, wo die Fehlerursache liegen könnte. |
AW: TnTImage -> Welche Bildformate unterstützt?
Hallo,
Delphi-Quellcode:
Die zwei Zeilen sind zu wenig.
Ich erhalte beim Drag eine EAccessViolation an dieser Stelle:
Poste die ganze OnAccept-Methode. Der TypeCast auf String sieht schon sehr verdächtig aus. |
AW: TnTImage -> Welche Bildformate unterstützt?
Zitat:
Wie sähe der Quellcode innerhalb der DragAccept Methode aus? Wäre der so viel anders? |
AW: TnTImage -> Welche Bildformate unterstützt?
Zitat:
Zitat:
Zitat:
Kann Windows 10 .NET in der von Turbo Delphi verlangten Version, ohne dazu die Preregs mit installieren zu müssen? (Falls die detaillierteren Fehlermeldungen nur in der zusammen mit .NET installierten Version verfügbar sein sollten, wie das auch mit der integrierten Hilfe der Fall ist. Hätte aber noch Delphi 7 Personal. Zitat:
Welche Kompos betrifft das generell, wenn es das ist? Zitat:
Zitat:
|
AW: TnTImage -> Welche Bildformate unterstützt?
Mir würde eigentlich erstmal die Fehlermeldung reichen, die Du bekommst, wenn Du das Programm einfach mal so startest, egal, ob die nun detailreich ist oder nicht. Nur das, was auch der Anwender zu sehen bekommen würde, wenn er das Programm startet und dann der Fehler auftritt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz