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.739 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.154 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.688 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
Jumpy

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

AW: if Anweisung zur Laufzeit ändern?

  Alt 13. Sep 2012, 11:02
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!
Die Variable Wert ist ja ein String. Das Feld in der BB hieß aber irgendwas mit Nummer. Hätte ja sein können, dass das in der DB ein numerisches Feld ist. Macht dann .Value einen automatischen Cast oder knallt das dann?
Ralph

Geändert von Jumpy (13. Sep 2012 um 11:23 Uhr) Grund: Falschen Thread zitiert
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

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

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.874 Beiträge
 
Delphi 11 Alexandria
 
#8

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
 
#9

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
mkinzler
(Moderator)

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

AW: if Anweisung zur Laufzeit ändern?

  Alt 13. Sep 2012, 11:02
Duz sagst immer du willst etwas Lernen, berücksichtigst aber nicht die einfachsten Tipps. Zu wurdest schon öfterst ( eigentlich bei jeder deiner Fragen) auf die Bedeutung des Parameters Sender hingeweisen und das dieser der Verwendung einer festen Objektreferenz vorzuziehen ist. Trotzdem verendest du das jedesmal wieder ( CRDBGrid1)!

Kommen weitere Werte hinzu und soll dann auf diese Werte später besonderst reagiert werden, dann nomalisiere diese in der Datenbank und lege dort auch das Verhalten ab.

Z.B. Tabelle Zuordnung (oder Phase)

ID Bez Hintergrund Schrift
1 'ausgerückt' #FF0000 #000000
0 '0 Eingang' ...

In der abgefragten Tabelle dann statt dem Text die ID auf die Zuordnungstabelle (FK) und bei der Abfrage die Farben hinzujoinen
Zitat:
Tu dir selbst einen Gefallen, und benenne deine Controls vernünftig. Das ist ja grausig so!
Das ist auch eine Sache, die man ihm in jedem seiner Fragen sagt.
Markus Kinzler
  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 20: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-2025 by Thomas Breitkreuz