AGB  ·  Datenschutz  ·  Impressum  







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

TList Einträge fehlen

Ein Thema von tumo · begonnen am 20. Aug 2019 · letzter Beitrag vom 21. Aug 2019
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.431 Beiträge
 
Delphi 12 Athens
 
#1

AW: TList Einträge fehlen

  Alt 21. Aug 2019, 06:52
Zitat:
Was soll ich denn statt den globalen Variablen nutzen?
...private Felder deiner Form / Klasse
Beispiel:
Delphi-Quellcode:
TFormBlubb = class(TForm)
  procedure FormCreate(Sender: TObject);
  procedure FormDestroy(Sender: TObject);
private
  FBla: Integer; // Variable
  FListBlubbchen: TObjectList<TBlubbchen>; // Liste
public
    
end;
...
procedure TfoMain.FormCreate(Sender: TObject);
begin
  FListBlubbchen := TObjectList<TBlubbchen>.Create;
end;

procedure TfoMain.FormDestroy(Sender: TObject);
begin
  FListBlubbchen.Free;
  inherited;
end;
  Mit Zitat antworten Zitat
tumo

Registriert seit: 28. Apr 2014
46 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: TList Einträge fehlen

  Alt 21. Aug 2019, 08:17
Zwei Dinge:

1. Wie hast Du gesehen, dass das globale Variablen waren? Aber ja, das kann ich noch machen

2. Ich habe es gerade noch mal getestet, es geht doch. Kennt ihr das, wenn der Code einen Tag reift und plötzkich geht? Ich schwöre, gestern ging es nicht und ich schwöre auch dass ich nichts am Code geändert habe. Das Problem ist offenbar gelöst...

EDIT: Hab den Fehler gefunden, versteh ihn aber nicht.

Ich habe ein Custom Draw Event bei der TListBox, wo ich besagte Bilder auch reinmalen will. Derzeit habe ich das über diese Zeile getan

lb.Canvas.StretchDraw(rect,thumbnails[index].Bitmap); Das macht offenbar die Bilder kaputt, deswegen jetzt so

lb.Canvas.StretchDraw(rect,thumbnails[index].Graphic);

Geändert von tumo (21. Aug 2019 um 08:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.431 Beiträge
 
Delphi 12 Athens
 
#3

AW: TList Einträge fehlen

  Alt 21. Aug 2019, 08:53
Zitat:
Wie hast Du gesehen, dass das globale Variablen waren?

Die Variablen waren nicht lokal in der procedure deklariert, die Variablen hatten keinen Präfix "F" davor (Styleguide für private Variablen)...da müssen es globale sein...

Geändert von haentschman (21. Aug 2019 um 08:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.368 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TList Einträge fehlen

  Alt 21. Aug 2019, 09:03
Die Variablen waren nicht lokal in der procedure deklariert, die Variablen hatten keinen Präfix "F" davor (Styleguide für private Variablen)...da müssen es globale sein...
[OT]
Diese blöde Präfix. Bei mir gibt es keine globalen Variablen. Daher brauche ich das Präfix nicht.
[/OT]
Peter
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: TList Einträge fehlen

  Alt 21. Aug 2019, 09:19

2. Ich habe es gerade noch mal getestet, es geht doch. Kennt ihr das, wenn der Code einen Tag reift und plötzkich geht? Ich schwöre, gestern ging es nicht und ich schwöre auch dass ich nichts am Code geändert habe. Das Problem ist offenbar gelöst...
Wahrscheinlich: Nein!
Ein solches Verhalten trat bei mir immer auf wenn irgendwelche Variablen nicht odentlich initialisiert waren oder ich vom Pfad der Bedienungstugend abgewichen war oder im Speicher etwas überschrieben wurde was nicht so gedacht war .....

Spontanheilungen in Programmen gibt es nicht. Da sind irgendwelche Seiteneffekte die Du noch nicht erkann hast.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
tumo

Registriert seit: 28. Apr 2014
46 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: TList Einträge fehlen

  Alt 21. Aug 2019, 10:59
@p80286 Sehe ich genau so, nut weiß ich nciht, wo ich da etwas überscheiben oder nicht richtig initialisieren soll? Der Fehler lässt sich ja provozieren, wenn ich statt TPictureList[i].Bitmap einfach die .Graphic property nutze. Ich weiß zwar nicht, warum .Bitmap etwas am Bild ändern sollte, aber naja
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: TList Einträge fehlen

  Alt 21. Aug 2019, 12:33
Ich kenne mich mit dem Grafik-Kram nicht so aus, aber da beide nicht synonym sind wird es schon einen unterschied machen. Schau mal in die OH. War da nicht etwas mit virtueller Bitmap???

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
tumo

Registriert seit: 28. Apr 2014
46 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: TList Einträge fehlen

  Alt 21. Aug 2019, 13:04
oh,
Zitat:
Use Bitmap to reference the picture object when it contains a bitmap. If Bitmap is referenced when the picture contains a Metafile or Icon graphic, the graphic won't be converted. Instead, the original contents of the picture are discarded and Bitmap returns a new, blank bitmap.
Offenbar zählt eine JPEG als Metafile. Das erklärt es dann doch ein wenig.
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
711 Beiträge
 
Delphi 12 Athens
 
#9

AW: TList Einträge fehlen

  Alt 21. Aug 2019, 15:03
oh,
Zitat:
Use Bitmap to reference the picture object when it contains a bitmap. If Bitmap is referenced when the picture contains a Metafile or Icon graphic, the graphic won't be converted. Instead, the original contents of the picture are discarded and Bitmap returns a new, blank bitmap.
Offenbar zählt eine JPEG als Metafile. Das erklärt es dann doch ein wenig.
Das Zitat ist etwas out of date. TPicture.Bitmap gibt nur dann auch das in TPicture geladene Objekt zurück, wenn das ein TBitmap ist, ansonsten wirft es den Inhalt weg und erzeugt eine neue, leere TBitmap. TPicture.Metafile und .Icon machen das analog. Nur die Graphic-Property gibt immer den geladenen Inhalt zurück, wenn es einen gibt (sonst nil).

Das ist wohl noch Delphi 1 Erbe, damals konnte Windows (3.x) halt nur drei Grafikformate...
Peter Below
  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:16 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