AGB  ·  Datenschutz  ·  Impressum  







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

Schleife in einseitiger Auswahl

Ein Thema von KiRi · begonnen am 13. Mär 2011 · letzter Beitrag vom 27. Mär 2011
Antwort Antwort
Seite 1 von 2  1 2      
KiRi

Registriert seit: 13. Mär 2011
6 Beiträge
 
#1

Schleife in einseitiger Auswahl

  Alt 13. Mär 2011, 23:30
Delphi-Version: 2009
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.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Schleife in einseitiger Auswahl

  Alt 13. Mär 2011, 23:43
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;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Schleife in einseitiger Auswahl

  Alt 14. Mär 2011, 00:42
Warum nicht die Funktion Delphi-Referenz durchsuchenDaysInMonth nutzen?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
KiRi

Registriert seit: 13. Mär 2011
6 Beiträge
 
#4

AW: Schleife in einseitiger Auswahl

  Alt 18. Mär 2011, 15:54
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?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.539 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Schleife in einseitiger Auswahl

  Alt 18. Mär 2011, 15:56
Delphi-Referenz
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
KiRi

Registriert seit: 13. Mär 2011
6 Beiträge
 
#6

AW: Schleife in einseitiger Auswahl

  Alt 20. Mär 2011, 15:10
@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.
Angehängte Dateien
Dateityp: rar kalender.rar (281,6 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Schleife in einseitiger Auswahl

  Alt 20. Mär 2011, 15:17
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
Markus Kinzler
  Mit Zitat antworten Zitat
KiRi

Registriert seit: 13. Mär 2011
6 Beiträge
 
#8

AW: Schleife in einseitiger Auswahl

  Alt 20. Mär 2011, 18:02
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'"
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Schleife in einseitiger Auswahl

  Alt 20. Mär 2011, 18:07
Am saubersten waäre es gemeinsam benutzte Daten in eine 3 Unit auszulagern, welche du dann von beiden einbindest.
Markus Kinzler
  Mit Zitat antworten Zitat
KiRi

Registriert seit: 13. Mär 2011
6 Beiträge
 
#10

AW: Schleife in einseitiger Auswahl

  Alt 20. Mär 2011, 23:23
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
Angehängte Dateien
Dateityp: rar 2Kalender.rar (290,4 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:20 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