Avatar billede darkside Nybegynder
28. oktober 2000 - 00:35 Der er 3 kommentarer og
1 løsning

Eks Prog

Hm ikke om jeg fatter databaser..jeg ville sætte stor pris på hvis der skulle være en der gad at strikke et lille program sammen til mig hvor man kan sætte billeder i en paradox 7 database

/DarkSide
admin@scanmesse.dk
Avatar billede Lasse Novice
28. oktober 2000 - 01:23 #1
program i hvad?
Avatar billede darkside Nybegynder
28. oktober 2000 - 03:10 #2
I delphi selfølgelig :)
Det skal køre på en paradox 7 database, det skal bare være muligt at sætte et billede ind i databasen via proget!

/DarkSide
Avatar billede sjensen Nybegynder
14. november 2000 - 22:16 #3
Jamen, det vij jeg da godt. Her er der et:

klip og klistre følgende tekster ind i de tilsvarende filer
project1.dpr filen:
program Project1;

uses
  Forms,
  Unit1 in \'Unit1.pas\' {Form1};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Unit1.pas filen:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtDlgs, DBCtrls, Mask, ExtCtrls, Db, DBTables;

type
  TForm1 = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    DBNavigator1: TDBNavigator;
    DBEdit1: TDBEdit;
    DBImage1: TDBImage;
    OpenPictureDialog1: TOpenPictureDialog;
    BitBtn1: TBitBtn;
    Table1Nr: TIntegerField;
    Table1Billede: TGraphicField;
    procedure BitBtn1Click(Sender: TObject);
    procedure DataSource1StateChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if OpenPictureDialog1.execute then
  begin
    dbimage1.Picture.LoadFromFile(OpenPictureDialog1.filename);
  END;
end;

procedure TForm1.DataSource1StateChange(Sender: TObject);
begin
  if table1.state in [dsinsert,dsedit] then
  begin
    bitbtn1.enabled := true;
  end else
  begin
    bitbtn1.enabled := false;
  end;
end;

end.

Unit1.dfm filen:
object Form1: TForm1
  Left = 192
  Top = 107
  Width = 332
  Height = 293
  Caption = \'Form1\'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = \'MS Sans Serif\'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object DBNavigator1: TDBNavigator
    Left = 64
    Top = 72
    Width = 240
    Height = 25
    DataSource = DataSource1
    TabOrder = 0
  end
  object DBEdit1: TDBEdit
    Left = 64
    Top = 112
    Width = 121
    Height = 21
    DataField = \'Nr\'
    DataSource = DataSource1
    TabOrder = 1
  end
  object DBImage1: TDBImage
    Left = 64
    Top = 144
    Width = 121
    Height = 105
    DataField = \'Billede\'
    DataSource = DataSource1
    TabOrder = 2
  end
  object BitBtn1: TBitBtn
    Left = 192
    Top = 224
    Width = 113
    Height = 25
    Caption = \'Billede fra disk\'
    TabOrder = 3
    OnClick = BitBtn1Click
    Glyph.Data = {
      76010000424D7601000000000000760000002800000020000000100000000100
      04000000000000010000120B0000120B00001000000000000000000000000000
      800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
      FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0033BBBBBBBBBB
      BB33337777777777777F33BB00BBBBBBBB33337F77333333F37F33BB0BBBBBB0
      BB33337F73F33337FF7F33BBB0BBBB000B33337F37FF3377737F33BBB00BB00B
      BB33337F377F3773337F33BBBB0B00BBBB33337F337F7733337F33BBBB000BBB
      BB33337F33777F33337F33EEEE000EEEEE33337F3F777FFF337F33EE0E80000E
      EE33337F73F77773337F33EEE0800EEEEE33337F37377F33337F33EEEE000EEE
      EE33337F33777F33337F33EEEEE00EEEEE33337F33377FF3337F33EEEEEE00EE
      EE33337F333377F3337F33EEEEEE00EEEE33337F33337733337F33EEEEEEEEEE
      EE33337FFFFFFFFFFF7F33EEEEEEEEEEEE333377777777777773}
    NumGlyphs = 2
  end
  object Table1: TTable
    Active = True
    DatabaseName = \'c:\\\'
    TableName = \'test.db\'
    Left = 64
    Top = 24
    object Table1Nr: TIntegerField
      FieldName = \'Nr\'
    end
    object Table1Billede: TGraphicField
      FieldName = \'Billede\'
      BlobType = ftGraphic
      Size = 240
    end
  end
  object DataSource1: TDataSource
    DataSet = Table1
    OnStateChange = DataSource1StateChange
    Left = 96
    Top = 24
  end
  object OpenPictureDialog1: TOpenPictureDialog
    Left = 136
    Top = 24
  end
end

Derudover skal du have en paradox 7 database i c:\\ du kalder test.db der indeholder 2 felter:
\"Nr\", Integer og
\"Billede\", Graphic

hvis du vil kab du sætte Nr til at vmre index, og så får du ogsa en fil der hedder test.px og hvis du ud for \"Billede\" angiver en længde på 240 får du også en fil der hedder test.mb

Denne sidste fil indeholder alle dele af billederne der fylder mere end 240 tegn.

Ved at klikke på navigator barens \"+\" kan du indsætte en ny record og så kan du indtaste et tal i første felt og trykke på knappen \"billede fra disk\" og finde et en bmp fil der derefter indsættes i databasen som et billede.

Proceduren:

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if OpenPictureDialog1.execute then
  begin
    dbimage1.Picture.LoadFromFile(OpenPictureDialog1.filename);
  END;
end;

Gør hele arbejdet for dig.

God fornøjelse !!
Avatar billede sjensen Nybegynder
14. november 2000 - 22:18 #4
ups, lidt stavefejl i den forklarende tekst. jeg håber du kan forstå det alligevel !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester