- Android alkalmazások - szoftver kibeszélő topik
- Profi EKG-s óra lett a Watch Fitből
- Honor 400 Pro - gép a képben
- Samsung Galaxy S21 és S21+ - húszra akartak lapot húzni
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Samsung Galaxy A54 - türelemjáték
- Milyen okostelefont vegyek?
- Telekom mobilszolgáltatások
- Apple iPhone 16 Pro - rutinvizsga
- India felől közelít egy 7550 mAh-s Redmi
Új hozzászólás Aktív témák
-
Yodafon
őstag
Köszi szépen de már megoldódott.
Én is ezen a nyomon indultam el, és ez jött ki belőle:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, OleServer, ExcelXP, StdCtrls;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure mezoSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure mezoDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
private
{ Private declarations }
public
k:string[2];
kord:record
osz,sor:integer;
end;
mezo:array[1..9] of TStringGrid;
{ Public declarations }
end;
var
Form1: TForm1;
j:integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
for i:=1 to 9 do
begin
mezo[i]:=TStringGrid.create(form1);
mezo[i].parent:=form1;
end;
mezo[1].Top:=20;
mezo[1].Left:=50;
mezo[1].FixedCols:=0;
mezo[1].FixedRows:=0;
mezo[1].ColCount:=3;
mezo[1].RowCount:=3;
mezo[1].DefaultColWidth:=20;
mezo[1].DefaultRowHeight:=20;
mezo[1].Ctl3D:=false;
mezo[1].Width:=64;
mezo[1].Height:=64;
mezo[1].ScrollBars:=ssNone;
mezo[1].tag:=1;
mezo[2].Top:=20;
mezo[2].Left:=120;
mezo[2].FixedCols:=0;
mezo[2].FixedRows:=0;
mezo[2].ColCount:=3;
mezo[2].RowCount:=3;
mezo[2].DefaultColWidth:=20;
mezo[2].DefaultRowHeight:=20;
mezo[2].Ctl3D:=false;
mezo[2].Width:=64;
mezo[2].Height:=64;
mezo[2].ScrollBars:=ssNone;
mezo[2].Tag:=2;
mezo[3].Top:=20;
mezo[3].Left:=190;
mezo[3].FixedCols:=0;
mezo[3].FixedRows:=0;
mezo[3].ColCount:=3;
mezo[3].RowCount:=3;
mezo[3].DefaultColWidth:=20;
mezo[3].DefaultRowHeight:=20;
mezo[3].Ctl3D:=false;
mezo[3].Width:=64;
mezo[3].Height:=64;
mezo[3].ScrollBars:=ssNone;
mezo[3].Tag:=3;
mezo[4].Top:=90;
mezo[4].Left:=50;
mezo[4].FixedCols:=0;
mezo[4].FixedRows:=0;
mezo[4].ColCount:=3;
mezo[4].RowCount:=3;
mezo[4].DefaultColWidth:=20;
mezo[4].DefaultRowHeight:=20;
mezo[4].Ctl3D:=false;
mezo[4].Width:=64;
mezo[4].Height:=64;
mezo[4].ScrollBars:=ssNone;
mezo[4].tag:=4;
mezo[5].Top:=90;
mezo[5].Left:=120;
mezo[5].FixedCols:=0;
mezo[5].FixedRows:=0;
mezo[5].ColCount:=3;
mezo[5].RowCount:=3;
mezo[5].DefaultColWidth:=20;
mezo[5].DefaultRowHeight:=20;
mezo[5].Ctl3D:=false;
mezo[5].Width:=64;
mezo[5].Height:=64;
mezo[5].ScrollBars:=ssNone;
mezo[5].Tag:=5;
mezo[6].Top:=90;
mezo[6].Left:=190;
mezo[6].FixedCols:=0;
mezo[6].FixedRows:=0;
mezo[6].ColCount:=3;
mezo[6].RowCount:=3;
mezo[6].DefaultColWidth:=20;
mezo[6].DefaultRowHeight:=20;
mezo[6].Ctl3D:=false;
mezo[6].Width:=64;
mezo[6].Height:=64;
mezo[6].ScrollBars:=ssNone;
mezo[6].Tag:=6;
mezo[7].Top:=160;
mezo[7].Left:=50;
mezo[7].FixedCols:=0;
mezo[7].FixedRows:=0;
mezo[7].ColCount:=3;
mezo[7].RowCount:=3;
mezo[7].DefaultColWidth:=20;
mezo[7].DefaultRowHeight:=20;
mezo[7].Ctl3D:=false;
mezo[7].Width:=64;
mezo[7].Height:=64;
mezo[7].ScrollBars:=ssNone;
mezo[7].Tag:=7;
mezo[8].Top:=160;
mezo[8].Left:=120;
mezo[8].FixedCols:=0;
mezo[8].FixedRows:=0;
mezo[8].ColCount:=3;
mezo[8].RowCount:=3;
mezo[8].DefaultColWidth:=20;
mezo[8].DefaultRowHeight:=20;
mezo[8].Ctl3D:=false;
mezo[8].Width:=64;
mezo[8].Height:=64;
mezo[8].ScrollBars:=ssNone;
mezo[8].tag:=8;
mezo[9].Top:=160;
mezo[9].Left:=190;
mezo[9].FixedCols:=0;
mezo[9].FixedRows:=0;
mezo[9].ColCount:=3;
mezo[9].RowCount:=3;
mezo[9].DefaultColWidth:=20;
mezo[9].DefaultRowHeight:=20;
mezo[9].Ctl3D:=false;
mezo[9].Width:=64;
mezo[9].Height:=64;
mezo[9].ScrollBars:=ssNone;
mezo[9].tag:=9;
for i:=0 to 10 do
StringGrid1.Cells[i,0]:=inttostr(i+1);
mezo[1].ONSelectCell:=mezoSelectCell;
mezo[2].ONSelectCell:=mezoSelectCell;
mezo[3].ONSelectCell:=mezoSelectCell;
mezo[4].ONSelectCell:=mezoSelectCell;
mezo[5].ONSelectCell:=mezoSelectCell;
mezo[6].ONSelectCell:=mezoSelectCell;
mezo[7].ONSelectCell:=mezoSelectCell;
mezo[8].ONSelectCell:=mezoSelectCell;
mezo[9].ONSelectCell:=mezoSelectCell;
mezo[1].ONDrawCell:=mezoDrawCell;
mezo[2].ONDrawCell:=mezoDrawCell;
mezo[3].ONDrawCell:=mezoDrawCell;
mezo[4].ONDrawCell:=mezoDrawCell;
mezo[5].ONDrawCell:=mezoDrawCell;
mezo[6].ONDrawCell:=mezoDrawCell;
mezo[7].ONDrawCell:=mezoDrawCell;
mezo[8].ONDrawCell:=mezoDrawCell;
mezo[9].ONDrawCell:=mezoDrawCell;
StringGrid1.OnDrawCell:=mezoDrawCell;
end;
procedure TForm1.mezoSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
StringGrid1.Visible:=true;
kord.osz:=ACol;
kord.sor:=Arow;
case (Sender as TStringGrid).Tag of
1:begin j:=1;mezo[1].Cells[kord.osz,kord.sor]:=k; end;
2:begin j:=2;mezo[2].Cells[kord.osz,kord.sor]:=k; end;
3:begin j:=3;mezo[3].Cells[kord.osz,kord.sor]:=k; end;
4:begin j:=4;mezo[4].Cells[kord.osz,kord.sor]:=k; end;
5:begin j:=5;mezo[5].Cells[kord.osz,kord.sor]:=k; end;
6:begin j:=6;mezo[6].Cells[kord.osz,kord.sor]:=k; end;
7:begin j:=7;mezo[7].Cells[kord.osz,kord.sor]:=k; end;
8:begin j:=8;mezo[8].Cells[kord.osz,kord.sor]:=k; end;
9:begin j:=9;mezo[9].Cells[kord.osz,kord.sor]:=k; end;
end;
end;
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
mezo[j].Cells[kord.osz,kord.sor]:=StringGrid1.Cells[ACol,Arow];
StringGrid1.Visible:=false;
end;
procedure TForm1.mezoDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with (Sender as TStringGrid).Canvas do
begin
Font.Color := clBlack;
{ if the cell is selected, or focused then we use the highlight color for the cell }
if (gdSelected in State) or (gdFocused in State) then
brush.Color := clwhite
{ if the cell is FIXED then we just use the color of the face of a button }
else if (gdFixed in State) then
brush.Color := clwhite
{ else it is just the window color - or any other color you want }
else
Brush.Color := clwhite;
FillRect(Rect);
if (gdSelected in State) or (gdFocused in State) then
Font.Color := clBlack;
{ Draw the text in the cell - you could draw anything in there }
TextRect(Rect, Rect.Left+2, Rect.Top+2, (Sender as TStringGrid).Cells[ACol, ARow]);
end;
end;
end.Ez annyit csinál hogy 9 db 3x3 -as cellát készít és ha az egyik cellába belekattintok akkor felugrik egy másik mező, ahol ki lehet választani a bele kerülő számot. Igazából Sudokut akarok csinálni anyámnak mert most nagyon rákattant.
De azért köszi szépen mindkettőtöknek, hogy segítettetek ilyen amatőrnek mint én.
-
Yodafon
őstag
Na szóval:
Van 2 db StringGrid-em a formon. Ezeket bepakoltam egy tömbbe.
Eddig remélem tiszta.És pusztán arra lennék kíváncsi hogy hogy is néz ki mondjuk az 1-es indexű StringGrid SelectCell eljárása.
Én valami indexelt eljárásra gondoltam mert ugye egy tömbbe vannak a StringGridek és az eljáráshoz is meg kell adni a tömb indexét azaz hogy hanyadik StringGrid -nek a SelectCell eljárását adom meg.
Egyáltalán lehetséges ez?
-
Yodafon
őstag
Pont azt szeretném elkerülni hogy minden mezönek saját SelectCell-je legyen.
Hanem legyen egy mezo[i] SelectCell eljárás ahol csak a kiválasztott mező táblázat Select Cell-je fusson le. Esetleg én tudnám meghívni egy i változóval.
Amit adtatok az sajnos nem jött be:mezo[1].SelectCell:=mezoSelectCell;
Ezt /|\ a FormCreate be raktam. De valószínűbb hogy csak én vok hüle hozzá.
Bocsi ha hüleségnek tűnik csak most kezdtem el nemrég Delphizni. Előtte Pascaloztam meg C-ztem.
-
Yodafon
őstag
válasz
Fire/SOUL/CD #1719 üzenetére
Nem pont erre gondoltam.
Akkor vázolom a szitut.Deklaráltam ezt a publicban:
mezo:array[1..2] of TStringGrid;
Hozzárendeltem a formhoz őket a FormCreate -ben:
begin
for i:=1 to 2 do
begin
mezo[i]:=TStringGrid.create(form1);
mezo[i].parent:=form1;
end;Majd megadtam az egyes táblázatok tul.-ait szintén ott:
mezo[1].Top:=20;
mezo[1].Left:=50;
mezo[1].FixedCols:=0;
mezo[1].FixedRows:=0;
mezo[1].ColCount:=3;
mezo[1].RowCount:=3;
mezo[1].DefaultColWidth:=20;
mezo[1].DefaultRowHeight:=20;
mezo[1].Ctl3D:=false;
mezo[1].Width:=64;
mezo[1].Height:=64;
mezo[1].ScrollBars:=ssNone;
mezo[2].Top:=20;
mezo[2].Left:=120;
mezo[2].FixedCols:=0;
mezo[2].FixedRows:=0;
mezo[2].ColCount:=3;
mezo[2].RowCount:=3;
mezo[2].DefaultColWidth:=20;
mezo[2].DefaultRowHeight:=20;
mezo[2].Ctl3D:=false;
mezo[2].Width:=64;
mezo[2].Height:=64;
mezo[2].ScrollBars:=ssNone;Majd azt szeretném elérni hogy egy eseményt tudjak hozzárendelni egy táblázathoz:
pl. az 1. táblázat ami a tömb első eleme reagáljon vmit ha kijelölök rajta egy cellát.
ugyanezt a többire is.ha a táblá(i)m nem tömbbel deklarálom akkor simán műxik.
egyáltalán lehetséges ez?
Remélem érthető volt.
-
Yodafon
őstag
Esetleg azt még meg tudnád mondani hogy hogyan néz ki egy ogyan fgv. ami a kiválasztott cellára lefut?
mint pl. ez:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);csak több dimenzióban?
-
Yodafon
őstag
Köszi szépen.
Be kellet incudolni amit adtál, csak azt nem értem hogy hogyan tud működni ha nincs beincludolva, csak mert az object inspectorban tudom állítgatni .
Mellesleg a kód a TForm1.FormCreate részben van. Úgyhogy csak 1 unitom van. -
Yodafon
őstag
Sziasztok
nekem olyan kérdésem lenne hogy csináltam egy tömböt ami 2 elemű és TStringGrid típusú
mikor meg akarom adni a tul. -ait akkor szépen meg is csinálja csak a scrollbars-t nem tudom eltüntetni.mezo[1].Top:=200;
mezo[1].Left:=500;
mezo[1].FixedCols:=0;
mezo[1].FixedRows:=0;
mezo[1].ColCount:=3;
mezo[1].RowCount:=3;
mezo[1].DefaultColWidth:=20;
mezo[1].DefaultRowHeight:=20;
mezo[1].Ctl3D:=false;
mezo[1].Width:=63;
mezo[1].Height:=63;
mezo[1].ScrollBars:=ssNone;az utolsó sorra azt dobja hogy
[Error] Unit1.pas(64): Undeclared identifier: 'ssNone'
most akkor mit is kéne oda rakni?
Köszi szépen.
Új hozzászólás Aktív témák
Hirdetés
- Sütés, főzés és konyhai praktikák
- Delta Force (2024)
- lezso6: Nem látszik a kurzor Chrome alatt a beviteli mezőkben?
- Call of Duty: Black Ops 6
- Autós topik látogatók beszélgetős, offolós topikja
- Vezetékes FEJhallgatók
- Windows 11
- Xbox tulajok OFF topicja
- Stellar Blade
- Nyaralás topik
- További aktív témák...
- Felújított szerverek, storage-ok, hálózati eszközök Enterprise szinten, minden gyártótól
- LG 27UL550-W - 27" IPS / 3840x2160 4K / 60Hz 5ms / HDR10 / AMD FreeSync
- DELL Universal Dock D6000 dokkolók, RTX Legion Pro laptopok 4 év Lenovo garanciával, licencek
- BESZÁMÍTÁS! ASRock B250 i5 6600 16GB DDR4 256 SSD 500GB HDD GTX 1050 2GB Zalman Z1 Njoy 550W
- Keresünk dokkolókat
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest