Einzelnen Beitrag anzeigen

Giertier

Registriert seit: 31. Okt 2008
20 Beiträge
 
Delphi 2005 Personal
 
#12

Re: Ausgabe eines geladenen Records in Memofeldern

  Alt 19. Feb 2009, 10:11
Heyho ^^

find ich super, dass einem hier so geholfen wird Also, ich will ja nicht, dass ihr die ganze Aufgabe für mich löst , ich wills ja auch verstehn, aber wäre wirklich super, wenn ihr mir an diversen Stellen weiterhelfen könntet, für die ich einfach zu sehr Noob auf diesem Gebiet bin.

Also hier mal der Code

Unit eins, das Startformular.

Startformular

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, jpeg, unit2,unit3, Pfadkopie, ExtDlgs, GraphicEx,GifImage;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    GroupBox2: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    GroupBox3: TGroupBox;
    Button8: TButton;
    Button9: TButton;
    Edit1: TEdit;
    ListBox1: TListBox;
    Label13: TLabel;
    Button10: TButton;
    Image1: TImage;
    Panel2: TPanel;
    Image2: TImage;
    OpenPictureDialog1: TOpenPictureDialog;
    Label14: TLabel;
    Memo1: TMemo;
    Memo2: TMemo;
    SaveDialog1: TSaveDialog;
    OpenDialog1: TOpenDialog;
    procedure Button10Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}





procedure TForm1.Button1Click(Sender: TObject);
begin
 close;
end;

procedure TForm1.Button9click(Sender: TObject);
begin
  Form2:= TForm2.Create(Application);
  Form2.Show;
end;

procedure TForm1.Button3Click(Sender: TObject);

begin
Pfad;
end;


procedure TForm1.Button10Click(Sender: TObject);
begin
 Laden;
 Schreiben;
end;

end.
Unit 2, Bildschirm für spätere erweiterte Suche (Hab ich mich bis jetzt noch gar nich drum gekümmert)


