Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schleife in einseitiger Auswahl (https://www.delphipraxis.net/159087-schleife-einseitiger-auswahl.html)

KiRi 13. Mär 2011 23:30

Delphi-Version: 2009

Schleife in einseitiger Auswahl
 
Ich hab bisher keine Antwort hierauf finden können. Vielleicht geht mein Plan ja auch grundsätzlich nicht.

Im Rahmen meiner Kalenderprogrammierung ist folgender Effekt aufgetreten:

Der nachstehende Code schafft es in meiner Kalender-Monatsansicht mittels SringGrid die Rahmendaten zu integrieren - also in Spalte 1 die Tage 1. bis 31. des Monats.
Zitat:

Form1.SgAnzeige.Cells[0,0] := 'Tag';
Form1.SgAnzeige.Cells[1,0] := 'Termine';
for c:=1 to 31 do
SgAnzeige.cells[b,c]:= IntToStr(c) + '.';
Nun will ich aber über die Variable 'a' (wert 1 = Januar / 12 = Dezember) entscheiden bis zu wie viele Tage im jeweiligem Monat eingetragen werden sollen. Also a=3=März --> c bis 31 // a=2=Februar --> c bis 28.

Dachte ich setze vor die Zählschleife einfach die Bedingung und dann läuft's, aber nee, will nicht. Beispiel März:


Zitat:

[...]
Form1.SgAnzeige.Cells[0,0] := 'Tag';
Form1.SgAnzeige.Cells[1,0] := 'Termine';

a:=3;

if a=3 then
for c:=1 to 31 do
SgAnzeige.cells[b,c]:= IntToStr(c) + '.';

[...]
Schon bei diesem Code wird im StringGri nichts mehr für c erzeugt.

Hab schon mit Semikolon, begin/end usw. hin und her probiert (typisch Laie eben) aber ohne Erfolg.

Geht es überhaupt vor eine Zählschleife eine Bedingung zu setzen?

Bin für jede Hilfe dankbar.

Bummi 13. Mär 2011 23:43

AW: Schleife in einseitiger Auswahl
 
geht auch anders und ist ohne Schaltjahrberücksichtigung
Delphi-Quellcode:
const
  MTArray:Array[1..12] of Integer=(31,28,31,30,31,30,31,31,30,31,30,31);
var
  a,b,c:Integer;
begin
  SgAnzeige.Cells[0,0] := 'Tag';
  SgAnzeige.Cells[1,0] := 'Termine';

  a:=3;
  b := 0;
  SgAnzeige.ColCount := MTArray[a] + 1;
  for c:=1 to MTArray[a] do
  SgAnzeige.cells[c,b]:= IntToStr(c) + '.';
end;

Sir Rufo 14. Mär 2011 00:42

AW: Schleife in einseitiger Auswahl
 
Warum nicht die Funktion Delphi-Referenz durchsuchenDaysInMonth nutzen?

KiRi 18. Mär 2011 15:54

AW: Schleife in einseitiger Auswahl
 
nee, leider gibt es zur Zeit so viel Fehlermeldungen dass ich nicht weiß was ich euch fragen soll.

Zudem funktioniert meine Delphi-Dokumentation und damit die Hilfe-Funktion nicht. Das macht alles noch schwerer.

Kann man die gesamte Dokumentation auch online einsehen?

DeddyH 18. Mär 2011 15:56

AW: Schleife in einseitiger Auswahl
 
Delphi-Referenz

KiRi 20. Mär 2011 15:10

AW: Schleife in einseitiger Auswahl
 
Liste der Anhänge anzeigen (Anzahl: 1)
@DeddyH: danke für den Hinweis, aber diese schrecklich unübersichtlichen Ergebnisse dieser Suchfunktion helfen einem Anfänger wie mir nicht weiter.
Zur Erklärung dieser Sache: Sobald ich die Hilfefunktion von Delphi benutze will kommt: "Der Microsoft Dokument-Explorer ist nicht installiert. Daher kann das Hilfesystem nicht ausgeführt werden. Bitte installieren Sie die Dokumentation erneut"
Auch kann ich die Hilfe nicht manuell aufrufen, wie es in einem Beitrag hier vorgeschlagen wurde.

@all:
Zum eigentlichen Problem:
Das soll ein digitaler Kalender für 2011 werden und ist eine Schulaufgabe. Darum kann ich auch nicht fertige Codes benutzen deren Funktionsweise mir nicht wenigstens so klar ist das ich sie nicht beschreiben könnte. Darum versuch ich alles selbst zu machen.
Ein Formular soll den Kalender in Monatsansicht anzeigen und per Button den Monat wechseln. Ein zweites Formular soll die Eingabe von Notizen ermöglichen die dann im ersten Formular angezeigt werden.

Ich zeig euch mal was ich habe - Anhang

Viele Funktionen die ich mir überlegt habe habe ich mittlerweile schon irgend wie hinbekommen.
Mein größtes Problem ist nun, wie ich die eingetragenen Werte/Angaben vom 2. Formular im 1. Formular im richtigen Monat ausgeben kann.

Ich vermute mal dass ich die Aufgabe nicht mehr rechtzeitig hinbekommen werde, da ich schon morgen abgeben muss.

Aber vielleicht habt ihr ja noch Tipps die leicht verständlich für mich sind. (wie gesagt, meine Hilfe-Funktion funktioniert nicht und ich bin Laie)

Danke auf alle Fälle an die, die mir schon was geantwortet haben.

mkinzler 20. Mär 2011 15:17

AW: Schleife in einseitiger Auswahl
 
Der Microsoft Dokument-Explorer ist Teil des .Net SDKs/dem Windows SDK
Die Onlineversion der Delphihilfe ist unter http://docwiki.embarcadero.com/ abrufbar
Zitat:

Darum kann ich auch nicht fertige Codes benutzen deren Funktionsweise mir nicht wenigstens so klar ist das ich sie nicht beschreiben könnte. Darum versuch ich alles selbst zu machen.
Sehr löblich :thumb:

KiRi 20. Mär 2011 18:02

AW: Schleife in einseitiger Auswahl
 
danke mkinzler


Ich bin doch schon wieder um einiges weiter gekommen :-)

Kann mir noch wer nen Tipp geben wie ich mein Array Formular-übergreifend benutzen kann?
Also das Array von Unit2 in der ersten auslesen und benutzen kann?

Ich möchte mein StringGrind in Form1 mit einem Wert aus meinem Array aus Form2 belegen:
Zitat:

SgAnzeige.Cells[1,2] := Form2.JanuarZweiDimArray[1][2];
Aber zu meinem "Form2.JanuarZweiDimArray" gibt es den Fehler: "'TForm2' enthält kein Element namens 'JanuarZweiDimArray'"

mkinzler 20. Mär 2011 18:07

AW: Schleife in einseitiger Auswahl
 
Am saubersten waäre es gemeinsam benutzte Daten in eine 3 Unit auszulagern, welche du dann von beiden einbindest.

KiRi 20. Mär 2011 23:23

AW: Schleife in einseitiger Auswahl
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das mit der 3. Unit hat geklappt - DANKE!

Nun läuft fast* alles, auch wenn der Code für euch sicherlich schrecklich aussieht.

* Was noch nicht läuft:
Die Farbe spinnt schon bei der Auswahl rum, darum hab ich es damit erst einmal aufgegeben. Und wenn nicht in jedem Monat wenigstens ein Termin mit allen Feldern ausgefüllt wurde gibt's auch ne Fehlermeldung.

Ansonsten dank ich euch!

Wer sich's nochmal ansehen mag - Anhang


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.
Seite 1 von 2  1 2      

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