![]() |
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:
und dann die PLZ und die Bundesland
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.
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:
ist der weg richtig oder ändet das wieder bevor es begonnen hat :pale:
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. |
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 ;) |
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. |
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 |
Re: PLZ und Bundesland in DLL hinterlegt
Zitat:
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:
|
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! |
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. |
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 ![]() ![]() oder man verwendet die DLL nur als Daten/Resource-DLL ... also die Strings als Resource verwendet (macht Windows auch oftmals so) |
Re: PLZ und Bundesland in DLL hinterlegt
was ist der Vorteil bz. der Nachteil der getrennten Speicherverwaltung / gemeinsammen Speicherverwaltung :gruebel:
|
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. |
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