Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi PLZ und Bundesland in DLL hinterlegt (https://www.delphipraxis.net/139434-plz-und-bundesland-dll-hinterlegt.html)

Kunoishi 28. Aug 2009 19:15


PLZ und Bundesland in DLL hinterlegt
 
Ich habe hier mal eine neue Frage

Meine Idee ist es die PLZ und dazugehöriges Bundesland in einer bzw. zwei DLL’s zu hinterlegen (plz.dll, bund.dll) dazu habe ich in jeder dll eine ComboBox mit den Postleitzahlen und in der anderen dll das gleiche mit den Bundesländern gemacht.
Nun wollte ich in meinem Projekt zwei Editfelder haben wo ich die PLZ als Beispiel eingebe und er aus der bund.dll mir dann das dazugehörige Bundesland holt und in dem anderen Editfeld aus meinem Projekt dort übergibt.

Frage stellt sich nur wie ich in dem Projekt die Dll’s anspreche damit diese den Wert in das jeweilige Editfeld übergeben.
Und wie schaffe ich es, dass er die PLZ den Bundesländern richtig zuordnet wenn ich diese getrennt in den jeweiligen Dll’s lasse.

Grundidee war:
Delphi-Quellcode:
library Formdll;

uses
  dialogs,
  sysutils,
  PLZ in 'PLZ.pas' {PLZ},
  Bundesland in 'Bundesland.pas' {Bundesland};

procedure Fensteranzeigen;stdcall;
begin
  PLZ1:= TPLZ.create(nil);
  try
    PLZ1.showmodal;
  finally
    Plz1.Release; // .free;
  end
end;

procedure NewExit;
begin
  showMessage('Exitprozedur der DLL');
  { DLL wird entladen }
end;

exports
       PLZ.
       Bundesland;

begin
   AddExitProc(NewExit);
   showmessage('DLL wird geladen ...');
end.
und dann die PLZ und die Bundesland
Delphi-Quellcode:
unit Bundesland;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls;

type
  TBundesland = class(TForm)
    Button1: TButton;
    ComboBox1: TComboBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Bundesland1: TBundesland;

implementation

{$R *.DFM}

procedure TBundesland.Button1Click(Sender: TObject);
begin
  close
end;

end.
Delphi-Quellcode:
unit PLZ;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls;

type
  TPLZ = class(TForm)
    Button1: TButton;
    ComboBox1: TComboBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  PLZ1: TPLZ;

implementation

{$R *.DFM}

procedure TPLZ.Button1Click(Sender: TObject);
begin
  close
end;

end.
ist der weg richtig oder ändet das wieder bevor es begonnen hat :pale:

Progman 28. Aug 2009 19:39

Re: PLZ und Bundesland in DLL hinterlegt
 
PLZ und Bundesländer lassen sich nicht so einfach zuordnen, da die PLZ-Bereiche nicht mit den Grenzen der Bundesländer übereinstimmen. Beisp. 9xxxx hast du in Thüringen und Bayern.
Besser wäre, zu jeder PLZ ein Kürzel des Bundeslandes speichern, wenn eine Zuordnung möglich sein soll. Und ob da eine DLL die optimale Lösung ist? Eine kleine Datenbanktabelle, XML-Datei oder zur Not sogar eine Ini-Datei könnten die Daten aufnehmen.
Kommt aber auch darauf an, was du später damit machen willst ;)

Kunoishi 28. Aug 2009 19:43

Re: PLZ und Bundesland in DLL hinterlegt
 
Das mit der Ini-Datei habe ich schon durch. Der Nachteil war darin, dass die Daten einfach geändert werden konnten.
Das andere Problem mit den überregionalen lasse ich erst mal ausser acht.

Kunoishi 28. Aug 2009 19:45

Re: PLZ und Bundesland in DLL hinterlegt
 
ach ja und ich wollte mich mal mit den Strings auseinander setzen, aus diesem Grund wollte ich keine Datenbank oder XML einsetzen
sondern nur reine Strings

jfheins 28. Aug 2009 19:52

Re: PLZ und Bundesland in DLL hinterlegt
 
Zitat:

Zitat von Kunoishi
Das mit der Ini-Datei habe ich schon durch. Der Nachteil war darin, dass die Daten einfach geändert werden konnten.
...

Ähhh .... was ist daran ein Problem?

Stell dir vor, eine PLZ ändert sich. So kann man als User drangehen ... hmmm - mal gucken vielleicht kann man das mit einem Texteditor ändern. Ah ja super, da ist ne Textdatei, suchen ersetzen, bingo.

Mach doch einfach so eine Datei:
Zitat:

12345 MVP,NDS Frankfut am Main
PLZ Bundesland1[,Bundesland2] Stadtname
Da haste auch mit Strings zu tun und es ist nicht unnötig kompliziert ;)

himitsu 28. Aug 2009 19:56

Re: PLZ und Bundesland in DLL hinterlegt
 
das hättest du jetzt aber auch an den vorherigen Post noch draneditieren können!

22113 - Hamburg (Hamburg)
22113 - Oststeinbek (Schleswig Holstein)

und ich weiß nicht was Strings mit DLLs, INIs und XMLs zu tun oder nicht zu tun haben sollen.

PS: String und DLL vertragen sich nicht, wegen der getrennten Speichermanager!

Kunoishi 28. Aug 2009 20:00

Re: PLZ und Bundesland in DLL hinterlegt
 
ich wollte halt feste werte in der Dll hinterlegen die ich dann von dort abrufen kann
das müßte doch gehen abgesehen von den eigenheiten des PLZ-Verseichnisses mit dem Straßenverzeichnis.

himitsu 28. Aug 2009 20:08

Re: PLZ und Bundesland in DLL hinterlegt
 
PChar und getrennte Speicherverwaltung ... kennt man z.B. von der WinAPI

WideString (OleString) ... bekannt von Vielem, was mit OLE zu tun hat

oder gemeinsame Speicherverwaltung ... genannt Hier im Forum suchenShareMem/Bei Google suchenShareMem



oder man verwendet die DLL nur als Daten/Resource-DLL ... also die Strings als Resource verwendet (macht Windows auch oftmals so)

Kunoishi 28. Aug 2009 20:12

Re: PLZ und Bundesland in DLL hinterlegt
 
was ist der Vorteil bz. der Nachteil der getrennten Speicherverwaltung / gemeinsammen Speicherverwaltung :gruebel:

sx2008 28. Aug 2009 20:17

Re: PLZ und Bundesland in DLL hinterlegt
 
Mit einem Konstanten-Array kein Problem:
Delphi-Quellcode:
const
PLZarray : array[0..2][0..1] of string = (
('10111', 'Berlin'),
('70132', 'Stuttgart'),
('87902', 'München')
);


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz