Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Panels durch Image ersetzt --> Problem


littleStrawberry - Mi 21.01.09 18:00
Titel: Panels durch Image ersetzt --> Problem
Hallo. Wieder ein kleines Problem beim Schulprojekt.
Das hier ist erstmal die würfelprozedur für einen würfel. dabei gibt er ein bild aus. vorher hatten wir zum testen einfach 1: Panel.Caption:='1'; usw. Jetz haben wirs durch die würfelbilder ersetzt, sieht ja schöner aus.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
begin
if Hold1.Checked=false then
Zahl1:=random(6)+1;
case  Zahl1 of
        1:Image1.Picture.LoadFromFile('C:\\....\wuerfel1.bmp');
        2:Image1.Picture.LoadFromFile('C:\\....\wuerfel2.bmp');
        3:Image1.Picture.LoadFromFile('C:\\....\wuerfel3.bmp');
        4:Image1.Picture.LoadFromFile('C:\\....\wuerfel4.bmp');
        5:Image1.Picture.LoadFromFile('C:\\....\wuerfel5.bmp');
        6:Image1.Picture.LoadFromFile('C:\\....\wuerfel6.bmp');
Image1.Show;
        end;


Das funktioniert soweit. Nun muss man die Augenzahl jedoch auch eintragen in die Punktekreditkarte und dazu muss er ja auf die zugewiesene Zahl zugreifen.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm2.first;
var a, b:integer;
begin
za1:=strtoint(Panel2.Caption);
za2:=strtoint(Panel3.Caption);
za3:=strtoint(Panel4.Caption);
za4:=strtoint(Panel5.Caption);
za5:=strtoint(Panel6.Caption);


Bis jetzt stehts noch mit den Panels da. wir haben schon viel probiert, aber irgendwie läuft das nicht mit Image1. sonstwas. fehler ist unter anderem, dass er integer und boolean nich akzeptiert.

Habt ihr nen vorschlag??

Liebe Grüße

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


Webo - Mi 21.01.09 18:06

Da TImage keine Caption hat, kann man die auch nicht finden. Versucht's doch einfach über die eine Prozedur zu machen. Da fragt ihr ja die Zahlen ab, warum nicht dann auch gleich die Werte eintragen, anstatt in einer neuen Prozedur nocheinmal abzufragen.


Blackheart666 - Mi 21.01.09 18:08

Schau dir mal die Tag Eigenschaft vom Image an damit sollte es ganz einfach gehen.


jaenicke - Mi 21.01.09 18:12
Titel: Re: Panels durch Image ersetzt --> Problem
user profile iconlittleStrawberry hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
2:
3:
4:
Zahl1:=random(6)+1;
case  Zahl1 of
        1:Image1.Picture.LoadFromFile('C:\\....\wuerfel1.bmp');
...
Wie wäre es so: ;-)

Delphi-Quelltext
1:
2:
3:
Zahl1 := Random(6) + 1;
Image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) 
  + 'wuerfel' + IntToStr(Zahl1) + '.bmp');
(wenn die Bilder im selben Verzeichnis wie deine Exe liegen, sonst musst du das Unterverzeichnis vor wuerfel noch ergänzen)

ExtractFilePath(ParamStr(0)) ist der Pfad deiner Exe, und die zufällige Zahl kannst du direkt in den Pfad einbinden.


Delete - Mi 21.01.09 18:16

Und wie es bereits angesprochen wurde, Logik und Darstellung trennen.


Blackheart666 - Mi 21.01.09 19:11

Vieleicht solltet ihr die Bilder in eine Imaglist packen dann geht die ganze Sache noch einfacher.