![]() |
Dateityp fehler
Jedesmal wenn ich das Bild öffne, das auch exisitiert^^ dann kommt dateiendungsfehler.
Aber eigentlich müsste alles richtig sein das Bild wird ja auch gelesen und in die Listbox eingetragen also müsste er es eigentlich auch öffnen können. Ablauf: Zu beginn auf Formular 1 ist die Datenbank anwendung wenn man dann jemanden auswählt kann man sich BIlder über ihn ansehen(Bilder die in seinem Ordner sind, z.B. ID 2) Lesen tut er die pics auch nur ich kann sie net in einer Imagekomponente anzeigen.
Delphi-Quellcode:
unit Unit4;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Unit1, StdCtrls, ExtCtrls, jpeg; type TForm4 = class(TForm) ListBox1: TListBox; Button1: TButton; Image1: TImage; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form4: TForm4; implementation {$R *.dfm} procedure ListAllPics(sPath: string; List: TStrings); var Rec: TSearchRec; begin List.BeginUpdate; List.Clear; if sPath[Length(sPath)] <> '\' then sPath := sPath + '\'; if FindFirst(sPath + '*.*',faAnyfile,Rec) = 0 then begin repeat if (AnsiLowerCase(ExtractFileExt(Rec.Name)) = '.jpeg') or (AnsiLowerCase(ExtractFileExt(Rec.Name)) = '.jpg') or (AnsiLowerCase(ExtractFileExt(Rec.Name)) = '.JPG') or (AnsiLowerCase(ExtractFileExt(Rec.Name)) = '.JPEG') then List.Add(Rec.Name); until FindNext(Rec) <> 0; FindClose(Rec); end; List.EndUpdate; end; procedure TForm4.FormCreate(Sender: TObject); begin ListAllPics('C:\Dokumente und Einstellungen\Sebastian\Desktop\Programmieren\Mysqlconnect\Pics\'+Form1.edID.text ,Listbox1.Items); end; procedure TForm4.Button1Click(Sender: TObject); begin image1.Picture.LoadFromFile('C:\Dokumente und Einstellungen\Sebastian\Desktop\Programmieren\Mysqlconnect\Pics\'+Form1.edID.text +Listbox1.Items.Text); end; end. |
Re: Dateityp fehler
Zum Einen fällt mir auf, dass folgende Fälle nie eintreten können:
Delphi-Quellcode:
Und evtl. hilft es, wenn Du zunächst ein JPEGImage erzeugst und das dann dem Image.Picture zuweist.
(AnsiLowerCase(ExtractFileExt(Rec.Name)) = '.JPG') or
(AnsiLowerCase(ExtractFileExt(Rec.Name)) = '.JPEG') |
Re: Dateityp fehler
Funzt auch net.
Wenn ich statt dem Form1.edID1.text weglasse und statt dessen z.B. 2 schon bei dem Pfad reintippe dann funzt das ganze(habs aber erst in ner Combobox getestet müsste aber auch mit net Listbox gehen, also glaube ich dass er irgendwie da was falsch macht. |
Re: Dateityp fehler
*Huch*, das hatte ich gar nicht gesehen. ListBox1.Items.Text gibt Dir den gesamten Text aller Items zurück. Versuch es mal mit ListBox1.Items[ListBox1.ItemIndex].
|
Re: Dateityp fehler
Hä? Was denn nun? Wo diskutierst du denn jetzt? Hier oder
![]() |
Re: Dateityp fehler
Jo das wars, hab eben auch noch was bemerkt.
Delphi-Quellcode:
Jetzt habe ich nur noch einen anderen Fehler^^
image1.Picture.LoadFromFile('C:\Dokumente und Einstellungen\Sebastian\Desktop\Programmieren\Mysqlconnect\Pics\'+Form1.edID.text +'\' +Listbox1.Items[ListBox1.ItemIndex]);
Siehe Image im anhang. Danke schon ma. edit: @Muetze1: Eine Neue Frage, ein neues Thema, ich empfand das als richtig, korrigier mich falls ich was falsch gemacht habe. [edit=Matze]2,25 MB großen Bitmap-Anhang entfernt. Das kleinere JPG-Bild befindet sich nun ja 2 Beiträge unter diesem. MfG, Matze[/edit] |
Re: Dateityp fehler
1. Dann rede im anderen Thread nicht von einem anderen Fehler. Ich suche doch nicht vorher das Forum ab, ob du die Frage nochmal stellst. Verlinke im anderen Thread von mir aus drauf...
2. Bitmap? Du glaubst auch alle haben DSL? Bitte nutze ein besseres Format wie JPG oder PiNG. Grundsätzlich hätte die Aussage über eine Zugriffsverletzung bei Adresse 00000000 auch gereicht. 3. Lass Form1. weg. Warum du das auch immer davor schreibst... |
Re: Dateityp fehler
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: Dateityp fehler
In dem Screenshot seh ich aber immer noch was von ListBox1.Items.Text.
|
Re: Dateityp fehler
Zitat:
|
Re: Dateityp fehler
Welchen Fehler? Hast du die andere Unit eingebunden? Zeig mal den aktuellen Code.
|
Re: Dateityp fehler
Also der Fehler ist weiter oben als jpg, der gesamte code kommt jetzt.^^
Delphi-Quellcode:
So und jetzt das mit den Bildern:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, DB, ZSqlMetadata, ZAbstractTable, ZDataset, ZAbstractRODataset, ZAbstractDataset, DBCtrls, ZConnection, Unit3, Inifiles, jpeg; type TForm1 = class(TForm) GroupBox1: TGroupBox; GroupBox3: TGroupBox; test: TListView; edVorname: TEdit; edName: TEdit; edAdresse: TEdit; edPLZ: TEdit; edWohnort: TEdit; edID: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Button1: TButton; Button2: TButton; GroupBox2: TGroupBox; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; edServer: TEdit; edLogin: TEdit; edPasswort: TEdit; edDB: TEdit; Button3: TButton; qrMain: TZQuery; trMain: TZSQLMetadata; dsMain: TDataSource; dbmain: TZConnection; Button5: TButton; Button6: TButton; Button4: TButton; Button8: TButton; Button9: TButton; Button10: TButton; Button11: TButton; procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure testSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); procedure BilderClick(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button11Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation uses Unit4; {$R *.dfm} procedure TForm1.Button3Click(Sender: TObject); begin dbMain.Hostname:=edServer.Text; dbMain.User:=edLogin.Text; dbMain.Password:=edPasswort.Text; dbMain.Database:=edDB.Text; dbMain.Connected:=True; try qrMain.SQL.Text:='CREATE TABLE `adressbuch` ('+ '`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,'+ '`vorname` TEXT NOT NULL,'+ '`name` TEXT NOT NULL,'+ '`adresse` TEXT NOT NULL,'+ '`wohnort` TEXT NOT NULL,'+ '`plz` INT NOT NULL'+ ');'; qrMain.ExecSql; finally dbMain.Connected:=False; end; end; procedure TForm1.Button2Click(Sender: TObject); begin dbMain.Hostname:=edServer.Text; dbMain.User:=edLogin.Text; dbMain.Password:=edPasswort.Text; dbMain.Database:=edDB.Text; dbMain.Connected:=True; dbMain.Connected:=True; //Verbindung herstellen try qrMain.SQL.Text:='INSERT INTO `adressbuch` '+ '(`id`, `vorname`, `name`, `adresse`, `wohnort`, `plz`)'+ ' VALUES '+ '('''', '''+edVorname.Text+''', '''+edName.Text+ ''', '''+edAdresse.Text+''', '''+edWohnort.Text+ ''', '''+edPLZ.Text+''');'; qrMain.ExecSql; //SQL-Statement ausführen finally dbMain.Connected:=False; //Verbindung trennen end; end; procedure TForm1.Button5Click(Sender: TObject); begin dbMain.Hostname:=edServer.Text; dbMain.User:=edLogin.Text; dbMain.Password:=edPasswort.Text; dbMain.Database:=edDB.Text; dbMain.Connected:=True; try qrMain.SQL.Text:='DELETE FROM adressbuch WHERE id='''+edID.Text+''';'; qrMain.ExecSql; finally dbMain.Connected:=False; end; end; procedure TForm1.Button6Click(Sender: TObject); var ListItem: TListItem; begin dbMain.Hostname:=edServer.Text; dbMain.User:=edLogin.Text; dbMain.Password:=edPasswort.Text; dbMain.Database:=edDB.Text; dbMain.Connected:=True; try test.Items.Clear; qrMain.SQL.Text:='Select * from `adressbuch` order by name;'; qrMain.Open; while not qrMain.Eof do begin ListItem := test.Items.Add; ListItem.Caption:=qrMain.FieldByName('id').AsString; ListItem.SubItems.Add(qrMain.FieldByName('vorname').AsString); ListItem.SubItems.Add(qrMain.FieldByName('name').AsString); ListItem.SubItems.Add(qrMain.FieldByName('adresse').AsString); ListItem.SubItems.Add(qrMain.FieldByName('plz').AsString); ListItem.SubItems.Add(qrMain.FieldByName('wohnort').AsString); qrMain.Next; end; finally dbMain.Connected:=False; end; end; procedure TForm1.Button1Click(Sender: TObject); begin dbMain.Hostname:=edServer.Text; dbMain.User:=edLogin.Text; dbMain.Password:=edPasswort.Text; dbMain.Database:=edDB.Text; dbMain.Connected:=True; try qrMain.SQL.Text:='UPDATE `adressbuch` Set `vorname`='''+edVorname.Text+''','+ '`name`='''+edName.Text+''','+ '`adresse`='''+edAdresse.Text+''','+ '`plz`='''+edPLZ.Text+''','+ '`wohnort`='''+edWohnort.Text+''' '+ 'WHERE `id`='''+edID.Text+''';'; qrMain.ExecSql; //SQL-Statement ausführen finally dbMain.Connected:=False; end; end; procedure TForm1.testSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); begin edID.Text := Item.Caption; edVorname.Text := Item.SubItems[0]; edName.Text := Item.SubItems[1]; edAdresse.Text := Item.SubItems[2]; edPLZ.Text := Item.SubItems[3]; edWohnort.Text := Item.SubItems[4]; end; procedure TForm1.BilderClick(Sender: TObject); //var copyedit1: TStrings; var IniFile: TIniFile; begin try IniFile:=TInifile.Create(ExtractFilePath(ParamStr(0))+'login.ini'); IniFile.WriteString('Host','Host', edServer.Text); IniFile.WriteString('User','Login', edLogin.Text); IniFile.WriteString('Pass','Passwort', edPasswort.Text); IniFile.WriteString('Database','Datenbank', edDB.Text); finally IniFile.Free; end; //copyedit1:=TStringlist.Create; //copyedit1.Add(edserver.Text); //copyedit1.Add(edLogin.Text); //copyedit1.Add(edPasswort.Text); //copyedit1.Add(edDB.Text); //copyedit1.SaveToFile('logindaten.ini'); //copyedit1.Free; end; procedure TForm1.Button8Click(Sender: TObject); begin Form1.Close; end; procedure TForm1.Button9Click(Sender: TObject); begin Form3.Show; end; procedure TForm1.Button10Click(Sender: TObject); var IniFile: TIniFile; begin try IniFile:=TInifile.Create(ExtractFilePath(ParamStr(0))+'login.ini'); edServer.Text:=IniFile.ReadString('Host','Host', ''); edLogin.Text:=IniFile.ReadString('User','Login', ''); edPasswort.Text:=IniFile.ReadString('Pass','Passwort', ''); edDB.Text:=IniFile.ReadString('Database','Datenbank', ''); finally IniFile.Free; end; end; procedure TForm1.Button11Click(Sender: TObject); begin Form4.show; end; end.
Delphi-Quellcode:
unit Unit4;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Unit1, StdCtrls, ExtCtrls, jpeg; type TForm4 = class(TForm) ListBox1: TListBox; Button1: TButton; Image1: TImage; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form4: TForm4; implementation {$R *.dfm} procedure ListAllPics(sPath: string; List: TStrings); var Rec: TSearchRec; begin List.BeginUpdate; List.Clear; if sPath[Length(sPath)] <> '\' then sPath := sPath + '\'; if FindFirst(sPath + '*.*',faAnyfile,Rec) = 0 then begin repeat if (AnsiLowerCase(ExtractFileExt(Rec.Name)) = '.jpeg') or (AnsiLowerCase(ExtractFileExt(Rec.Name)) = '.jpg') then List.Add(Rec.Name); until FindNext(Rec) <> 0; FindClose(Rec); end; List.EndUpdate; end; procedure TForm4.FormCreate(Sender: TObject); begin ListAllPics('C:\Dokumente und Einstellungen\Sebastian\Desktop\Programmieren\Mysqlconnect\Pics\'+Form1.edID.text ,Listbox1.Items); end; procedure TForm4.Button1Click(Sender: TObject); begin image1.Picture.Create; try image1.Picture.LoadFromFile('C:\Dokumente und Einstellungen\Sebastian\Desktop\Programmieren\Mysqlconnect\Pics\'+Form1.edID.text +'\' +Listbox1.Items[ListBox1.ItemIndex]); finally image1.Picture.Free; end; end; end. |
Re: Dateityp fehler
Es geht, hab einfach ma kein image am anfang created.
Verdammt hab auch vergessen es damit zuzuweisen, habs wohl oben falsch verstanden. Danke |
Re: Dateityp fehler
In Zeile 48 hast du immer noch den falschen Code!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:17 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