Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   if Anweisung zur Laufzeit ändern? (https://www.delphipraxis.net/170361-if-anweisung-zur-laufzeit-aendern.html)

Alterauge 13. Sep 2012 10:13

if Anweisung zur Laufzeit ändern?
 
Also meine Frage,

Delphi-Quellcode:
   var
  Wert: string;
 begin
  if (CRDBGrid2.DataSource.DataSet.RecordCount = 0) then
     Exit;
   Wert := CRDBGrid2.DataSource.DataSet.FieldByName('Einsatznummer').Value;
   if Wert = '???' then begin // hier ist mein Problem! Die Einsatznummer änder sich ja! Also kann ich keinen festen Wert bestimmen!
Die Einsatznummer ändern sich ja immer wieder zur Laufzeit! Was nun? Hat einer eine Idee?

Jumpy 13. Sep 2012 10:19

AW: if Anweisung zur Laufzeit ändern?
 
Ich versteh das Problem nicht. Irgendwo kommt die Nummer ja her bzw. ist irgendwo in deinem Programm bekannt. Speicher die in eine Variable und Vergleiche in deiner If-Anweisung Wert mit dieser Variable.

Was im Zweifel immer funktioniert ist
if wert = wert then begin...

Achja. Da wert ja ein String ist, dann nimm doch auch ...FieldByName("blub").AsString

Mavarik 13. Sep 2012 10:19

AW: if Anweisung zur Laufzeit ändern?
 
Selbst mit der besten Glaskugel läßt sich Deine Frage nicht beantworten...

Was willst Du den abtesten?

Mavarik

Alterauge 13. Sep 2012 10:41

AW: if Anweisung zur Laufzeit ändern?
 
OK! :-)
Wenn ich zur Laufzeit einen neuen Einsatz eröffne, wird eine neue Einsatznummer erstellt! (Datenbank)
Jetzt zur if Anweisung:

(ist die Einsatznummer so und so), and ,(das Einsatzfahrzeug hat einen Wert von '3') then
ergibt das den Wert = 'ausgerückt' in der Datenbank!
__________________________________________________ __________________________________________________ ________

Ist der Wert im DBGrid ausgerückt, färbt sich die Zeile rot!
Es darf sich aber nur die Zeile färben die die Einsatznummer hat! (und nicht alle Einsätze)

Vielleicht jetzt verständlich? Oder noch nicht?

Medium 13. Sep 2012 10:45

AW: if Anweisung zur Laufzeit ändern?
 
Zitat:

Zitat von Alterauge (Beitrag 1182727)
(ist die Einsatznummer so und so), and ,(das Einsatzfahrzeug hat einen Wert von '3') then

Das rote wäre der interessante Teil. Wo kommt der her, und was sagt er aus? Wann wird der gemacht, wer macht den?

Mavarik 13. Sep 2012 10:46

AW: if Anweisung zur Laufzeit ändern?
 
Na wenn die Einsatznummer neu erstellt wurde, dann hast Du doch die Einsatznummern...

Mavarik

mkinzler 13. Sep 2012 10:51

AW: if Anweisung zur Laufzeit ändern?
 
Zitat:

Achja. Da wert ja ein String ist, dann nimm doch auch ...FieldByName("blub").AsString
Warum sollte man den String zuerst in einen String konvertieren? .as<Typ> ist ein Cast und deshalb überflüssig!

Alterauge 13. Sep 2012 10:52

AW: if Anweisung zur Laufzeit ändern?
 
Ist bestimmt ganz einfach!
Ich denke nur zu kompliziert!

Ach hier die Einfärbung rot!
Delphi-Quellcode:

procedure TForm1.CRDBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
   var
  i : Integer;
  Wert: string;
 begin
  if (CRDBGrid1.DataSource.DataSet.RecordCount = 0) then
     Exit;
   Wert := CRDBGrid1.DataSource.DataSet.FieldByName('Zuordnung').Value;
   if Wert = 'ausgerückt' then begin
    CRDBGrid1.Canvas.Brush.Color := clred;
     CRDBGrid1.Canvas.Font.Color := clblack;
       end else
    if Wert = '0 Eingang' then begin
     CRDBGrid1.Canvas.Brush.Color := clyellow;
     CRDBGrid1.Canvas.Font.Color := clblack;
    end else
    if Wert = 'Bearbeitung' then begin
     CRDBGrid1.Canvas.Brush.Color := clFuchsia;
     CRDBGrid1.Canvas.Font.Color := clblack;
     end else
       if Wert = 'Vor Ort beendet' then begin
     CRDBGrid1.Canvas.Brush.Color := cllime;
     CRDBGrid1.Canvas.Font.Color := clblack;
   end else begin
 
    end;
   CRDBGRid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
begin
   CRDBGRid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
        if (gdSelected in State) then
     begin
            // Form1.CRDBGrid1.Canvas.Brush.Color := clSilver;
            // Form1.CRDBGrid1.Canvas.Font.Color:=clblack;
        end;
     form1.crDBGrid1.Canvas.FillRect(Rect);
     form1.crDBGrid1.Canvas.TextOut(Rect.Left + 2, Rect.Top + 1, Column.Field.AsString);

begin
  with MyTable1 do
    for i := 5 to Pred(Fields.Count) do
      Fields[i].DisplayWidth := 255;
end;
end;
end;
__________________________________________________ __________________________________________________ ___

Die Einsatznummer wird abgeholt, aus einem Memo!
Delphi-Quellcode:
procedure TForm1.AdvGlowButton28Click(Sender: TObject);
begin
DBEdit9.Text := Copy(DBMemo3.Text, Length(DBMemo3.Text)-9, 10);
end;

shmia 13. Sep 2012 10:55

AW: if Anweisung zur Laufzeit ändern?
 
Und was ist wenn mehrere Einsatzfahrzeuge zur gleichen Zeit ausgerückt sind?
Dann sollten doch alle rot markiert werden, oder nicht?
Somit wäre schon der Ansatz die Einsatznummer abzufragen falsch.
Du musst schlichtweg den Status des Fahrzeugs abfragen um den Datensatz im DBGrid die gewünschte Farbe zu geben.

Ausserdem hast du zu wenig Statuswerte.
Ein Einsatzfahrzeug kann auch "verunfallt" sein.

Alterauge 13. Sep 2012 11:01

AW: if Anweisung zur Laufzeit ändern?
 
Zitat:

Zitat von shmia (Beitrag 1182739)
Und was ist wenn mehrere Einsatzfahrzeuge zur gleichen Zeit ausgerückt sind?
Dann sollten doch alle rot markiert werden, oder nicht?
Somit wäre schon der Ansatz die Einsatznummer abzufragen falsch.
Du musst schlichtweg den Status des Fahrzeugs abfragen um den Datensatz im DBGrid die gewünschte Farbe zu geben.

Ausserdem hast du zu wenig Statuswerte.
Ein Einsatzfahrzeug kann auch "verunfallt" sein.


Es reicht wenn ein Fahrzeug ausrückt!
Wenn ein Fahrzeug disponiert ist, und nicht ausrückt(Status3) gibt ein (Timer) Alarm!

Du musst schlichtweg den Status des Fahrzeugs abfragen??? // Was machst Du wenn Du drei unterschiedliche Einsätze hast?
Nur eine Status abfrage geht nicht? Oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 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