AGB  ·  Datenschutz  ·  Impressum  







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

TObjectList problem...

Ein Thema von gibb · begonnen am 23. Dez 2010 · letzter Beitrag vom 24. Dez 2010
Antwort Antwort
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#1

AW: TObjectList problem...

  Alt 24. Dez 2010, 08:38
Also, ich habe die arrays geprüfft da wird nirgendwo über die array grösse hinaus gelesen. das mit den Globalen Variablen bringt auch keinen Erfolg :-/

gruss Sev
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#2

AW: TObjectList problem...

  Alt 24. Dez 2010, 09:53
hab die zeile gefunden:

Delphi-Quellcode:
function TSensorFactory.GetNewSpeedForAFan(AFan: TFanOverlayObject):Integer;
var
  i: Integer;
  TempSens, MasterTemp: TTempOverlayObject;
  NewSpeed, currentspeed: Integer;
  HighestSpeed: Integer;
begin
  Result:= -1;
  HighestSpeed:= -1;
  Currentspeed:= AFan.NewSpeed;
  if AFan.Enabled then begin
    // Alle sensoren werden durchgesteppt
    for i:= 0 to FTempOvList.Count-1 do begin
      TempSens:= FTempOvList[i] as TTempOverlayObject ;
      //Wenn der Sensor aktiv ist wird geschaut ob dieser Fan überhaupt für diesen sonsor verantwortlich ist
      If TempSens.Enabled then begin
        NewSpeed:= CalculateNewSpeed(Tempsens, Afan);
        if newSpeed > HighestSpeed then begin
          HighestSpeed:= NewSpeed;
          MasterTemp:= TempSens;
        end;
      end;
    end;
      //über oder unter der hysterese else in der hysterese
    if (MasterTemp.Temp >= (MasterTemp.OldTemp + MasterTemp.Offset) ) or
       (MasterTemp.Temp <= (MasterTemp.OldTemp - MasterTemp.Offset)) or
       (HighestSpeed = 100) then begin
     // MasterTemp.OldTemp:= MasterTemp.Temp; <--- wennn ich diese zeile auskomentiere dann geht es :-/
      Result:= HighestSpeed;
    end else
      Result:= currentspeed;
ich versteh nur nicht was ihn daran stört :-/

edit:

Noch die Passende klasse dazu:
Delphi-Quellcode:
  TTempOverlayObject = Class(Tobject)
  public
    TempArrayPos: Integer; //Position im Rückgabearray
    RealName : String; //Namen im System
    overlayName: String; //Anzeigenamen
    LowestTemp: integer; //Konfigurierte min Temp
    HighestTemp: integer; //Konfigurierte höchsttemperatur
    Temp: Integer; //Aktuelle Temperatur
    OldTemp:Integer; //Letzte Temperatur vor der Temp änderung (für hysterese wichtig)
    Offset: integer; //Offset für die Hysterese
    Enabled: Boolean; //Aktiv/Inaktiv
    IdleTemp: Integer;
    LoadTemp: Integer;
    ResponsibleFans: TObjectlist; // Fans die Zuständig sind für diesen Sensor.
    constructor create;
    destructor destroy(); override;
  End;

Geändert von gibb (24. Dez 2010 um 09:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DelphiBandit
DelphiBandit

Registriert seit: 19. Feb 2007
Ort: In der Lüneburger Heide
165 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TObjectList problem...

  Alt 24. Dez 2010, 10:14
Passt zwar nicht zu der von Dir auskommentieren Zeile und ist ohne Debugger nur aus dem Bauch heraus. Was passiert denn, wenn MasterTemp in der oberen Schleife überhaupt nicht zugewiesen wird. Dann kracht es im unteren Bereich, allerdings imho schon in der If-Abfrage.

Initialisiere MasterTemp über der for-Schleife mal mit nil und prüfe als erste Bedingung unten, ob es im for überhaupt zugewiesen wurde (if assigned).
Carsten
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.355 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TObjectList problem...

  Alt 24. Dez 2010, 10:17
Ist MasterTemp vielleicht undefiniert? Dann schreibst Du ja in irgend einen Speicherbereich.
Setze MasterTemp vor Deiner Schleife mal auf nil und teste bei der späteren Behandlung auf <> nil.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#5

AW: TObjectList problem...

  Alt 24. Dez 2010, 10:18
hab die lösung -.-

if(Assigned(MasterTemp)) and( (MasterTemp.Temp >= (MasterTemp.OldTemp + MasterTemp.Offset) ) or
(MasterTemp.Temp <= (MasterTemp.OldTemp - MasterTemp.Offset)) or
(HighestSpeed = 100)) then begin
  Mit Zitat antworten Zitat
Benutzerbild von DelphiBandit
DelphiBandit

Registriert seit: 19. Feb 2007
Ort: In der Lüneburger Heide
165 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: TObjectList problem...

  Alt 24. Dez 2010, 10:20
- nu ja, da haben wir am Ende ja gleich eine gleiche "Dreifach-Lösung" innerhalb von 4 Minuten.

Die Zuweisung auf nil vorher solltest Du auf jeden Fall auch noch ergänzen!
Carsten
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.355 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: TObjectList problem...

  Alt 24. Dez 2010, 10:21
Dann kann er nach Weihnachten 2 davon umtauschen
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#8

AW: TObjectList problem...

  Alt 24. Dez 2010, 10:31
ja das nil ist mit meiner lösung bereits implementiert.... sonst würde er bei assigned durchlaufen weil dort war irgendwas assigned nur nicht das was ich gerne gehabt hätte..

gemerkt hab ichs nur weil ich mir den wert von i weggespeichert hab und dann versucht habe mit diesem wert die liste auszulesen. und da hats geknallt weil i nicht initialisiert war ^^'
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#9

AW: TObjectList problem...

  Alt 24. Dez 2010, 10:20
haha

schön das ich nicht der einzige bin ders jetzt auch gesehen hat -.-'

Idiotisch ^^'

geknallt hats aber nirgends sondern es hat mir meine andere liste zerschossen. Idiotisch.

aber danke für die bemühungen...
  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 14:41 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