AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Bild mit StretchDraw in Zelle eines StringGrid einfügen
Thema durchsuchen
Ansicht
Themen-Optionen

Bild mit StretchDraw in Zelle eines StringGrid einfügen

Offene Frage von "HolgerX"
Ein Thema von felix00186 · begonnen am 13. Jan 2017 · letzter Beitrag vom 13. Jan 2017
Antwort Antwort
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
978 Beiträge
 
Delphi 6 Professional
 
#1

AW: Bild mit StretchDraw in Zelle eines StringGrid einfügen

  Alt 13. Jan 2017, 18:49
Hmm..

Delphi-Quellcode:
 
  bild := TBitmap.create;
  bild.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Mine.bmp');
  mine := 1;
  for x := 0 to 8 do
    for y := 0 to 8 do
      if StringGrid1.cells[x, y] = 'Mthen
        StringGrid1.Canvas.StretchDraw(StringGrid1.CellRect(x, y), bild);
  bild.free; // hier liegt dein Fehler :-)
end;

end.
Dein Fehler:
Du erzeugst das Bild und gibst es wieder frei. Du solltest dir eine Struktur ausdenken wo die Bilder liegen sollen. (TArray oder TObjectlist) Am Ende räumst du die "Liste" weg und gibst die Bilder frei.

Da er das Bild auf dem Canvas des StringGrids malt (kopiert), MUSS er es sogar freigeben, da es ansonsten im Speicher liegen bleibt und dass bei jedem Neuzeichnen.

Generell müsste er die obige Routine immer im OnPaint des StringGrids aufrufen!


@felix00186

Ich würde Dir raten, ein TImage (oder PaintBox) statt des StringGrids zu nehmen und das ganze Spielfeld dort einmal malen und dann wirklich nur die Änderungen (Mienen) nachziehen.
Das Bitmap des Images wird durchs TImage immer wieder neu gemalt, wenn es notwendig ist.

Die Position des einzelnen Feldes lässt sich über OnClick mit X,Y errechnen.

Die Info, ob Miene oder nicht würde ich intern in einem Array ablegen.
  Mit Zitat antworten Zitat
Antwort Antwort

 

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:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz