AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Bild wird nicht in drawgrid geladen
Thema durchsuchen
Ansicht
Themen-Optionen

Bild wird nicht in drawgrid geladen

Ein Thema von St0rmhunter · begonnen am 22. Jan 2012 · letzter Beitrag vom 29. Jan 2012
Antwort Antwort
Seite 1 von 2  1 2      
St0rmhunter

Registriert seit: 20. Aug 2011
24 Beiträge
 
#1

Bild wird nicht in drawgrid geladen

  Alt 22. Jan 2012, 23:13
Ich versuche eine bmp-Datei in ein Segment eines drawgrids zu laden wie es hier beschrieben ist : http://www.delphipraxis.net/3009-im-...r-groesse.html

Jedoch funktioniert das nicht bei mir. Das Programm hängt sich einfach auf und es gibt keine Fehlermeldung 0o

Danke jetzt schonmal für eure Hilfe =)
  Mit Zitat antworten Zitat
Benutzerbild von Coffeecoder
Coffeecoder

Registriert seit: 27. Apr 2011
242 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: Bild wird nicht in drawgrid geladen

  Alt 23. Jan 2012, 08:02
Hi, Zeig mal bitte dein Code.
Ist dein Pfad zum Bild korrekt?
Coffeecoder
  Mit Zitat antworten Zitat
St0rmhunter

Registriert seit: 20. Aug 2011
24 Beiträge
 
#3

AW: Bild wird nicht in drawgrid geladen

  Alt 23. Jan 2012, 10:18
Das Bild liegt im selben Ordner wie das Programm / exe-Datei und Units.

Code ist beim Button-Click Ereignis eingefügt. Das drawgrid ist 5x5 Felder groß.

Delphi-Quellcode:
procedure TForm1.Button1.Click(Sender: TObject);
var
bild:TBitmap;
begin
bild:=TBitmap.Create;
bild.LoadFromFile('logo.bmp');
DrawGrid1.Canvas.Draw(0,0,logo);
end;
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Bild wird nicht in drawgrid geladen

  Alt 23. Jan 2012, 10:24
1, Du gibtst dein Bitmap nicht mehr frei

2, Ohne Pfadangabe das Bild zu laden wird nicht immer funktionieren.

3, Die Variable heiß bild. Woher kommt die verwendete variable "logo"?

4, Hast du auch die kommentare in deinem Verlinkten Thread durchgelesen?

5, Dein Bild würde immer auf die Koordinaten 0/0 gezeichnet
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#5

AW: Bild wird nicht in drawgrid geladen

  Alt 23. Jan 2012, 10:25
Delphi-Quellcode:
procedure TForm1.Button1.Click(Sender: TObject);
var
bild:TBitmap;
begin
bild:=TBitmap.Create;
bild.LoadFromFile('logo.bmp');
DrawGrid1.Canvas.Draw(0,0,logo);
end;
du solltest das Bild "bild" auch dem Grid zuweisen und nicht "logo"!

DrawGrid1.Canvas.Draw(0,0,bild);
  Mit Zitat antworten Zitat
St0rmhunter

Registriert seit: 20. Aug 2011
24 Beiträge
 
#6

AW: Bild wird nicht in drawgrid geladen

  Alt 23. Jan 2012, 13:22
@Bernhard
1. was meinst du mit freigeben?
2. Wenn das Bild im Verzeichnis des Programms / der Units und Projektdateien liegt müsste es doch eigentlich so geladen werden können.
3. Das war wohl ein flüchtigkeitsfehler die Variable ist und bleibt bild, die Bilddatei heißt logo.bmp (Kann man in eine Bitmap eigentlich auch andere Dateitypen laden wie jpg oder png?)
4. Ja habe ich durchgelesen was ist mit denen?
5. Das weiß ich soll ja auch so sein.

Jetzt der Code ohne flüchtigkeitsfehler
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var bild: TBitmap;
begin
bild:=TBitmap.Create;
bild.loadfromfile('logo.bmp');
drawgrid1.Canvas.Draw(0,0,bild);
end;
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#7

AW: Bild wird nicht in drawgrid geladen

  Alt 23. Jan 2012, 13:43
@Bernhard
1. was meinst du mit freigeben?
Freigeben heißt, daß man ein mit Create erstelltes Objekt vor Verlassen der Procedure wieder freigeben muß. Das geschieht am besten durch FreeAndNil. Schau mal in deiner Online-Hilfe. Bei mir funktioniert dieser Code einwandfrei:

Delphi-Quellcode:
procedure TFormMain.DrawGrid1Click(Sender: TObject);
var
   bild:TPicture;
begin
   bild:=TPicture.Create;
   bild.LoadFromFile(Pfad + 'logo.bmp');
   DrawGrid1.Canvas.Draw(0,0,bild.Graphic);
   FreeAndNil(bild);
end;
Erklärung:

1. Die Draw-Methode der Zeichenfläche (Canvas) erwartet ein TGraphic und nicht ein TBitmap. Das kannst du ebenfalls in deiner Online-Hilfe nachlesen.

2. Wenn du das zu ladende Bild immer im Anwendungsordner hast, dann ist es sinnvoll, diesen Ordner bei Programmstart in einem String abzuspeichern: Pfad := ExtractFilePath(Application.ExeName); . Ansonsten könnte es nämlich nach der Verwendung eines Dateidialogs wie z.B. Opendialog nicht mehr gefunden werden, weil dabei das Verzeichnis gewechselt wurde.
  Mit Zitat antworten Zitat
Benutzerbild von Coffeecoder
Coffeecoder

Registriert seit: 27. Apr 2011
242 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: Bild wird nicht in drawgrid geladen

  Alt 23. Jan 2012, 14:02
3. Das war wohl ein flüchtigkeitsfehler die Variable ist und bleibt bild, die Bilddatei heißt logo.bmp (Kann man in eine Bitmap eigentlich auch andere Dateitypen laden wie jpg oder png?)
Wenn du das machen willst, wäre es besser ein TImage zunehmen anstelle von TBitmap.
Coffeecoder
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#9

AW: Bild wird nicht in drawgrid geladen

  Alt 23. Jan 2012, 14:06
3. Das war wohl ein flüchtigkeitsfehler die Variable ist und bleibt bild, die Bilddatei heißt logo.bmp (Kann man in eine Bitmap eigentlich auch andere Dateitypen laden wie jpg oder png?)
Wenn du das machen willst, wäre es besser ein TImage zunehmen anstelle von TBitmap.
TImage benötigt er nicht, es genügt TPicture, das verlangt keine Zuweisung eines Owners.
  Mit Zitat antworten Zitat
St0rmhunter

Registriert seit: 20. Aug 2011
24 Beiträge
 
#10

AW: Bild wird nicht in drawgrid geladen

  Alt 23. Jan 2012, 14:38
Vielen dank Leute klappt jetzt =)

Kleine Interessensfrage was is der Unterschied zwischen TImage und TPicture?

Nochmals danke =)
  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 17: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