Ergebnis 1 bis 18 von 18

Thema: Nijis-Delphi-Frage-Thread

  1. #1

    Nijis-Delphi-Frage-Thread

    Hi!

    Ich möchte einen Terminplaner machen, der mit mir spricht. Mein momentanes Problem ist die Ausgabe des gewählten Datums.

    Ich habe nun einen "MonthCalendar" genommen. Darauf kann man ja wie wild herum klicken. Jetzt soll, wenn ich ein Datum anklicke, dieses in einem "Edit"-Feld erscheinen. Womit bekomme ich es aber denn jetzt übergeben?

    Meine Anfänge:
    Code:
    Edit1.Text := MonthCalendar1. ;
    Da muss natürlich irgendwas hinter den Punkt... aber was?

    (weitere Fragen werden mit der Zeit folgen )

    mfg

  2. #2
    Naja du musst das Datum in einen String umwandeln und diesen der Editbox übergeben ...:

    Code:
    Edit1.Text := DateToStr(MonthCalendar1.Date);
    Das wars auch schon !

    Geändert von o_O (23.12.2005 um 11:12 Uhr)

  3. #3
    ich bin ja soo doof...^^
    sowas müsste ich langsam echt schon können...
    danke

    wie kann man im Kalender bestimmte Tage fett makieren? habs in der Hilfe nich verstanden..

    edit: jubel: 777 = Lucky 7

  4. #4
    Wie meinste das "Markieren " rot umkreist oda blau selektiert ???

  5. #5
    so fett gedruckt oder ähnliches...

    rot umkreist ist ja nur der aktuelle Tag - das soll auch so bleiben...

    Ich wollte halt ein paar Feiertage fest makieren - vorrausgesetzt, dass das überhaupt irgendwie funktionuckelt

  6. #6
    Und in der Hilfe haste nichts gefunfen <_> ich hab mal gesucht aber nix gefunden ...<ö< hmm ich hab auch mal nen bissel rumprobiert aber nichs tolles rausgefunden ..muss noch mal schaun xD

  7. #7
    Ich schätze mal, dass es mit einer neuen Komponenten, die das Kind von TMonthCalendar wäre, machbar sein könnte. Aber das ist mir dann doch zu umständlich.

    Beschäftige ich mich dann mal besser mit der Frage, wie ich Daten auf ein Datum abspeichern kann.
    Diese sollen dann auch einfachst abzurufen sein, indem man einfach im Kalender auf irgend n Datum klickt, wenn dann schon etwas vorhanden ist, wird das angezeigt.

    Reicht dafür ne normale *.txt ?

  8. #8
    Ja, aber wäre unschön mit so vielen Text-Dateien. Datenbanken sind besser. Google mal, dafür gibts massig Tuts.

  9. #9
    soa,... für ein anderes Projekt muss ich jetzt Dateinamen auslesen

    folgendes:
    in einem Ordner sind lauter Bilddateien
    z.B. kata_n.bmp ; hira_ki.bmp ; kata_o.bmp
    usw.
    ich muss einzelne Wortfetzen aus den Dateinamen ziehen, um genauer zu sein einmal die ersten 4 Buchstaben und dann das, was zwischen _ und . steht.
    Ich lasse vom Programm eine zufällige Datei aufgreifen (hoffentlich bekomme ich das hin), lasse sie im Programm darstellen, der Nutzer muss dann "raten", was zwischen _ und . steht.
    Dabei kann der Nutzer wählen zwischen 3 verschiedenen Varianten:
    1. nur die mit hira am Anfang
    2. nur die mit kata am Anfang
    3. die mit hira und die mit kata am Anfang

    ...

  10. #10
    hab das obige Problem jetzt anders gelöst
    ..


    new one:
    Wie kann man in einer Tabelle suchen?
    (db)

    die Suchergebnisse würde ich dann gerne in einer neuen Liste ausgeben lassen (memo), bzw. soll es möglich sein einzelne Ergebnisse dann zu laden (in einem neuen TForm-Objekt)

  11. #11
    Dafür gibts glaub keine vorgefertigte Funtion oda so .... ich denke das musst du selbst schreiben, ich denke mir das so :

    Code:
    function Search(s:String);
    Var Wort,Text:String;
    a,B:Integer;
    begin
    Wort := s;
    b :=  Tabelle.Count;
    For a := a to b do 
    begin
    Text := Tabelle(a).TEXT;
    if wort = Text then
    
    ShowMessage('Wort gefunden');
    
    end;
    end;

    Najo sollte so gehen... musst dann halt noch anpassen aber das Schema sollte stimmen... wenn net dann sags =P


    <_> Könnte es sein das der code da oben ziemlicher mist ist ? Wann hab ich den den geschrieben -.- arrr

    Geändert von o_O (19.02.2006 um 08:35 Uhr)

  12. #12
    thx

    new proj - new prob:

    Also, jetzt habe ich so ein paar Fehlermeldungen bezüglich einer Umwandlung von Variablen (StrToInt).
    Folgend ein Ausschnitt des Quellcodes:
    Code:
    var
      Form1: TForm1;
      gramm, fett, kcal, ergebnis: String;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    //Zunächst wird geprüft, ob die Angaben des Nahrungsmittels
    //für je 100 Gramm gedacht sind. Wenn dem so ist, wird nach
    //der LowFett30-Formel der Fettgehalt berechnet.
    //Falls die Angaben nicht für 100 g angegeben sind, werden
    //die Variablen zunächst umgerechnet und danach wird der
    //Fettgehalt berechnet.
    
      gramm := StrToInt(Edit1.Text);
      fett  := StrToInt(Edit2.Text);
      kcal  := StrToInt(Edit3.Text);
      if (gramm = 100) then
        begin
        ergebnis := (fett * 9 * 100) / kcal;
        end
      else
        begin
        fett := (fett / gramm) * 100;
        kcal := (kcal / gramm) * 100;
        ergebnis := (fett * 9 * 100) / kcal;
        end
      end;
    
    //Das Ergebnis wird in einem neuen Formular dargestellt.
    
      Form2.Label2.Caption := IntToStr(ergebnis);
    
      if (ergebnis <= 30) then
        begin
        Form2.Image1.Picture.LoadFromFile('img\erlaubt.bmp');
        end
      else
        begin
        Form2.Image1.Picture.LoadFromFile('img\nerlaubt.bmp');
        end
      end;
    
      Form2.Show;
    end;
    Soa, String und Integer harmonieren noch nicht zusammen und zudem ist wohl die Picture-Imagezuweisung noch nicht korrekt.

  13. #13
    Wenn du
    Code:
    gramm, fett, kcal, ergebnis: String;
    als String definierst, darfst du dich nicht wundern, wenn du darin keine Zahlen speichern kannst.

    Die Bildzuweisung ist allerdings korrekt.

  14. #14
    ok, ich hab es jetz soweit zum laufen bekommen.

    jetzt möchte ich aber noch mit einem try...except die Division durch 0 verhindern. wie mach ich das?
    ich mein,
    Code:
    try
      if (gramm <> 100) then
        begin
        fett := (fett / gramm) * 100;
        kcal := (kcal / gramm) * 100;
        end;
      except
         Form3.Label1.Caption := 'Es ist ein Fehler aufgetreten.';
         Form3.show;
         Form1.Enabled := False;
       end;
      ergebnis := round((fett * 9 * 100) / kcal);
    ruft schonmal das eigene Fehlerfenster hervor, es kommt aber auch noch die Fehlermeldung vom Compiler. ich hab schon versucht, die irgendwie abzustellen - bisher jedoch erfolglos

  15. #15
    jup delphi zeigt die an, wenn mans aus der ide startet. separat gestartet sollten aber keine fehlermeldeungen kommen

  16. #16
    Zitat Zitat
    ---------------------------
    Lowfettcalc
    ---------------------------
    Ungültige Gleitkommaoperation.
    ---------------------------
    OK
    ---------------------------
    Die Fehlermeldung tritt dann aber trotz allem auf.

  17. #17
    tritt die exception vielleicht auf, weil in der ausserhalb des Exceptionblocks stehenden Anweisung

    ergebnis := round((fett * 9 * 100) / kcal);

    kcal noch auf Null gesetzt ist ? Wenn eine Division durch Null auftritt, dann wird ja der Wert von kcal nicht geaendert ... Probiers mal, die Zeile mit in den Try Block zu schreiben.

    Laut Delphi Hilfesystem ist dein Code correkt. Du koenntest natuerlich auch explizit die Division durch Null Exception abfangen, das wuerdest du so machen ...

    Code:
    try
    
      X := Y/Z;
    except
      on EZeroDivide do 
        begin
          ...
        end;
    end;

  18. #18
    Code:
      gramm := StrToFloat(Edit1.Text);
      fett  := StrToFloat(Edit2.Text);
      kcal  := StrToFloat(Edit3.Text);
    steht vor dem vorigen Code.

    hab jetz
    Code:
    ergebnis := round((fett * 9 * 100) / kcal);
    noch in die try-formel gepackt.
    klappt jetz alles, so wie ich es haben möchte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •