Avatar billede dl Nybegynder
12. december 2004 - 11:08 Der er 7 kommentarer og
1 løsning

Setup i et program

Jeg skal have lavet en setup i mit program.
Jeg kan godt lave sådan en amatør setup, som gemmer og åbner alle de gemte stillinger.

Men jeg kunne godt tænkte at lære at kode en sådan professional setup, en man kan bygge vidre på, til en vær tid.

Link, kode, og alt andet er velkommen.
Compomenter vil jeg ikke have, da jeg så vidt muligt vil kode det hele selv. Så lære man jo også mere. :P
Avatar billede stone Forsker
12. december 2004 - 12:11 #1
er det et installations program du mener? eller er det en intern opsætning
Avatar billede dl Nybegynder
12. december 2004 - 12:49 #2
intern opsætning
Avatar billede delphi Nybegynder
12. december 2004 - 18:20 #3
Jeg vil anbefale af du bruger ini filer til den slags, evt et TCLientSet, der kan benytte XML-filer (så lærer du også noget om den slags - og det er der sten sikkert fremtid i).  Sig til hvis du vil have, at jeg skal prøve at lave en implementation af INI filer, men via TCLienDataSet og gemt i XML....
Avatar billede delphi Nybegynder
12. december 2004 - 18:20 #4
TCLientSet = Forkert.  Det hedder som jeg skriver senere TCLienDataSet (Jeg HAR brug for en staveplade)
Avatar billede dl Nybegynder
18. december 2004 - 13:03 #5
Du nå meget gerne, lave noget kode. Noget hvor den gemmer og den læser.

Jeg går ud fra man læser alle indstillinger i startet af programmet og gemmer det hele hvis man ændre i det. Da jeg selv ville kalde alle info direkte fra setupform.

Jeg har faktisk ikke set så meget på database i delphi, da jeg er meget utilfred med paradoxx.

Kan godt smide nogle flere point ud, hvis det er.

//dl

min email: dennis.larsen@gmail.com
Avatar billede delphi Nybegynder
19. december 2004 - 22:34 #6
Jeg har lavet et lille test program.  Start med at lave en ny application (File -> New -> Application).  Hvis der nu vises et kode window, så tryk F12 for at toggle Form/Unit og du skulle nu gerne se en (tom) Form1.  Højreklik på formen og vælg i pop-up menuen punktet: "View as Text".  Slet indholdet og kopier istedet nedenstående form definition ind:

object MainForm: TMainForm
  Left = 301
  Top = 165
  Width = 376
  Height = 368
  Caption = 'ClientDataSet Demo - by Niels Peter Gibe'
  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 Label1: TLabel
    Left = 39
    Top = 92
    Width = 35
    Height = 13
    Caption = 'PostNr:'
  end
  object Label2: TLabel
    Left = 135
    Top = 92
    Width = 15
    Height = 13
    Caption = 'By:'
  end
  object buCreateDataSet: TButton
    Left = 49
    Top = 16
    Width = 123
    Height = 25
    Caption = '&Create/Clear DataSet'
    TabOrder = 0
    OnClick = buCreateDataSetClick
  end
  object buLoadDataSet: TButton
    Left = 195
    Top = 48
    Width = 123
    Height = 25
    Caption = '&Load Data Set'
    TabOrder = 1
    OnClick = buLoadDataSetClick
  end
  object buSaveDataSet: TButton
    Left = 195
    Top = 16
    Width = 123
    Height = 25
    Caption = '&Save Data Set'
    Enabled = False
    TabOrder = 2
    OnClick = buSaveDataSetClick
  end
  object buFillDataSet: TButton
    Left = 123
    Top = 120
    Width = 123
    Height = 25
    Caption = '&Fill Data Set'
    Enabled = False
    TabOrder = 3
    OnClick = buFillDataSetClick
  end
  object buClose: TButton
    Left = 123
    Top = 296
    Width = 123
    Height = 25
    Caption = '&Close'
    TabOrder = 4
    OnClick = buCloseClick
  end
  object edPostNummer: TEdit
    Left = 79
    Top = 88
    Width = 41
    Height = 21
    TabOrder = 5
    Text = '8260'
  end
  object edBy: TEdit
    Left = 159
    Top = 88
    Width = 169
    Height = 21
    TabOrder = 6
    Text = 'Viby J'
  end
  object DBGrid1: TDBGrid
    Left = 8
    Top = 152
    Width = 345
    Height = 97
    DataSource = DataSource1
    TabOrder = 7
    TitleFont.Charset = DEFAULT_CHARSET
    TitleFont.Color = clWindowText
    TitleFont.Height = -11
    TitleFont.Name = 'MS Sans Serif'
    TitleFont.Style = []
  end
  object DBNavigator1: TDBNavigator
    Left = 64
    Top = 256
    Width = 240
    Height = 25
    DataSource = DataSource1
    TabOrder = 8
  end
  object cdsDemo: TClientDataSet
    Aggregates = <>
    Params = <>
    Left = 130
    Top = 200
  end
  object DataSource1: TDataSource
    DataSet = cdsDemo
    Left = 194
    Top = 200
  end
