Ist wohl kein Lazarus Weg (eher PHP), aber so würde ich es persönlich lösen.
Code: Alles auswählen
TDeviceIPService = class
private
GeraeteArt : string;
ersteZiffer : string;
Ziffernrest : string;
ZiffernInInteger : integer;
StelleZwei : integer;
i : integer;
IPAdresse : string;
IPAdresseGeraeteklasse : string;
public
property IntProp: Integer read FIntProp write FIntProp;
end;
function DeviceIPService.getIPbyName(Ziffern : string) : string;
var
begin
GeraeteArt := copy (Ziffern,1,2);
if GeraeteArt = 'xx' then IPAdresseGeraeteklasse := '10.19.2';
if GeraeteArt = 'yy' then IPAdresseGeraeteklasse := '172.24.7.';
ersteZiffer := copy (Ziffern,3,1);
Ziffernrest := copy (Ziffern,4,3);
ZiffernInInteger := strtoint (Ziffernrest);
if RBxx.Checked
then // Loopback Adresse xx
begin
StelleZwei := 0;
for i := 1 to 4 do
if ZiffernInInteger > 200 then
begin
inc(StelleZwei);
ZiffernInInteger := ZiffernInInteger - 200;
end;
IPAdresse := IPAdresseGeraeteklasse + inttostr (StelleZwei) + ersteZiffer + '.' + inttostr (ZiffernInInteger);
end
else IPAdresse := IPAdresseGeraeteklasse + inttostr (ZiffernInInteger); // Loopback Adresse yy
MaschinennameInIP := IPAdresse;
end;
Den Code habe ich jetzt einfach zusammen geschustert, da ich hier kein Lazarus habe (bin grade zu Gast in Bayern) und dient dem Verständnis.
Es ist eine Klasse mit deiner Funktion aus den anderen Thread. Die legst du in einer Unit ab und kannst sie von überall aufrufen, wo du sie brauchst. Statt also der Globalen Variable, eben
Das hat (für mich) folgende Vorteile. Ich sehe sofort woher meine GeräteIP kommt. Bei Fehlern muss ich also in dem Service schauen, was dort lost ist und muss nur das Service Debuggen, aber nicht das halbe/ganze Program. Bei großen Projekten mit Globalen Variablen kannst du dir nie sicher sein, wo sie alle verstreut sind und ob nur ausgelesen werden und nicht irgendwo überschrieben werden. Man kann das Service an weitere Begebenheiten anpassen, erweitern und nicht das ganze Programm.
Wie gesagt, das ist die vorgehensweise wie ich in PHP arbeite. Services sind Programmteile die eine bestimmte ServiceLeistung erbringen und dafür kompakt und übersichtlich sind.
Wie in einer Gaststätte. Du setzt dich hin und ein Kellner(Service) kommt mit einer Bestellkarte und der Frage, ob du was trinken möchtest. Der kocht es aber nicht sondern "kellnert" eben nur. Ein Service der Gaststätte.