|
| |
Home
Up
bitmap en dbimage
Ik zou graag willen weten hoe je een bitmap in een dbimage of een image of een ole container kunt plaatsen ( In delphi) door hem van een windows map te slepen naar de dbimage op het form en als je hem loslaat moet de dbimage, image hem automatisch laten zien en opslaan in de database
--
Plaats onderstaande code in een nieuwe applicatie
maak een tabel aan uniek autoinc , image graphic
plaats een ttable op het form koppel het aan de tabel
+ een datasource,een navigator en een dbimage
Run het en have Fun
Roelof
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBCtrls, StdCtrls, DBTables, FileCtrl,ShellApi, ExtCtrls;
type
TForm1 = class(TForm)
Table1: TTable;
Table1Uniek: TAutoIncField;
Table1Image: TGraphicField;
DBImage1: TDBImage;
DataSource1: TDataSource;
DBNavigator1: TDBNavigator;
procedure FormCreate(Sender: TObject);
private
// nodig om windows te laten begrijpen dat we d&d met windows willen
procedure WMDROPFILES(var Message: TWMDROPFILES);
message WM_DROPFILES;
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
// Vertel tegen windows dat we drag en drop ondersteunen
DRAGAcceptFiles(Form1.Handle, True);
end;
procedure TForm1.WMDROPFILES(var Message: TWMDROPFILES);
var
NumFiles,
i,
Errors : longint;
buffer : array[0..255] of char;
AExtension : string ;
begin
Errors := 0;
{Hoeveel files worden er gedropped ?}
NumFiles := DRAGQueryFile(Message.DROP,$FFFFFFFF,nil,0);
{Controlleer of de files BMP's zijn}
for i := 0 to (NumFiles - 1) do
begin
DRAGQueryFile(Message.DROP,
i,
@buffer,
sizeof(buffer));
AExtension := ExtractFileExt(buffer);
if UpperCase(AExtension) = '.BMP' then
begin
Table1.Insert;
TGraphicField(Table1.FieldByName('Image')).LoadFromFile(buffer) ;
Table1.Post;
end
else
Inc(Errors);
end;
if Errors <> 0 then
Application.MessageBox(PChar('Niet alle gesleepte bestanden waren plaatjes.'+#13+#10+'De '+
'plaatjes zijn allemaal opgeslagen.'), Pchar(Application.Title), MB_OK+MB_ICONINFORMATION) ;
end;
end.
Delphi en Clarion
Hoe kan ik in Delphi5 direct bestanden lezen die aangemaakt zijn via Clarion ( = TopSpeed database)
--
Door de DLL te kopen die je toegang geeft tot die database. Je kunt wel proberen dat zelf te maken maar dat is een bult werk. De topspeed database heeft een heel efficiente bestandsopbouw (voor een lokale database dan). De nederlandse leverancier is advantage software, www.advantages.nl (zou ook .com kunnen zijn). Op de website kun je info vinden voor toegang vanuit andere systemen dan Clarion.
Succes.
Benno
|