Guten Tag sehr geheerte Damen und Herren!
Ich habe folgendes Problem: in meinem Programm kann User Bilder öffnen und dann kleine Ausschnitte aus Bildern ausschneiden und danach sollen diese mehrere Bilder und ein ini Datei in einer Datei auf der HDD gespeichert werden und an anderen Computern in meiener Programm als ein Modul geöffnet werden und da soll ini Datei abgelesen werden und Bilder benutzt werden. Ich suche schon 3 Wochen einen Lösung und habe nur ein Wariant mit Record gefunden, aber es funktioniert nicht. Ich bin Anfänger, bitte helfen Sie mir?
nicht die eigentlichen Bilddaten enthält, sondern die Speicheradresse des Bild-Objektes. Die Struktur der Bilddaten ist von Bild zu Bild unterschiedlich und kann daher nicht in einem Record mit fixem Aufbau gespeichert werden.
Alternativen wären z.B die Verwendung einer SQlite3 Datei oder die Bilddateien separat abzulegen und im TMensch record den Bilddateinamen zu speichern.
Martin
Zuletzt geändert von mse am Mi 21. Sep 2011, 12:14, insgesamt 1-mal geändert.
Wenn du keine Datenbank verwenden willst, verwendest du am besten einen TFileStream zum sequenzialisieren der Daten.
Da kannst du WriteAnsiString(), WriteByte() und WriteBuffer() verwenden.
Die zu speichernden Daten eines TImage liegen z.B. in seinem Bitmap (z.B. Image1.Picture.Bitmap.SaveToStream(Stream); )
Ich habe schon mal mit der Datenbank probiert, ich habe geschrieben "Table1.CreateTable" aber kommt immer wieder nur Fehlermeldung, ich habe alles mögliches gemacht und trotzdem ging nicht. Wenn ich Datenbank verwende dann soll diese Datenbanktabelle am Computer des Users dinamisch erstellt werden und das kriege ich nicht hin.
mse, ich kenne SQlite3 Datei überhaupt nicht, ist das sehr schwer? Kannst du mir das erklären mit dem Programmcode wenn möglich? Separat Bilder abzulegen geht leider nicht, weil diese Datei, mit Bildern und ini File wird als ein Programmmodul und soll über Internet zum Download stehen und zur Programm hinzugefügt werden.
theo ich habe schon einiges gelesen über TFileStream, vielen Dank für die Links, aber mit TFileStream bin ich leider nicht klar gekommen. Kannst Du mir bitte einen Programmcode zeigen wo ein Bild und eine ini File so gespeichert werden?
Juri hat geschrieben:
mse, ich kenne SQlite3 Datei überhaupt nicht,
SQLite3 ist eine SQL Datenbank die ohne Server auskommt und für deine Anwendung vermutlich gut geeignet. http://www.sqlite.org/
FPC, Lazarus und MSEgui haben Unterstützungskomponenten für SQLite3.
ist das sehr schwer?
Naja, das ist Ansichtssache.
Viele Programmierer mögen die Arbeit mit Datenbanken überhaupt nicht. Ich würde vorschlagen, zuerst die Methode mit der separaten Speicherung der Bilddateien zu benützen, bis du dich besser in Pascal und FPC zurechtfindest.
Juri hat geschrieben:theo ich habe schon einiges gelesen über TFileStream, vielen Dank für die Links, aber mit TFileStream bin ich leider nicht klar gekommen. Kannst Du mir bitte einen Programmcode zeigen wo ein Bild und eine ini File so gespeichert werden?
Ich verstehe nicht ganz, was du hier mit dem ini File genau meinst. Meinst du einfach dein Daten-File (mit TFileStream)?
theo, ich meine dass in einer ini Datei Info über den Modul und Modulname und auch Name des Modulautors gespeichert ist. Alle Bilder, die User geschnitten hat währe mir lieber in einer ImageListe zusammen mit der ini Datei speichern.