![]() |
Skat - Bilder in Stringgrid einfügen
Liste der Anhänge anzeigen (Anzahl: 1)
MoinMoin!
Mir gelingt es nicht Spielkarten in ein Stringgrid einzufügen. Nach meinen Versuchen bekam ich stets alle Karten auf allen "Cols" angezeigt. Wer kann mir hierbei helfen? mfg Wieland
Delphi-Quellcode:
unit skat1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ScktComp, StdCtrls, Grids, ExtCtrls, ImgList, ActnList, ComCtrls; type TForm1 = class(TForm) ClientSocket1: TClientSocket; ServerSocket1: TServerSocket; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; MainMenu1: TMainMenu; start1: TMenuItem; neuerunde1: TMenuItem; beenden1: TMenuItem; hilfe1: TMenuItem; regeln1: TMenuItem; reglnfrdeppen1: TMenuItem; regelnfrleutediezudooffrsaktsind1: TMenuItem; JA: TButton; NEIN: TButton; StringGrid1: TStringGrid; procedure beenden1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); private procedure wimageload; { Private declarations } public { Public declarations } end; var Form1: TForm1; karten:array[1..32] of TBitmap; spieler1:array[0..9] of Integer; spieler2:array[0..9] of Integer; spieler3:array[0..9] of Integer; karten2d,auswahl,richtig: array [0..15,0..15] of integer; skat2,skat3:integer; dransein:integer; implementation {$R *.dfm} procedure TForm1.wimageload; var i: integer; begin for i:=0 to 31 do begin karten[i]:=TBitmap.Create; karten[i].LoadFromFile(IntToStr(i)+'.bmp'); end; end; procedure TForm1.beenden1Click(Sender: TObject); begin close; end; procedure TForm1.FormCreate(Sender: TObject); var w: integer; begin wimageload; for w:=0 to 31 do begin stringgrid1.col:=w; stringgrid1.Canvas.Draw(karten[w]); end; end; procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var w: integer; begin end; end. |
Re: Skat - Bilder in Stringgrid einfügen
Hi !
So funzts:
Delphi-Quellcode:
Du könntest die Bitmaps auch als Resourcen speichern, siehe dazu den DBNavigator.
procedure TForm1.wimageload;
var i: integer; begin for i:=1 to 32 do begin karten[i]:=TBitmap.Create; karten[i].LoadFromFile(IntToStr(i)+'.bmp'); end; end; procedure TForm1.FormCreate(Sender: TObject); begin wimageload; end; procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin stringgrid1.Canvas.Draw(rect.left, rect.top, Karten[ACol+1]); end; :) |
Re: Skat - Bilder in Stringgrid einfügen
Ich hätte gerne in ein Memofeld geschrieben, wie spät es zum Zeitpunkt des Starts des Programmes war.
Trotz Suche in diesem und anderen Foren habe ich keine Lösung gefunden. Die Zeit soll unter form.create ins memofeld eingefügt werden. Wer kann mir hiermit helfen? Quelltext:
Delphi-Quellcode:
unit skat1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ScktComp, StdCtrls, Grids, ExtCtrls, Buttons; type TForm1 = class(TForm) ClientSocket1: TClientSocket; ServerSocket1: TServerSocket; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; MainMenu1: TMainMenu; start1: TMenuItem; neuerunde1: TMenuItem; beenden1: TMenuItem; hilfe1: TMenuItem; regeln1: TMenuItem; reglnfrdeppen1: TMenuItem; regelnfrleutediezudooffrsaktsind1: TMenuItem; JA: TButton; NEIN: TButton; StringGrid1: TStringGrid; StringGrid2: TStringGrid; StringGrid3: TStringGrid; spieler_2: TLabel; spieler_3: TLabel; Image1: TImage; aus: TBitBtn; Chatfenster: TMemo; procedure beenden1Click(Sender: TObject); procedure Chrgeben; procedure FormCreate(Sender: TObject); procedure sreihenfolge; procedure wimageload; procedure JAClick(Sender: TObject); procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); procedure ausClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; karten:array[0..31] of TBitmap; nummern:array[0..31]of Integer; spieler1:array[0..9] of Integer; spieler2:array[0..9] of Integer; spieler3:array[0..9] of Integer; skat2,skat3, dransein, sgeben, shoeren, ssagen:integer; implementation {$R *.dfm} procedure TForm1.beenden1Click(Sender: TObject); begin close; end; procedure TForm1.Chrgeben; var i, x, j : integer; begin Randomize; for i:= 0 to 31 do begin j:=Random(31); X:=nummern[i] ; nummern[i]:= nummern[j]; nummern[j]:=x; end; for i:=0 to 9 do spieler1[i]:=nummern[i]; for i:=0 to 9 do spieler2[i]:=nummern[i+10]; for i:=0 to 9 do spieler3[i]:=nummern[i+20]; skat2:=nummern[30]; skat3:=nummern[31]; for i:=0 to 8 do begin for j:=i+1 to 9 do begin if spieler1[j] < spieler1[i] then begin x:=spieler1[i]; spieler1[i]:=spieler1[j]; spieler1[j]:=x; end; end; end; for i:=0 to 8 do begin for j:=i+1 to 9 do begin if spieler2[j] < spieler2[i] then begin x:=spieler2[i]; spieler2[i]:=spieler2[j]; spieler2[j]:=x; end; end; end; for i:=0 to 8 do begin for j:=i+1 to 9 do begin if spieler3[j] < spieler3[i] then begin x:=spieler3[i]; spieler3[i]:=spieler3[j]; spieler3[j]:=x; end; end; end; end; procedure TForm1.wimageload; var i: integer; begin for i:=0 to 31 do begin karten[i]:=TBitmap.Create; karten[i].LoadFromFile(IntToStr(i)+'.bmp'); end; end; procedure TForm1.sreihenfolge; begin if sgeben=3 then sgeben:=1 else sgeben:=sgeben+1; if shoeren=3 then shoeren:=1 else shoeren:=shoeren+1; if ssagen=3 then ssagen:=1 else ssagen:=ssagen+1; if sgeben=3 then dransein:=1 else dransein:=sgeben+1; end; procedure TForm1.FormCreate(Sender: TObject); var chr3:integer; begin for chr3:= 0 to 31 do nummern[chr3]:=chr3; chrgeben; sgeben:=1; shoeren:=2; ssagen:=3; wimageload; sreihenfolge; chatfenster.Lines.Add('Spielbeginn'+'w'); end; procedure TForm1.JAClick(Sender: TObject); var chr4:integer; begin chrgeben; stringgrid1.Refresh; end; procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var c:integer; begin for c := 0 to 31 do begin if spieler1[Acol]=c then stringgrid1.Canvas.Draw(rect.left, rect.top, Karten[c]); end; end; procedure TForm1.ausClick(Sender: TObject); begin close; end; end. mfg Wieland P.S.: Kann man eigentlich den Titel eines Themas nachträglich ändern? Wenn ja, wie? |
Re: Skat - Bilder in Stringgrid einfügen
Zitat:
Delphi-Quellcode:
Das geht natürlich auch mit einem Datum. (Date)
Memo.lines.add(timetostr(now);
Den Titel ändern kannst du, indem du das erste Post editierst. (Button oben rechts) |
Re: Skat - Bilder in Stringgrid einfügen
Danke!
|
Re: Skat - Bilder in Stringgrid einfügen
Liste der Anhänge anzeigen (Anzahl: 1)
jetzt frage ich mich, wie ich die karten sortieren kann. Als Beispiel/Anleitung für mich erführe ich gerne, wie man die Buben nach rechts sortieren lassen könnte (mittels Button).
Danke schonmal, Wieland Quelltext:
Delphi-Quellcode:
type TForm1 = class(TForm) ClientSocket1: TClientSocket; ServerSocket1: TServerSocket; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; MainMenu1: TMainMenu; start1: TMenuItem; neuerunde1: TMenuItem; beenden1: TMenuItem; hilfe1: TMenuItem; regeln1: TMenuItem; reglnfrdeppen1: TMenuItem; JA: TButton; NEIN: TButton; gridspieler1: TStringGrid; gridspieler2: TStringGrid; gridspieler3: TStringGrid; spieler_2: TLabel; spieler_3: TLabel; Image1: TImage; aus: TBitBtn; Chatfenster: TMemo; gridskat: TStringGrid; labelSkat: TLabel; buttonsortiere: TButton; procedure beenden1Click(Sender: TObject); procedure Chrgeben; procedure FormCreate(Sender: TObject); procedure sreihenfolge; procedure wimageload; procedure JAClick(Sender: TObject); procedure gridspieler1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); procedure ausClick(Sender: TObject); procedure buttonsortiereClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; karten:array[0..31] of TBitmap; nummern:array[0..31]of Integer; spieler1:array[0..9] of Integer; spieler2:array[0..9] of Integer; spieler3:array[0..9] of Integer; skat2,skat3, dransein, sgeben, shoeren, ssagen, spiel:integer; implementation {$R *.dfm} procedure TForm1.beenden1Click(Sender: TObject); begin close; end; procedure TForm1.Chrgeben; var i,x,j:integer; begin Randomize; for i:= 0 to 31 do begin j:=Random(31); X:=nummern[i] ; nummern[i]:= nummern[j]; nummern[j]:=x; end; for i:=0 to 9 do begin spieler1[i]:=nummern[i]; spieler2[i]:=nummern[i+10]; spieler3[i]:=nummern[i+20]; end; skat2:=nummern[30]; skat3:=nummern[31]; for i:=0 to 8 do begin for j:=i+1 to 9 do begin if spieler1[j] < spieler1[i] then begin x:=spieler1[i]; spieler1[i]:=spieler1[j]; spieler1[j]:=x; end; if spieler2[j] < spieler2[i] then begin x:=spieler2[i]; spieler2[i]:=spieler2[j]; spieler2[j]:=x; end; if spieler3[j] < spieler3[i] then begin x:=spieler3[i]; spieler3[i]:=spieler3[j]; spieler3[j]:=x; end; end; end; end; procedure TForm1.wimageload; var i: integer; begin for i:=0 to 31 do begin karten[i]:=TBitmap.Create; karten[i].LoadFromFile(IntToStr(i)+'.bmp'); end; end; procedure TForm1.sreihenfolge; begin if sgeben=3 then sgeben:=1 else sgeben:=sgeben+1; if shoeren=3 then shoeren:=1 else shoeren:=shoeren+1; if ssagen=3 then ssagen:=1 else ssagen:=ssagen+1; if sgeben=3 then dransein:=1 else dransein:=sgeben+1; end; procedure TForm1.FormCreate(Sender: TObject); var chr3:integer; begin for chr3:= 0 to 31 do nummern[chr3]:=chr3; chrgeben; sgeben:=1; shoeren:=2; ssagen:=3; wimageload; sreihenfolge; chatfenster.Lines.Add('Spielbeginn: '+(timetostr(now))); end; procedure TForm1.JAClick(Sender: TObject); begin chrgeben; gridspieler1.Refresh; end; procedure TForm1.gridspieler1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var c:integer; begin for c := 0 to 31 do begin if spieler1[Acol]=c then gridspieler1.Canvas.Draw(rect.left, rect.top, Karten[c]); end; end; procedure TForm1.ausClick(Sender: TObject); begin close; end; procedure TForm1.buttonsortiereClick(Sender: TObject); var w,w2,w3,w4,w5:integer; begin end; { if spiel=1 then begin for w:=9 downto 0 do begin if gridspieler1 [w] =5 then begin w2:=w; w3:=5; gridspieler1[w]:=5; gridspieler1[w2]:= end; end; end;} end. |
Re: Skat - Bilder in Stringgrid einfügen
Bei einer neuen Frage solltest du auch einen neuen Thread anfangen, sonst findet man später nichts wieder. Über die Forensuche hättest du z.B. Daniels
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 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-2025 by Thomas Breitkreuz