end

Højre klik igen og vælg denne gang punktet View As Form.  Du skulle nu gerne se en form med nogle knapper og komponenter på. Tryk F12 for at toggle Form/Unit og du skulle nu se koden til den gamle mainform.  Erstat al koden med nedenstående kode:

unit fmMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, DBClient, ExtCtrls, DBCtrls, Grids, DBGrids;

type
  TMainForm = class(TForm)
    cdsDemo: TClientDataSet;
    DataSource1: TDataSource;
    DBNavigator1: TDBNavigator;
    DBGrid1: TDBGrid;
    Label1: TLabel;
    edPostNummer: TEdit;
    Label2: TLabel;
    edBy: TEdit;
    buCreateDataSet: TButton;
    buSaveDataSet: TButton;
    buLoadDataSet: TButton;
    buFillDataSet: TButton;
    buClose: TButton;
    procedure buCloseClick(Sender: TObject);
    procedure buCreateDataSetClick(Sender: TObject);
    procedure buFillDataSetClick(Sender: TObject);
    procedure buSaveDataSetClick(Sender: TObject);
    procedure buLoadDataSetClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.buCreateDataSetClick(Sender: TObject);
begin
  cdsDemo.Active := False;      // Close any current database
  cdsDemo.FieldDefs.Clear;      // Delete field definitions

  // Add fields
  With cdsDemo.FieldDefs.AddFieldDef Do
    Begin
      Name    := 'PostNummer';
      DataType := ftInteger;
      Size    := 0;
      Required := True;
    End;

  With cdsDemo.FieldDefs.AddFieldDef Do
    Begin
      Name    := 'By';
      DataType := ftString;
      Size    := 30;
      Required := True;
    End;

  // Add Index
  cdsDemo.IndexDefs.Clear;      // Clear any existing indexes
  With cdsDemo.IndexDefs.AddIndexDef Do
    Begin
      Name := '';              // Primary key, no name
      Fields := 'PostNummer';
      Options := [ixPrimary];
    End;

  cdsDemo.CreateDataSet;        // Create datatable (in memory)
  cdsDemo.Active := True;      // Open and activate dataset

  // Enable disabled buttons
  buSaveDataSet.Enabled := True;
  buFillDataSet.Enabled := True;
end;

procedure TMainForm.buFillDataSetClick(Sender: TObject);
Begin
  cdsDemo.Insert;
  cdsDemo.FieldByName('PostNummer').AsString := edPostNummer.Text;
  cdsDemo.FieldByName('By').AsString        := edBy.Text;
  cdsDemo.Post;
end;

procedure TMainForm.buSaveDataSetClick(Sender: TObject);
begin
  cdsDemo.SaveToFile('DemoClientDataSet.xml', dfXML);
end;

procedure TMainForm.buLoadDataSetClick(Sender: TObject);
begin
  cdsDemo.LoadFromFile('DemoClientDataSet.xml');

  // Enable disabled buttons
  buSaveDataSet.Enabled := True;
  buFillDataSet.Enabled := True;
end;

procedure TMainForm.buCloseClick(Sender: TObject);
begin
  Close;
end;

end.


Gem nu uniten under navnet fmMain.  du kan nu køre og lege med programmet samt studere koden.  Bemærk at hvis du gemmer indtastede data, så gemmes de i filen DemoClientDataSet.xml.  Prøv at åbne denne fil i din Internet explorer (dobbeltklik på filen).  Som du kan se indeholder denne fil både metadata og de indtastede data.
Avatar billede delphi Nybegynder
19. december 2004 - 22:35 #7
Hmm, det var vist et svar værdigt....
Avatar billede dl Nybegynder
19. december 2004 - 22:55 #8
k, tak. det er da noget her, jeg skal se på.  hehe
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