AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

if Anweisung zur Laufzeit ändern?

Ein Thema von Alterauge · begonnen am 13. Sep 2012 · letzter Beitrag vom 13. Sep 2012
Antwort Antwort
Seite 1 von 2  1 2      
Alterauge

Registriert seit: 4. Mär 2011
306 Beiträge
 
Delphi 2010 Professional
 
#1

if Anweisung zur Laufzeit ändern?

  Alt 13. Sep 2012, 10:13
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?
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: if Anweisung zur Laufzeit ändern?

  Alt 13. Sep 2012, 10:19
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
Ralph

Geändert von Jumpy (13. Sep 2012 um 10:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: if Anweisung zur Laufzeit ändern?

  Alt 13. Sep 2012, 10:19
Selbst mit der besten Glaskugel läßt sich Deine Frage nicht beantworten...

Was willst Du den abtesten?

Mavarik
  Mit Zitat antworten Zitat
Alterauge

Registriert seit: 4. Mär 2011
306 Beiträge
 
Delphi 2010 Professional
 
#4

AW: if Anweisung zur Laufzeit ändern?

  Alt 13. Sep 2012, 10:41
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?

Geändert von Alterauge (13. Sep 2012 um 10:44 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: if Anweisung zur Laufzeit ändern?

  Alt 13. Sep 2012, 10:45
(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?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: if Anweisung zur Laufzeit ändern?

  Alt 13. Sep 2012, 10:46
Na wenn die Einsatznummer neu erstellt wurde, dann hast Du doch die Einsatznummern...

Mavarik
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: if Anweisung zur Laufzeit ändern?

  Alt 13. Sep 2012, 10:51
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!
Markus Kinzler
  Mit Zitat antworten Zitat
Alterauge

Registriert seit: 4. Mär 2011
306 Beiträge
 
Delphi 2010 Professional
 
#8

AW: if Anweisung zur Laufzeit ändern?

  Alt 13. Sep 2012, 10:52
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ücktthen begin
    CRDBGrid1.Canvas.Brush.Color := clred;
     CRDBGrid1.Canvas.Font.Color := clblack;
       end else
    if Wert = '0 Eingangthen begin
     CRDBGrid1.Canvas.Brush.Color := clyellow;
     CRDBGrid1.Canvas.Font.Color := clblack;
    end else
    if Wert = 'Bearbeitungthen begin
     CRDBGrid1.Canvas.Brush.Color := clFuchsia;
     CRDBGrid1.Canvas.Font.Color := clblack;
     end else
       if Wert = 'Vor Ort beendetthen 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;

Geändert von Alterauge (13. Sep 2012 um 10:56 Uhr)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

AW: if Anweisung zur Laufzeit ändern?

  Alt 13. Sep 2012, 10:55
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.
Andreas
  Mit Zitat antworten Zitat
Alterauge

Registriert seit: 4. Mär 2011
306 Beiträge
 
Delphi 2010 Professional
 
#10

AW: if Anweisung zur Laufzeit ändern?

  Alt 13. Sep 2012, 11:01
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?

Geändert von Alterauge (13. Sep 2012 um 11:04 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz