AGB  ·  Datenschutz  ·  Impressum  







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

TstringGrid Problem

Ein Thema von donmarkus · begonnen am 24. Jan 2007 · letzter Beitrag vom 25. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
donmarkus

Registriert seit: 21. Dez 2006
14 Beiträge
 
#1

TstringGrid Problem

  Alt 24. Jan 2007, 13:41
Hi,
ich habe jetzt eine Stunde lang nach einer lösung gesucht, aber nix gefunden/verstanden.
Ich habe ein Tstringgrid und möchte ein kleines Bildchen in eine Zelle reinsetzen..... geht das? Wenn ja WIE??
Wenn das nicht geht dann könnte ich das auch mit dem Zellenhintergrund umgehen. Ich weiß dass man den Hintergrund einer einzelnen Zelle mit ondrawcell verändern kann. Das habe ich aber auch nicht hinbekommen, da ich das nicht verstanden habe, was ich gecodet habe ....
Könnt ihr mir helfen? Mit einem kleinen Bildchen in einer zelle wäre es am einfachsten......
Mfg DonMarkus
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#2

Re: TstringGrid Problem

  Alt 24. Jan 2007, 13:47
Du kannst dazu die Objects-Eigenschaft verwenden. Schau mal in die Hilfe.
  Mit Zitat antworten Zitat
donmarkus

Registriert seit: 21. Dez 2006
14 Beiträge
 
#3

Re: TstringGrid Problem

  Alt 24. Jan 2007, 13:53
Ja das könnte gehen. Aber wie kann ich ein gif bildchen IN das Programm einbinden und dort dann aufrufen?
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#4

Re: TstringGrid Problem

  Alt 24. Jan 2007, 15:38
Einfach in eine Imagelist laden.

Hier gabs schon mal einen interessanten Thread dazu. So könnte das funktionieren:
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var bm: TBitmap;
begin
  if Sender <> NIL then
  with Sender as TStringGrid do
  begin
    bm := TBitmap.Create;
    try
      ImageList1.GetBitmap(0, bm); //statt 0 müsste man hier einen entsprechenden Index angeben
      Canvas.Draw(Rect.Left + 5, Rect.Top + 5, bm);
    finally
      FreeAndNil(bm);
    end;
  end;
end;
Du musst die Images (keine Gifs, besser BMPs) zur Entwurfzeit in die Imagelist laden und im OnDrawCell die entsprechnde ID angeben.

Gruß René
  Mit Zitat antworten Zitat
donmarkus

Registriert seit: 21. Dez 2006
14 Beiträge
 
#5

Re: TstringGrid Problem

  Alt 24. Jan 2007, 15:50
Hallo! Danke für den Tipp. Genau das habe ich gesucht!
Ich verstehe nur noch 2 sachen im quelltext nicht:

<<if Sender <> NIL then
with Sender as TStringGrid do>>


<<Canvas.Draw(Rect.Left + 5, Rect.Top + 5, bm);
finally
FreeAndNil(bm); >>

Kannst du mir erklären was Delphi da genau macht und für was das gut ist?

Mfg Donmarkus
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#6

Re: TstringGrid Problem

  Alt 24. Jan 2007, 15:57
Na erstmal prüf ich, ob der Prozedur ein Sender übergeben wurde - bei manuellem Aufruf kann der fehlen, aber eigentlich kannste das auch weglassen.

Dann caste ich den Sender als TStringgrid, da Sender ja TObject ist.

mit Canvas.Draw wird das Bild gemalt

und finally gehört zum Create von bm, also
Delphi-Quellcode:
bm := TBitmap.Create; //Bitmap erstellen
try
...
finally
  FreeAndNil(bm); //Zum Schluss Bitmap wieder freigeben
end;
  Mit Zitat antworten Zitat
donmarkus

Registriert seit: 21. Dez 2006
14 Beiträge
 
#7

Re: TstringGrid Problem

  Alt 24. Jan 2007, 16:03
ok gut danke!
Wo kann ich dann angeben in welche zelle er das Bild reinmachen soll?

und beim kompilieren kommt folgender fehler:

[Error] Unit1.pas(71): E2250 There is no overloaded version of 'Rect' that can be called with these arguments

DANKE!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.762 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: TstringGrid Problem

  Alt 24. Jan 2007, 17:57
Zitat von donmarkus:
o
[Error] Unit1.pas(71): E2250 There is no overloaded version of 'Rect' that can be called with these arguments

DANKE!
Du solltest um TRect nutzen zu können die Unit Types einbinden.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
donmarkus

Registriert seit: 21. Dez 2006
14 Beiträge
 
#9

Re: TstringGrid Problem

  Alt 24. Jan 2007, 18:27
aha? und wie mache ich das?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.762 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: TstringGrid Problem

  Alt 24. Jan 2007, 18:29
Zitat von donmarkus:
aha? und wie mache ich das?
Unter uses im Interface Teil Types eintragen.

Grüße
Klaus
Klaus
  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 13:52 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