Delphi Gebruikersgroep

 

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