Erweiterte Suche

Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm2 = class(TForm)
    Edit13: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit10: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    ComboBox6: TComboBox;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    ComboBox8: TComboBox;
    Label15: TLabel;
    RadioGroup1: TRadioGroup;
    Label16: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Edit1: TEdit;
    Edit8: TEdit;
    Label17: TLabel;
    Edit9: TEdit;
    Edit11: TEdit;
    Label18: TLabel;
    Edit12: TEdit;
    procedure Button3Click(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;


implementation

{$R *.dfm}




procedure TForm2.Button3Click(Sender: TObject);
begin
 close;
end;

end.
Unit 3, Formular für die Eingabe der Bilddaten:

Eingabeformular

Delphi-Quellcode:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm3 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label15: TLabel;
    Edit13: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    ComboBox6: TComboBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label18: TLabel;
    Memo1: TMemo;
    Edit1: TEdit;
    Edit8: TEdit;
    Label19: TLabel;
    Edit9: TEdit;
    Label14: TLabel;
    Label20: TLabel;
    Edit10: TEdit;
    GroupBox1: TGroupBox;
    Label17: TLabel;
    ComboBox1: TComboBox;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation

uses

unit1, Pfadkopie;

{$R *.dfm}

procedure TForm3.Button3Click(Sender: TObject);
begin
 Form1.enabled := true;
 close;
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
 Pfad;
end;

procedure TForm3.Button2Click(Sender: TObject);
begin
 Einlesen;
 Speichern;
 close;
end;



end.
Unit Pfadkopie

Delphi-Quellcode:
unit Pfadkopie;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, jpeg, ExtDlgs;

type
 Bilddaten = record
 RTitel, RAutor, RThema, RAufnahmekontext, RBlende, RBZ1, RBZ2, RBG1, RBG2,
 RAuflösung, RSchlagworte, RBeschreibung, RDat1, RDat2, RDat3, RAFormat, RPfad,
 RFormat: string[100];

 end;

procedure Pfad;
procedure Einlesen;
procedure Speichern;
procedure Laden;
procedure Schreiben;

var
 Datensatz: Bilddaten;




implementation

uses unit1, unit3;

procedure Pfad;
var Zieldatei: string;
begin
 if Form1.OpenPictureDialog1.Execute then
 begin
  Form3.close;
  ZielDatei:= Form1.OpenPictureDialog1.FileName;
  Form1.Image2.Picture.LoadFromFile(Zieldatei);
  Form1.image2.Stretch:= true;
  Form1.image2.proportional:=true;
  Form1.image2.show;
  Form1.Enabled := false;
  Form3:= TForm3.Create(Application);
  Form3.Show;
  Form3.Label20.Caption:= ExtractFileExt(Zieldatei);
  Form3.Label17.Caption:= Zieldatei;

 end;
end;

procedure Einlesen;

begin

Datensatz.RTitel:= Form3.Edit13.Text;
Datensatz.RAutor:= Form3.Edit2.Text;
Datensatz.RThema:= Form3.Edit3.Text;
Datensatz.RAufnahmekontext:= Form3.Edit4.Text;
Datensatz.RBlende:= Form3.Edit1.Text;
Datensatz.RBZ1:= Form3.Edit8.Text;
Datensatz.RBZ2:= Form3.Edit9.Text;
Datensatz.RBG1:= Form3.Edit5.Text;
Datensatz.RBG2:= Form3.Edit6.Text;
Datensatz.RAuflösung:= Form3.Edit10.Text;
Datensatz.RSchlagworte:= Form3.Edit7.Text;
Datensatz.RBeschreibung:= Form3.Memo1.Text;
Datensatz.RDat1:= Form3.ComboBox1.Text;
Datensatz.RDat2:= Form3.ComboBox2.Text;
Datensatz.RDat3:= Form3.ComboBox3.Text;
Datensatz.RAFormat:= Form3.ComboBox6.Text;
Datensatz.RPfad:= Form3.Label17.Caption;
Datensatz.RFormat:= Form3.Label20.Caption;

Form1.Memo1.Text:=
'Titel: '+Datensatz.RTitel+#13#10+#13#10+
'Aufnahmedatum: '+Datensatz.RDat1+Datensatz.RDat2+Datensatz.RDat3+#13#10+#13#10+
'Autor: '+Datensatz.RAutor+ #13#10+#13#10+'Thema: '+Datensatz.RThema+#13#10+#13#10+
'Aufnahmekontext: '+Datensatz.RAufnahmekontext+#13#10+#13#10+
'Blende: '+Datensatz.RBlende+' mm'+#13#10+#13#10;
Form1.Memo2.Text:=
'Belichtungszeit: '+Datensatz.RBZ1+'/'+Datensatz.RBZ2+'s'+#13#10+#13#10+
'Bildgröße: '+Datensatz.RBG1+' x '+Datensatz.RBG2+''+DAtensatz.RAFormat+#13#10+#13#10+
'Auflösung: '+Datensatz.RAuflösung+#13#10+#13#10+
'Schlagworte: '+Datensatz.RSchlagworte+#13#10+#13#10+
'Pfad: '+Datensatz.RPfad+#13#10+#13#10+
'Dateiformat: '+Datensatz.RFormat;
Form1.Label14.Caption:= Datensatz.RBeschreibung;

Form1.Enabled:= true;
end;

procedure Speichern;
var datei: file of Bilddaten;
    i: integer;
begin
 if Form1.Savedialog1.Execute then
  begin
  try
  assignfile(Datei,Form1.Savedialog1.FileName);
  rewrite(datei);
  write(datei);
  finally
  closefile(datei);
  end;
  end;
end;

procedure Laden;
var Datei: file of Bilddaten;
begin
 if Form1.OpenDialog1.Execute then
  begin
  assignfile(datei, Form1.OpenDialog1.FileName);
  reset(datei);
  read(Datei, Datensatz);
  closefile(datei);
  end;
end;

procedure Schreiben;
begin
 Form1.Image2.Picture.LoadFromFile(Datensatz.RPfad);
 Form1.image2.Stretch:= true;
 Form1.image2.proportional:=true;
 Form1.image2.show;
 Form1.Memo1.Text:=
'Titel: '+Datensatz.RTitel+#13#10+#13#10+
'Aufnahmedatum: '+Datensatz.RDat1+Datensatz.RDat2+Datensatz.RDat3+#13#10+#13#10+
'Autor: '+Datensatz.RAutor+ #13#10+#13#10+'Thema: '+Datensatz.RThema+#13#10+#13#10+
'Aufnahmekontext: '+Datensatz.RAufnahmekontext+#13#10+#13#10+
'Blende: '+Datensatz.RBlende+' mm'+#13#10+#13#10;
Form1.Memo2.Text:=
'Belichtungszeit: '+Datensatz.RBZ1+'/'+Datensatz.RBZ2+'s'+#13#10+#13#10+
'Bildgröße: '+Datensatz.RBG1+' x '+Datensatz.RBG2+''+DAtensatz.RAFormat+#13#10+#13#10+
'Auflösung: '+Datensatz.RAuflösung+#13#10+#13#10+
'Schlagworte: '+Datensatz.RSchlagworte+#13#10+#13#10+
'Pfad: '+Datensatz.RPfad+#13#10+#13#10+
'Dateiformat: '+Datensatz.RFormat;
Form1.Label14.Caption:= Datensatz.RBeschreibung;

end;
end.
Das Problem mit der Suche ist jetzt erstmal noch nebensächlich. Eine verbesserte Programmstruktur wäre natürlich super und dann würde ich wie gesagt gerne das Problem anpacken, das jeder Nutzer in einer Datei seine "Datenbank" an Bilddaten Speichern und laden könnte. In den Memofeldern unten soll immer nur der derzeitig ausgewählte oder gerade eingegebene Datensatz erscheinen. Im Panel darüber das zugehörige Bild. Mit dem einen Datensatz klappt das auch recht gut. Der Button Bild aus Liste soll dann noch ein neues Formular mit einer ListBox aufrufen, aus dem der User dann den jeweilig gesuchten Datensatz über den Titel aufrufen können soll, sodass der zugehörige Datensatz (zum gewählten Titel) dann wieder in den Memofelder in Form1 zu sehen ist.

Vielen Dank schonmal im Voraus für eure Weisheiten

Liebe Grüße

Giertier
  Mit Zitat antworten Zitat