AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi TnTImage -> Welche Bildformate unterstützt?
Thema durchsuchen
Ansicht
Themen-Optionen

TnTImage -> Welche Bildformate unterstützt?

Ein Thema von DualCoreCpu · begonnen am 28. Jun 2017 · letzter Beitrag vom 5. Jul 2017
 
DualCoreCpu
(Gast)

n/a Beiträge
 
#1

TnTImage -> Welche Bildformate unterstützt?

  Alt 28. Jun 2017, 20:27
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.

Geändert von DualCoreCpu (28. Jun 2017 um 20:31 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 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