AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Einer FileListBox mehrere FileEdits zuweisen

Ein Thema von moperswings · begonnen am 6. Apr 2007 · letzter Beitrag vom 9. Apr 2007
Antwort Antwort
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#1

Einer FileListBox mehrere FileEdits zuweisen

  Alt 6. Apr 2007, 09:03
Hallo,

ich möchte Bilder in einer html-Tabelle speichern. Mit einer FileListbox wähle ich die Bilder aus, die ich in das jeweilige <td></td>-Tag einfügen möchte. Um den Dateinamen des ausgesuchten Bildes zu bekommen, benutze ich ja das FileEdit. Wenn ich jetzt vier Bilder in meine Tabelle einfügen möchte, kann ich mich damit anfreunden, vier Edit-Komponenten zur Verfügung zu stellen - aber ich möchte nur eine FileListBox benutzen. Ich schreibe also:
Delphi-Quellcode:
// für das 1.Bild
procedure button 1
begin
   Image1.picture.loadfromfile(FileListBox1.Filename);
   FileListBox1.FileEdit.Text := Edit1.Text;
end;

// für das 2.Bild
procedure button 2
begin
   Image1.picture.loadfromfile(FileListBox1.Filename);
   FileListBox1.FileEdit.Text := Edit2.Text;
end;

// usw.
Das funktioniert aber nicht. Hat jemand einen Vorschlag, wie ich das Problem lösen könnte und weiss jemand, warum mein Lösungsversuch nicht geht?

Viele Grüsse, moperswings
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Einer FileListBox mehrere FileEdits zuweisen

  Alt 6. Apr 2007, 10:02
Hallo,

ich verstehe nicht welche Funktion bei dir die Eigenschaft FileEdit übernehmen soll. Um eine Reihe von Bildern zusammenzustellen, die dann in einer HTML-Tabelle verbaut werden sollen, würde mir eher eine ListBox vorschweben. In der würde ich FileListBox.FileName sammeln, arrangieren (Reihenfolge) und dann nach einer wählbaren Regel (ColumnFirst, RowFirst) eine Tabelle mit definierter Maximalzahl an Spalten erzeugen.

Grüße vom marabu
  Mit Zitat antworten Zitat
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#3

Re: Einer FileListBox mehrere FileEdits zuweisen

  Alt 6. Apr 2007, 10:11
Wenn ich dem FileEdit eine Editkomponente zuordne, bekomme ich den Dateinamen. Dem Dateinamen kann ich einen Pfad oder eine Variable zuweisen, mit denen ich dann weiterarbeiten kann und weiss, was ich zu tun habe. Bei Deinem Vorschlag weiss ich noch nicht, wie ich das machen soll - leider!

moperswings
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Einer FileListBox mehrere FileEdits zuweisen

  Alt 6. Apr 2007, 15:53
Aber dazu brauchst du doch nicht mehrere Edit-Komponenten. Wenn du eine ListBox auf deiner Form hast und eine FileListBox, welche zweckmäßigerweise MultiSelect-fähig sein sollten, dann kannst du in der FileListBox die gewünschten Dateien selektieren und dann mit einem ButtonClick in die ListBox übernehmen:

Delphi-Quellcode:
procedure TDemoForm.AddButtonClick(Sender: TObject);
begin
  with FileListBox do
  begin
    CopySelection(ListBox);
    ClearSelection;
  end;
end;
Das lässt sich noch verfeinern - Stichworte: Directory, OwnerDraw

Wenn du dir dann noch ein paar Buttons (oder ein Kontextmenü) für das Verschieben der Einträge schaffst, dann hast du abschließend eine geordnete Liste mit Dateinamen, welche du dann in deutscher (oder japanischer oder arabischer oder ...) Schreibrichtung in eine HTML-Tabelle einbauen kannst.

Frohe Ostern
  Mit Zitat antworten Zitat
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#5

Re: Einer FileListBox mehrere FileEdits zuweisen

  Alt 6. Apr 2007, 16:16
Danke Marabu,

werde mir Dein Beispiel über Ostern antun. Melde mich dann wieder!

Schöne Feiertage wünsche ich Dir auch, bis dann...
(für heute habe ich die Schnauze voll)

moperswings
  Mit Zitat antworten Zitat
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#6

Re: Einer FileListBox mehrere FileEdits zuweisen

  Alt 9. Apr 2007, 10:01
Meine (vorerst primitive) Beispiellösung:
Was ich noch nicht weiss:
Wie könnte ich mir die Buttons ersparen und die Bilder direkt übergeben?
Delphi-Quellcode:
var
        Form1: TForm1;
        pic_a, pic_b, pic_c, pic_d: string;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
        WebBrowser1.Navigate('d:\image9\daten.html');
        WebBrowser1.Update;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
        a1, a2: string;
begin
        Image1.Picture.LoadFromFile(FileListBox1.FileName);
        a1 := 'images\';
        a2 := Edit1.Text;
        pic_a := a1 + a2;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
        b1, b2: string;
begin
        Image2.Picture.LoadFromFile(FileListBox1.FileName);
        b1 := 'images\';
        b2 := Edit1.Text;
        pic_b := b1 + b2;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
        c1, c2: string;
begin
        Image3.Picture.LoadFromFile(FileListBox1.FileName);
        c1 := 'images\';
        c2 := Edit1.Text;
        pic_c := c1 + c2;
end;

procedure TForm1.Button4Click(Sender: TObject);
var
        d1, d2: string;
begin
        Image4.Picture.LoadFromFile(FileListBox1.FileName);
        d1 := 'images\';
        d2 := Edit1.Text;
        pic_d := d1 + d2;
end;

procedure TForm1.Button5Click(Sender: TObject);
var
        f: textfile;
        dateiname: string;
        table, table_start, td, table_end: string;
        img_start, img_end: string;
begin
        dateiname := 'd:\image9\daten.html';
        AssignFile(f, dateiname);
        {$i-}
        rewrite(f);
        {$i+}
        If IOResult <> 0 then begin ShowMessage('Fehler');
        Exit;
        end;

        table_start := '<table><tr><td>';
        td := '</td><td>';
        table_end := '</td></tr></table>';
        img_start := '<img src="';
        img_end := '" />';

        table := table_start +
                   img_start + pic_a + img_end + td +
                   img_start + pic_b + img_end + td +
                   img_start + pic_c + img_end + td +
                   img_start + pic_d + img_end +
                 table_end;

        Writeln(f, table);
        closefile(f);
        WebBrowser1.Update;
end;
end.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Einer FileListBox mehrere FileEdits zuweisen

  Alt 9. Apr 2007, 11:07
Delphi-Quellcode:
procedure TForm1.LadeBild(Img: TImage; fname: String; Text: String; var pic: String);
var
        d1, d2: string;
begin
        Img.Picture.LoadFromFile(fname);
        pic :='images\ + text;
end;
Obwohl mir der Sinn des Ganzen noch nicht erschließt
Markus Kinzler
  Mit Zitat antworten Zitat
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#8

Re: Einer FileListBox mehrere FileEdits zuweisen

  Alt 9. Apr 2007, 11:31
@mkinzler
Ich möchte, dass ein Benutzer bis zu 4 Bilder auswählen kann, die in einer Table gespeichert werden!
Danke, für Deinen Code-Verkürzungstipp!
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz