![]() |
Delphi-Version: 10.4 Sydney
Frames mit Tücken???
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:
Gruss
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; Delbor |
AW: Frames mit Tücken???
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
Delphi-Quellcode:
garnichts, weil die Werte nicht stimmen.
while Datum <= LLastMonthDay
Oder der Fehler ist wo anders. Dort wo du die Frames erstellst und diese Funktion aufrufst. Aber dennoch ein paar Kleinigkeiten: * Was ist
Delphi-Quellcode:
?
a
*
Delphi-Quellcode:
ähhhh = 1 :stupid:
NR-(NR-1)
* DateToWeek ist eine Funktion, aber wieso benutzt niemand desser Result? |
AW: Frames mit Tücken???
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 |
AW: Frames mit Tücken???
Schau dir die DFM-Dateien des Formulars/Frames an auf welchem die Frames liegen. Meistens enthalten die redundante Informationen, teilweise werden sogar ImageLists gedoppelt.
|
AW: Frames mit Tücken???
Liste der Anhänge anzeigen (Anzahl: 5)
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:
Zitat:
Mein Array der Wochentage beginnt mit Montag; entsprechend musste ich jeweils umrechnen Zitat:
Im Anhang noch ein paar jpegs vom durchsteppen: Anhang 53336Anhang 53337Anhang 53339 Anhang 53338Anhang 53340 Inzwischen habe ich auch die Beiträge von Der schöne Günther und Rollo62 gesehen-ich werde daseparat drauf eingehen. Gruss Delbor |
AW: Frames mit Tücken???
Hi Der schöne Günther
Zitat:
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:
Delphi-Quellcode:
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 |
AW: Frames mit Tücken???
Zitat:
Manchmal machen sie zwar Probleme (z.B. kann man kein THotKey auf einen TFrame packen), aber im Großen und Ganzen funktioniert es. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 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