AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi OnStateChange Ereignis Problem
Thema durchsuchen
Ansicht
Themen-Optionen

OnStateChange Ereignis Problem

Ein Thema von needatip · begonnen am 22. Nov 2008 · letzter Beitrag vom 11. Dez 2008
Antwort Antwort
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#1

OnStateChange Ereignis Problem

  Alt 22. Nov 2008, 10:47
Datenbank: MS SQL Server • Version: 2000 • Zugriff über: ADO
Hallo, ich ändere im OnStateChange Ereignis die Farben der Komponenten auf meinem Formular und zwar abhängig vom gerade verwendeten Status, Einfügen, Ändern etc.

Delphi-Quellcode:
...
      case (sender as TDataSource).DataSet.State of
      dsEdit, dsInsert: begin
          for i := 0 to ComponentCount - 1 do
          begin
            if Components[i] is TDBEdit then TDBEdit(Components[i]).Color := clWhite;
            if Components[i] is TDBLookupComboBox then TDBLookupComboBox(Components[i]).Color := clWhite;
            if Components[i] is TDBMemo then TDBMemo(Components[i]).Color := clWhite;
          end;
        end;
      dsBrowse: begin
          for i := 0 to ComponentCount - 1 do
          begin
            if Components[i] is TDBEdit then TDBEdit(Components[i]).Color := $00FFE6E1;
            if Components[i] is TDBLookupComboBox then TDBLookupComboBox(Components[i]).Color := $00FFE6E1;
            if Components[i] is TDBMemo then TDBMemo(Components[i]).Color := $00FFE6E1;
          end;
        end;
...
Jetzt hab ich auf dem Formular noch eine Checkbox mit der ich mittels AutoEdit meiner DataSource alle Komponenten auf sog. 'Dauerweiß' einfärben will.
Dabei sollen alle Komponenten, solange die Checkbox gecheckt ist, weiß bleiben. d.h. auch beim weiteren Scrollen, blättern usw.
Erst wenn die Checkbox wieder 'unchecked' ist, soll auch die Farbe der Komponenten wieder geändert werden.

Delphi-Quellcode:
...
begin
  if CheckBox2.Checked then
     DM1.DSPOS.AutoEdit := true
  else
     DM1.DSPOS.AutoEdit := false;
end;
...
Alleine der Aufruf von AutoEdit := ture ändert die Farben noch nicht.
Wie kann ich das am besten lösen?
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: OnStateChange Ereignis Problem

  Alt 22. Nov 2008, 11:05
ruf doch die methode mit den entsprechenden parametern auf?
OnStateChange( {Paramter} );
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: OnStateChange Ereignis Problem

  Alt 23. Nov 2008, 07:05
OK, kannst du mir ein Beispiel zeigen.
Welchen Parameter kann ich hier verwenden?
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

Re: OnStateChange Ereignis Problem

  Alt 25. Nov 2008, 11:25
und zwar hast du doch geschrieben, dass du im OnStateChange-ereignis etwas machst. wenn du dir die methode anschaust, dann findest du du sicherlich selbst die nötigen informationen.

wenn ich die onclick-methode eines buttons aufrufen will, dann muss ich das wie folgt machen:
Delphi-Quellcode:
// dies ist die onclick-methode, die beim
// onclick eines buttons ausgeführt wird
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Nachricht ausgeben
  showMessage('Es wurde auf den Button geklickt');
end;

// So kann ich das OnClick des Buttons in einer
// anderen Methode aufrufen
procedure TForm1.TestMethode();
begin
  // "Virtueller Klick" auf den Button1
  // Dies funktioniert aber wohl nur bei einem
  // TButton
  Button1.Click();

  { ODER WIE FOLGT }
  // Direkter Aufruf der Methode
  Button1Click( Button1 ); // <-- hier musst du ein Sender vom Typ TObject übergeben.
end;
nun alles klar!?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: OnStateChange Ereignis Problem

  Alt 11. Dez 2008, 08:21
War leider auswärts, und hatte keine Möglichkeit zu antworten.
Na klar. Jetzt hab ichs gelöst.

Vielen Dank nochmal.
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:04 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