![]() |
Datenbank: MySQL • Version: 5.5 • Zugriff über: MyConnection
CRDBGrid Spalte mit einem Edit vergeleichen
Hallo,
möchte hier zwei Inhalte vergleichen! Ist der Inhalt gleich = then begin! Was ist hier falsch?
Delphi-Quellcode:
procedure TForm1.ZeitauftragTimer(Sender: TObject);
var s : string; begin if Edit1.Text = Grid.Locate('Zeitauftrag',s, [loCaseInsensitive]) then begin end; end; |
AW: CRDBGrid Spalte mit einem Edit vergeleichen
1. Die Typen.
2. Ein Grid, das eine Locate-Methode besitzt? |
AW: CRDBGrid Spalte mit einem Edit vergeleichen
1.
Der Vergleich mit
Delphi-Quellcode:
ist schon möglich ... es kommt nur darauf an, was man vergleichen will.
=
Locate gibt bestimmt einen Boolean zurück und somit kann man das Ergebnis auch nur mit einem anderen Boolean vergleichen. Ich hab aber auch garnicht verstanden was du überhaupt vergleichen willst, bzw. was eigentlich passieren soll. 2. Nja, wenn nicht, dann gibt es bestimmt im verbundenen DataSet ein Locate. 3. Wo füllst du eigentlich die Variable
Delphi-Quellcode:
?
s
Also den Vergleichswert, welchen Locate suchen soll. |
AW: CRDBGrid Spalte mit einem Edit vergeleichen
Hallo,
wollte (Datum/Uhrzeit) vergleichen. In der Datenbank ist eine Spalte mit (Datum/Uhrzeit) abgelegt. Beispiel 201311241853 Im Edit1 läuft die aktuelle Zeit und das aktuelle Datum. Format: 201311241726 Wenn dieser Wert dann = ist, möchte ich was ausführen (then begin)! |
AW: CRDBGrid Spalte mit einem Edit vergeleichen
Moin,
Du musst schon den Wert des Feldes Deiner Tabelle aus Deiner Datenbank mit Deinem edit vergleichen. Also etwa so:
Delphi-Quellcode:
Und tschüß
If Tabellenname.FieldByName('spaltenname').AsString = Edit1.Text Then
Begin ... End; |
AW: CRDBGrid Spalte mit einem Edit vergeleichen
Dann gehört dein Datum aber in das s und du bekommst True zurück, wenn etwas gefunden wurde. (aber bei mehreren Vorkommen, wird nur zufällig auf Eines davon gesprungen)
Und was ist, wenn dein Programm mal für eine Sekunde hängt? Dann würde der Eintrag "übersehen". > nach dem suchen, was jetzt oder in der näheren Vergangenheit gepasst hätte > merken was verarbeitet wurde und das bei der nächsten Suche ignorieren > bzw. die Zeit merken, wenn die Funktion zuletzt abgearbeitet wurde (am Anfang der Funktion) > alles suchen, was zwischen jetzt und der gemerkten Zeit liegt > wenn fertig, dann die gemerkte Zeit durch den Startzeitpunkt ersetzen |
AW: CRDBGrid Spalte mit einem Edit vergeleichen
Hallo Himitsu,
da hast Du wohl recht! Wie könnte ich es noch lösen? |
AW: CRDBGrid Spalte mit einem Edit vergeleichen
In dem Du z.B. per SELECT-Statement schaust, ob in der Tabelle ein (bestimmter) Datensatz existiert, dessen Datums-/Zeitfeld in der Vergangenheit liegt.
|
AW: CRDBGrid Spalte mit einem Edit vergeleichen
Zitat:
In diesem Fall würde ich das so machen: 1. Lese aus deiner DB die nächste Alarmzeit aus und speichere sie in einer globalen Variablen AlarmZeit : TDateTime. 2. In deiner Timer-Ereignisbehandlung, wo du vermutlich auch die Anzeige von Datum und Uhrzeit in deinem Edit vornimmst, prüfst du, ob die aktuelle Uhrzeit mit der Alarmzeit übereinstimmt:
Delphi-Quellcode:
Procedure TForm1.Timer1Timer(Sender: TObject);
begin if Now = AlarmZeit then begin SpielMirEinLied; ShowMessage('ALARM!!!'); end; end; |
AW: CRDBGrid Spalte mit einem Edit vergeleichen
Das wird mit sehr hoher Wahrscheinlichkeit aber nicht funktionieren, da der Vergleich in exakt der richtigen Millisekunde stattfinden müsste. Ich würde daher eher auf DateUtils.SecondsBetween o.ä. zurückgreifen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 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