AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Klasse soll Anwendung nur bei best. Änderung benachrichtigen
Thema durchsuchen
Ansicht
Themen-Optionen

Klasse soll Anwendung nur bei best. Änderung benachrichtigen

Ein Thema von Sunshine21 · begonnen am 26. Jun 2008 · letzter Beitrag vom 27. Jun 2008
Antwort Antwort
Seite 4 von 6   « Erste     234 56      
Sunshine21

Registriert seit: 26. Jun 2008
27 Beiträge
 
#31

Re: Klasse soll Anwendung nur bei best. Änderung benachricht

  Alt 26. Jun 2008, 17:52
Hab mich ein wenig zu früh gefreut...

Das Programm läuft jetzt zwar aber irgendwie klappt das mit dem Timer noch nicht richtig. Wenn ich den Timer anschalte kommen sofort mit jedem Takt Nachrichtenfenster auch wenn noch keine Änderung gemacht wurde. Wenn ich auf den Button Status ändern klicke dann kommt wie gewünscht das Nachrichtenfenster. War das bei dir auch so?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#32

Re: Klasse soll Anwendung nur bei best. Änderung benachricht

  Alt 26. Jun 2008, 18:09
Du rufst ja im Timer auch immer OnChange auf, ohne auf Änderung zu prüfen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Sunshine21

Registriert seit: 26. Jun 2008
27 Beiträge
 
#33

Re: Klasse soll Anwendung nur bei best. Änderung benachricht

  Alt 26. Jun 2008, 18:31
Achso ich dachte das passiert automatisch

Muss ich jetzt den Status mit einer Hilfsvariable zwischenspeichern um vergleichen zu können oder wie macht man das am elegantesten?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#34

Re: Klasse soll Anwendung nur bei best. Änderung benachricht

  Alt 26. Jun 2008, 18:34
Wozu brauchst Du eigentlich den Timer? Wenn sich der Status ändert, bekommst Du es doch mit.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Sunshine21

Registriert seit: 26. Jun 2008
27 Beiträge
 
#35

Re: Klasse soll Anwendung nur bei best. Änderung benachricht

  Alt 26. Jun 2008, 18:47
Leider nicht denn der Status ist ein Flag in der Windows WMI und kann sich jederzeit ändern. Der Status wird also über diese Funktion abgefragt und sollte sich was ändern soll er das der Anwendung melden.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#36

Re: Klasse soll Anwendung nur bei best. Änderung benachricht

  Alt 26. Jun 2008, 18:51
Dann wäre es IMO wirklich besser, sich den alten Status zu merken und zu vergleichen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Sunshine21

Registriert seit: 26. Jun 2008
27 Beiträge
 
#37

Re: Klasse soll Anwendung nur bei best. Änderung benachricht

  Alt 27. Jun 2008, 05:08
Zitat von spaxxn:
Zitat von Sunshine21:
    procedure DoChange;     OnChange_Proc = procedure of object;
So müsste das gehen! War ein wenig in Gedanken, Aber DeddyH hats getroffen

Grund: Im Hauptform wurde Sender als Parameter übergeben, aber vom OnChange gar nicht angefordert. Mal in normalem deutsch ausgedrückt...
Da hätte ich noch eine kurze Frage dazu. Wenn ich Parameter übergeben möchte müssen die dann in der Klasse in     OnChange_Proc = procedure (Parameter1 : string, Parameter2 : Boolean) of object; angegeben werden oder im Hauptform procedure DoChange(Parameter1 : string, Parameter2 : Boolean) oder gar beides?

++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++

"Nur" fürs Verständnis....

Delphi-Quellcode:
procedure TMyClass.OnChange;
begin
  if Assigned(FOnChange) then
    FOnChange;
end;

procedure TMyClass.setStatus(value: Boolean);
begin
  FStatus := value;
  if Assigned(FOnChange) then
    FOnChange;
end;
Wie genau funktioniert das mit dem Assigned
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#38

Re: Klasse soll Anwendung nur bei best. Änderung benachricht

  Alt 27. Jun 2008, 07:05
Zitat:
OnChange_Proc = procedure (Parameter1 : string, Parameter2 : Boolean) of object;
Genauso geht das. Die zuzuweisende Methode muss dann dieselbe Signatur (also die selben Parameter) besitzen. Und Assigned prüft, ob eine Methode zugewiesen wurde. Im Detail heißt das, es wird nachgesehen, ob der Methodenzeiger nil ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#39

Re: Klasse soll Anwendung nur bei best. Änderung benachricht

  Alt 27. Jun 2008, 07:46
Woran lag es? würde mich interessieren? OnClick nicht gebunden gewesen?
  Mit Zitat antworten Zitat
Sunshine21

Registriert seit: 26. Jun 2008
27 Beiträge
 
#40

Re: Klasse soll Anwendung nur bei best. Änderung benachricht

  Alt 27. Jun 2008, 08:17
Hallo spaxxn, hatte es gestern zum laufen gebracht als ich einfach vor dem Kompilieren die Buttons durch doppelklick auf dem Formular eingebunden habe (glaube das geht doch so, oder?)

Leider verstehe jetzt gar nichts mehr. Wollte nochmal ein neues Projekt starten und jetzt kommt wieder eine Fehlermeldung sobald ich einen der beiden Button drücke:
Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 0045C365 in Modul 'Project1.exe'. Lesen von Adresse 00000004'. Prozess Project1.exe (1472)
Was hab ich jetzt schon wieder falsch gemacht?

Kannst du nochmal kurz versuchen ob die beiden Units 1:1 bei dir Laufen? Arbeite nämlich auf zwei unterschiedlichen Rechner und will ausschliessen dass es am Code liegt.
Angehängte Dateien
Dateityp: rar unit_107.rar (1,2 KB, 0x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 6   « Erste     234 56      


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