Prüfen ob TImage ein Bild enthält (war: TImage)



  • Ganz kleines problem 😉

    wie finde ich zur laufzeit eines programms heraus, ob in meinem TImage ein Bild ist oder nicht?
    Finde keine passende Variable dazu 😡

    Edit:
    Bitte aussagekräftige Überschriften wählen. Danke!



  • Wie wäre es mit der Eigenschaft Picture?

    Nein, Kommando zurück, Picture ist leider nicht NULL, wenn nichts zugewiesen wurde...



  • Wozu überhaupt? Das Programm (bzw. du als Programmier) lädt doch die Bilder, also solltest du (bzw. das Programm) auch wissen, ob und wann ein Bild geladen ist.



  • if (Image1->Picture->Bitmap->Empty)	
      ShowMessage("Image ist leer");
    


  • Image1->Picture->Graphic->Empty scheint portabler, schliesslich kann TImage mehr als nur Bitmaps anzeigen.
    Den Sinn solch einer Abfrage sehe ich dennoch nicht.



  • ICh habe 2 Formen

    Auf der einen Form ( Materialnachweis hinzufügen )
    gibt der benutzer alles mögliche über seine arbeit ein, unteranderem kann er 4 Bilder hinzufügen. Die eingefügten Bilder speicher ich in den unterordner meines Programms "Bilder" mit eindeutigen namen, und ihre Verweise in eine Datenbank.

    Auf der anderen Form ( Materialnachweis bearbeiten ) werden genau diese Daten wieder angezeigt. Hier kann er nun unter anderem wählen, ob er ein anderes Bild hinzufügen will, da es ja sein kann das er evtl. das falsche benutzt hat oder so. Da gibts dann zum abspeichern leider folgende 4 neue zustände:
    1.) Entweder es war NIE ein Bild in der Datenbank und wird auch keins hinzugefügt
    2.) Es war eins drinne und er hats geändert
    3.) Es war eins drinne und er hats gelöscht
    4.) Es war eins drinne und er hat nix gemacht

    ich könnte jetzt 4 zustandsvariablen machen und 100 ifs 😃 oder ich schau einfach ob in den bearbeiten images Bilder sind, wenn ja, überspeicher ich einfach die alten. sollten keine vorhanden sein, lösche ich die einträge in der db.
    erscheint mir erheblich einfacher durch diesen "picture->empty" befehl, wenn er gehen sollte ^^ was ich nun probier 😉

    so hoffe erklärung genug 😃

    thx übrigens wieder für die schnellen antworten,
    macht super spass hier 😉



  • Also ich hab' dazu ne Komponente TNamedImage (von TImage ableiten)

    Die hat ne public Variable 'FileName' (besser privat und ne Lese- Methode!)

    LoadFromFile wird ueberschrieben:
    - ruft geerbtes LoadFromFile
    - wenn erfolgreich wird in 'FileName' der Dateiname gespeichert, wenn nicht "".

    Den Lade- Erfolg teste ich einfach mit try/catch und Auswerten der Bildgroesse.

    volia!!!

    Mit FileName kannste testen, ob ein Bild geladen wurde. Und den dateinamen haste auch gleich!

    PS: 'FileName' sollte im CTor auf "" gesetzt werden!!!



  • Hi!

    if (Image1->Picture->Height + Image1->Picture->Width)
        ShowMessage("Im Bild is was drin!");
    

    tschüss
    Robert


Anmelden zum Antworten