AGB  ·  Datenschutz  ·  Impressum  







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

Frames mit Tücken???

Ein Thema von Delbor · begonnen am 26. Nov 2020 · letzter Beitrag vom 26. Nov 2020
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

Frames mit Tücken???

  Alt 26. Nov 2020, 14:24
Delphi-Version: 10.4 Sydney
Hi zusammen

Ein besserer Titel ist mir da leider nicht eingefallen. Ich bin dabei, eine brauchbare Oberfläche für meinen Kalender zu entwerfen. Dazu fülle ich zur Laufzeit ein Stringggrid in einem Frame. Dieser enthält (zumindest bis jetzt) nur gerade die Prozedur zum füllen des Grids. Das Testprogramm enthält letztlich mehrere solcher Frames.

Nun habe ich vor einiger Zeit einen Frame angelegt und diesem eine schon bestehende und erprobte Prozedur zum füllen des Grids verpasst. Bei Programmstart rufe ich diese Prozedur auf, das Programm hält an zwei Haltepunkten, so dass ich besagte Procedur Zeile für Zeile durchlaufen kann.
Aber nachdem das geschehen ist ist das Grid in der Frameinstanz leer.
Das Programm enthält noch weitere, andere Instanzen anderer Frames mit den selben Einstellungen, und die zeigen alle genau das an, was sie sollen, nur dieser eine ist leer...

Kann es sein, dass das Arbeiten mit Frames in früheren Editionen von Delphi...hmmm...zuverlässiger war? Ich habe erst kürzlich einige Zugriffsverletzungen gehabt, nachdem ich im Basisframe eine Komponente gelöscht habe. Erst ein Neustart von Delphi und Windows hat das Problem gelöst.

Meine Frage im Moment ist: wesswegen wird mein Stringgrid auf dem Frame nich ausgefüllt? Die Prozedur:
Delphi-Quellcode:
procedure TCompleteYearFrame.StartAndEndOfTheMont;
  var i,j,y, Nr,x : Integer; Jahr,Woche: Word;
      Today : String;ADate,Datum, LLastMonthDay :TDateTime;
begin
   ADate := a.DateTimePicker2.Date; //Übergeben des Anfangdatums
   Nr := DayofTheWeek(ADate); //Tagesnummer ermitteln : 1. Wochentag := Montag
   Today := Wochentage[(NR-(NR-1))];
   Datum := (ADate-(NR-1));
   i := 0;
   j := 2;
   x := 1;
   y :=1;
   LLastMonthDay := EndOfTheMonth(ADate);
   while Datum <= LLastMonthDay do // Dies schreibt 7 Wochenblöcke ins Stringgrid ;
   begin
      inc(i);
      while j <= 8 do begin
         if j = 2 then begin
           DateToWeek(Datum, Woche, Jahr);
           StringGrid15.Cells[y,x] := 'Woche '+IntToStr(Woche); {1 ist die Spalte,  X ist die Zeile}
         end;
         StringGrid15.Cells[0,j]:= Today;
         StringGrid15.Cells[y,j]:= DateToStr(Datum);
         StringGrid15.Cells[y+1,j]:= 'StartAndEndOfTheMont';
         Inc(j);
         Datum := Datum +1;
         Nr := DayofTheWeek(Datum); //Tagesnummer ermitteln : 1. Wochentag Montag
         Today := Wochentage[Nr];
      end;
      Inc(y);
      j := 2;
   end;
end;
Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor (26. Nov 2020 um 14:28 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#2

AW: Frames mit Tücken???

  Alt 26. Nov 2020, 14:38
Falscher Frame?
Was anderes angezeigt, als du denkst dort die Funktion ausgeführt zu haben.


Was man hier sieht, ist bezüglich irgendwelcher Instanzen nicht falsch.
Die Funktion greift immer nur auf das Grid zu, was dazu gehört.

Mal debuggen und schauen obund was gemacht wird?
Eventuell machen ja die Schleifen ab while Datum <= LLastMonthDay garnichts, weil die Werte nicht stimmen.

Oder der Fehler ist wo anders.
Dort wo du die Frames erstellst und diese Funktion aufrufst.


Aber dennoch ein paar Kleinigkeiten:
* Was ist a ?
* NR-(NR-1) ähhhh = 1
* DateToWeek ist eine Funktion, aber wieso benutzt niemand desser Result?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (26. Nov 2020 um 14:40 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#3

AW: Frames mit Tücken???

  Alt 26. Nov 2020, 14:49
An Frames habe ich mich nur vorsichtig rangetastet, weil ich früher ähnliche Probleme damit hatte.

Ich denke mittlerweile, es liegt daran wie man Frames benutzt:
- Design im Designer: Kein Problem
- Änderungen zur Laufzeit: Kein Problem
- Frame ist wie Datenmodul, überall nutzbar: Kein Problem
- Frame in Frame nutzen (zur Laufzeit create & festlegen): Kein Problem

Das Einzige was ich NIEMALS mehr mache ist:
- Ein Frame als Komponente nutzen, und per Designer auf Form/Frame werfen: !! PROBLEME

Geändert von Rollo62 (26. Nov 2020 um 14:51 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Frames mit Tücken???

  Alt 26. Nov 2020, 14:53
Schau dir die DFM-Dateien des Formulars/Frames an auf welchem die Frames liegen. Meistens enthalten die redundante Informationen, teilweise werden sogar ImageLists gedoppelt.
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Frames mit Tücken???

  Alt 26. Nov 2020, 15:35
Hi Himitsu

Das Programm ist eine Uralt-Lösung, seinerzeit zum Erstellen und auslesen von Excel-Dateien erstellt - die zur Zeit älteste Sicherung wurde 2007 gespeichert. Damals gab es noch vieles nicht und musste selbst oder nach Beispielen gebaut werden.
Zitat:
* Was ist a ?
Aus irgendwelchem dämlichen Grund habeich damals die Mainform so genannt.
Zitat:
* NR-(NR-1) ähhhh = 1
Damals gab es DayofTheWeek offensichtlich noch nicht. Ich habe damals nach einem meiner schlauen Bücher gearbeitet;hier entweder Elmar Warken oder Doberenz.
Mein Array der Wochentage beginnt mit Montag; entsprechend musste ich jeweils umrechnen
Zitat:
* DateToWeek ist eine Funktion, aber wieso benutzt niemand desser Result?
Dieses DateToWeek ist eben keine Funktion, sondern eine Prozedur.

Im Anhang noch ein paar jpegs vom durchsteppen:
startandend-1.jpgstartandend-2.jpgdatetoweek.jpg
completeyearframe.jpgcompleteyearframe-2.jpg

Inzwischen habe ich auch die Beiträge von Der schöne Günther und Rollo62 gesehen-ich werde daseparat drauf eingehen.


Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Frames mit Tücken???

  Alt 26. Nov 2020, 17:06
Hi Der schöne Günther
Schau dir die DFM-Dateien des Formulars/Frames an auf welchem die Frames liegen. Meistens enthalten die redundante Informationen, teilweise werden sogar ImageLists gedoppelt.
Das hab ich gerade mit zweien der Frames gemacht - nachdem ich deren Instanzen gelöscht habe. Beide Frames enthalten keine Redundanzen.
Allerdings war eine der 2 Instanzen jenes Frames, um den es hier geht, seinerseits in einem Frame eingebettet.

Ich weiss jetzt nicht wirklich, ob ich auf der richtigen Spur bin, aber mir scheint, im Create der Mainform liegt die Antwort:

Self.CalendariumFrame1.CompleteYearFrame1.StartAndEndOfTheMont;

Und die zweite Instanz liegt in einem PageControl direkt auf der Mainform und müsste wohl nochmal separat angesprochen werden.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.017 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Frames mit Tücken???

  Alt 26. Nov 2020, 18:06
An Frames habe ich mich nur vorsichtig rangetastet, weil ich früher ähnliche Probleme damit hatte.

Ich denke mittlerweile, es liegt daran wie man Frames benutzt:
- Design im Designer: Kein Problem
- Änderungen zur Laufzeit: Kein Problem
- Frame ist wie Datenmodul, überall nutzbar: Kein Problem
- Frame in Frame nutzen (zur Laufzeit create & festlegen): Kein Problem

Das Einzige was ich NIEMALS mehr mache ist:
- Ein Frame als Komponente nutzen, und per Designer auf Form/Frame werfen: !! PROBLEME
Ich erstelle meine Frame-Instanzen ebenfalls nur zur Laufzeit.
Manchmal machen sie zwar Probleme (z.B. kann man kein THotKey auf einen TFrame packen), aber im Großen und Ganzen funktioniert es.
Janni
2005 PE, 2009 PA, XE2 PA
  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 04:33 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