Autor Beitrag
Bockscar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 105



BeitragVerfasst: So 12.03.06 11:22 
Guten Morgen.

Eine kleine Frage habe ich.

Je nach dem welcher Spieler dran ist, werden Münzen auf dem label l_tisch1 oder l_tisch2 gemalt. Diese Labels liegen beinahe übereinander.

Bei einem Click auf DELETE sollen eigentlich nur die Münzen des Spielers der dran ist gelöscht werden. Sprich: Bei player1 führt der Click auf DELETE eben l_tisch1.repaint aus.

Komischerweise ist es aber so, dass wenn ich als Spieler 2 (der nach Spieler1 dran ist) DELETE drücke eben nicht nur seine münzen(l_tisch2.repaint) sondern auch die von spieler1(l_tisch1.repaint) gelöscht werden.

Wie ist das möglich?
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: So 12.03.06 11:25 
Hab gestern schon gesagt, dass meine Glaskugel verschwunden ist. Wir brauchen Source :wink:

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Bockscar Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 105



BeitragVerfasst: So 12.03.06 11:38 
Da gibt es wenig sinnvollen Code: :)

Zum zeichnen:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
try
new := croupier.show_bets(bet);

//Münzen zeichnen Prozess!
if (croupier.show_bets(bet) > 0then
   begin
   //Münze zeichnen
    if croupier.show_active_player = 1 then
     begin
     if croupier.show_bets(bet) < 100 then
      begin
       with bitmap do begin
       Loadfromfile(path);
       Transparent := true;
       Canvas.Brush.Style:=bsClear;
       Canvas.TextOut(3,5,IntToStr(new)); //  Einsatz schreiben
       Spielflaeche.l_tisch1.Canvas.Draw(x,y,bitmap);
       end;
      end
     else
      begin
       with bitmap do begin
       {...}
       Spielflaeche.l_tisch1.Canvas.Draw(x,y,bitmap);
       end;
       end;
   end
    else if croupier.show_active_player = 2 then
    begin
     if croupier.show_bets(bet) < 100 then
      begin
       with bitmap do begin
       {...}
       Spielflaeche.l_tisch2.Canvas.Draw(x,y,bitmap);
       end;
     end
     else
      begin
       with bitmap do begin
       {...}
       Spielflaeche.l_tisch2.Canvas.Draw(x,y,bitmap);
       end;
      end;
     end;
   end;

finally
bitmap.free;
end;


Zum löschen

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TSpielflaeche.b_delbetClick(Sender: TObject);
begin
croupier.delete_bets(activeplayer);
end;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
//Einsätze auf Chancen löschen bei Klick auf Delbet!
procedure Tcroupier.delete_bets(activeplayer :Tplayerpointer);
var i :integer;
begin

if activeplayer^ = player1 then
 begin
  Spielflaeche.l_tisch1.Repaint;
  ...

 end

 else
  begin
   Spielflaeche.l_tisch2.Repaint;
   ...
  end;

 croupier.set_round_amount(-Fround_amount);
  end;



Kann es vlt sein dass Repaint nur den Bereich wo das Label liegt was repainted wird neuzeichnet, also auch alles was DAVOR oder dahinter liegt und sich eben nciht auf den inhalt von exakt diesem label beschraenkt?