![]() |
Datenbank: Abs • Version: 7 • Zugriff über: Delphi
DBEdit und Edit vergleichen
Morgen,Morgen
ich möchte in einer Absolute Database eine Festplattennummer speichern. Das geht wunderbar.Ich möchte aber nicht,dass einer den gesamten Ordner auf einen anderen Rechner kopiert und somit eine weitere Lizenz hat. (Habe eine Software von einer Firma,dort gehts aber):cyclops: Habe den gesamten Ordner auf einen anderen PC rübergenommen.Beim Start wird mir auch die Seriennummer von dem vorherigen Rechner angezeigt und die vom Neuen-PC. Mein Problem ist der Seriennummervergleich. Im Edit sehe ich die Neue SN und im DBEdit die alte SN. Kann bitte jemand helfen...Ich bin bald am verzweifeln :oops: Hier der Code von Form Activate:
Delphi-Quellcode:
procedure TForm27.FormActivate(Sender: TObject);
begin DBEdit1.DataSource.DataSet.Edit; DBEdit2.DataSource.DataSet.Edit; DBEdit3.DataSource.DataSet.Edit; DBEdit4.DataSource.DataSet.Edit; DBEdit2.Field.Value := DBEdit2.Field.AsFloat + DBEdit1.Field.AsFloat; if DBEdit2.Text = '30' then DBEdit3.Text := '30'; if DBEdit3.Text = '30' then Label3.Caption:='Leider ist der Testzeitraum beendet!'; if DBEdit3.Text = '30' then ADvGlassButton1.Visible:=False; if DBEdit3.Text = '30' then Edit1.Visible:=False; if DBEdit3.Text = '30' then Label1.Visible:=False; if DBEdit3.Text = '30' then DBText2.Visible:=False; if DBEdit3.Text = '30' then AdvCircularProgress1.Visible:=False; DBEdit2.DataSource.DataSet.Post; //Abfrage ob DB existiert if not FileExists(ExtractFilepath(ParamStr(0)) + 'serv.abs') then ShowMessage('Sie haben versucht dieses Programm zu manipulieren!') end; Hier der Code von Form Create:
Delphi-Quellcode:
procedure TForm27.FormCreate(Sender: TObject);
const screenwidthdev = 1280; // Einstellungen auf dem Entwicklungsrechner screenheightdev = 720; // Einstellungen auf dem Entwicklungsrechner var x,y:integer; volName, fsName: array[0..255] of char; serNum, maxLen, Flags : Cardinal; begin scaled := true; x:= Screen.width; y:= Screen.Height; if(y <> ScreenHeightDev) or (x <> ScreenwidthDev) then begin Form27.Height := (Form27.ClientHeight* y div ScreenHeightDev) + Form27.Height- Form27.ClientHeight; Form27.Width := (Form27.ClientWidth * x div ScreenWidthDev) + Form27.Height - Form27.ClientHeight; scaleBy(x,Screenwidthdev); end; //Seriennummer FillChar(volName, SizeOf(volName), 0); FillChar(fsName, SizeOf(fsName), 0); if GetVolumeInformation(PChar('C:\\'), volName, SizeOf(volName), @serNum, maxLen, Flags, fsName, SizeOf(fsName)) then begin DBEdit4.Text:= IntToHex(serNum, 12);//erst waren es 8 Nummern Edit2.Text:= IntToHex(serNum, 12); //Ende Seriennummer auslesen //SN vergleichen if DBEdit4.Text = Edit2.Text then Form27.Show else begin if DBEdit4.Text <= Edit2.Text then ShowMessage('Das ist nicht der Installations-PC!Kaufen Sie sich eine Lizenz!') else begin if DBEdit4.Text >= Edit2.Text then ShowMessage('Das ist nicht der Installations-PC!Kaufen Sie sich eine Lizenz!') else begin if DBEdit4.Text <= Edit2.Text then Form27.Close else begin if DBEdit4.Text >= Edit2.Text then Form27.Close end; end; end; end; end; end; |
AW: DBEdit und Edit vergleichen
Gib deinen Komponenten erst einmal aussagekräftige Bezeichner.
Dann verwende begin..end an allen sinnvollen Stellen und... ... formatiere deinen Code. |
AW: DBEdit und Edit vergleichen
:cyclops:
sorry, aber das ist unterirdisch ... |
AW: DBEdit und Edit vergleichen
das mag sein.Meine Frage war nur DBEdit und Edit vergleichen.
Bin kein Profi.:oops: |
AW: DBEdit und Edit vergleichen
Was ist genau dein Problem?
|
AW: DBEdit und Edit vergleichen
Ich möchte nur,wenn im DBEdit4 die alte gespeicherte SN-Nr. vom PC1 und im Edit2 die SN-Nr. vom PC2 die ja neu abgefragt wird vergleichen.
Wenn diese nicht stimmt,Form Close etc. (Ich komm nicht klar mit der Abfrage größer,kleiner usw.:oops:
Delphi-Quellcode:
//SN vergleichen
if DBEdit4.Text = Edit2.Text then Form27.Show else begin if DBEdit4.Text <= Edit2.Text then ShowMessage('Das ist nicht der Installations-PC!Kaufen Sie sich eine Lizenz!') else begin if DBEdit4.Text >= Edit2.Text then ShowMessage('Das ist nicht der Installations-PC!Kaufen Sie sich eine Lizenz!') else begin if DBEdit4.Text <= Edit2.Text then Form27.Close else begin if DBEdit4.Text >= Edit2.Text then Form27.Close end; |
AW: DBEdit und Edit vergleichen
Es gibt doch eigentlich nur 2 Fälle Gleichheit oder nicht.
Delphi-Quellcode:
if DBEdit4.Text = Edit2.Text then
begin Form27.Show; end else begin ShowMessage('Das ist nicht der Installations-PC!Kaufen Sie sich eine Lizenz!'); Form27.Close; end; |
AW: DBEdit und Edit vergleichen
mkinzler hat recht. Anmerken könnte man noch, dass SameText einen Vergleich ermöglicht, der Case-Insensitive ist...
|
AW: DBEdit und Edit vergleichen
Und anstatt auf irgendwelche Controls zuzugreifen sollte man besser die dahinterliegenden Daten vergleichen.
|
AW: DBEdit und Edit vergleichen
Danke!!!
Hab's probiert.Aber es funktioniert noch nicht.Es passiert garnichts.:oops: Muss ich vielleicht noch die ADOTabl1 in den Edit Modus versetzen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:35 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 by Thomas Breitkreuz