[delphi] boter kaas en eieren

Pagina: 1
Acties:
  • 73 views sinds 30-01-2008

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
hallo, ik ben ff boter kaas en eieren aan het maken maar ik zit met het volgende probleempje:
ik werk met panels die in de volgende volgorde staan

panel1 panel2 panel3
panel4 panel5 panel6
panel7 panel8 panel9


nu zit ik met het probleem voor de functie die controleerd of hij er 3 op een rij heeft. Ik wil dat in 1 functie doen, het is me wel gelukt door bij elk panel een aparte procedure te gebruiken maar dat vind ik een beetje omslachtig.

ik zat al te denken aan iets van een formule die dus iets doet met sender en aan de and daarvan probeert te bepalen hoe de vakjes eromheen uitzien... maar ik kan zo snel niks bedenken dat werkt..

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
nog een vraagie, hoe kan ik al die panels makkelijk aanspreken zonder ze eerst lomp 1 voor 1 in een array te hoeven stoppen..


is er niet iets van tform1.panels[] ???

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
Schoolopdracht, net ook al topic of boter kaas en eieren?!

Anyway, kijk hier eventjes:
[topic=444183/1/25]

Misschien staat daar iets bij wat je kan gebruiken.

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
Op woensdag 20 maart 2002 11:13 schreef Dash2in1 het volgende:
Schoolopdracht, net ook al topic of boter kaas en eieren?!

Anyway, kijk hier eventjes:
[topic=444183/1/25]

Misschien staat daar iets bij wat je kan gebruiken.
het is idd voor school ja, maar ik vraag ook niet om de complete code, alleen een schop in de goede richting.
Wat ik daar zie is geloof ik java.. waar ik niet zo heel veel van snap..

Verwijderd

Een panel is een container voor componenten...
Waar heb je dan 9 panels voor nodig?

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
Op woensdag 20 maart 2002 14:58 schreef robh het volgende:
Een panel is een container voor componenten...
Waar heb je dan 9 panels voor nodig?
iuk gebruik de panels als vakjes, in de caption komt dan het rondje of het kruisje te staan

Verwijderd

Kun je geen labels gebruiken? Daarvan is de caption ook aan te passen, toch?

  • Glival
  • Registratie: December 1999
  • Laatst online: 05-09 21:59
ik denk dat je al een heel eind bent met onderstaande functie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function Waarde(PanelNummer: Integer): Integer;
var
  pnlTemp: TPanel;
begin
  case PanelNummer of
    1: pnlTemp := Panel1;
    2: pnlTemp := Panel2;
    3: pnlTemp := Panel3;
    ..enz..
  end;
  if pnlTemp.Caption = 'X' then
    Result := 1
  else if pnlTemp.Caption = 'O' then
    Result := 2
  else
    Result := 0;
end;

Geeft 1 terug als een kruisje staat op de panel, 2 als er een rondje staat, 0 als er niks op staat.

De bovenste rij kan je zo controleren met:
code:
1
2
3
4
5
6
7
  if (Waarde(1) = Waarde(2)) and (Waarde(2) = Waarde(3)) then
  begin
    case Waarde(1) of
    1: ShowMessage('Jaaaahhh, kruisje heeft gewonnen!');
    2: ShowMessage('Jaaaahhh, rondje heeft gewonnen!');
    end;
  end;

edit:

Het controleren of iemand gewonnen heeft kan natuurlijk beter, maak d'r maar een mooie functie van ;)

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
Op woensdag 20 maart 2002 15:31 schreef Glival het volgende:
ik denk dat je al een heel eind bent met onderstaande functie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function Waarde(PanelNummer: Integer): Integer;
var
  pnlTemp: TPanel;
begin
  case PanelNummer of
    1: pnlTemp := Panel1;
    2: pnlTemp := Panel2;
    3: pnlTemp := Panel3;
    ..enz..
  end;
  if pnlTemp.Caption = 'X' then
    Result := 1
  else if pnlTemp.Caption = 'O' then
    Result := 2
  else
    Result := 0;
end;

Geeft 1 terug als een kruisje staat op de panel, 2 als er een rondje staat, 0 als er niks op staat.

De bovenste rij kan je zo controleren met:
code:
1
2
3
4
5
6
7
  if (Waarde(1) = Waarde(2)) and (Waarde(2) = Waarde(3)) then
  begin
    case Waarde(1) of
    1: ShowMessage('Jaaaahhh, kruisje heeft gewonnen!');
    2: ShowMessage('Jaaaahhh, rondje heeft gewonnen!');
    end;
  end;

edit:

Het controleren of iemand gewonnen heeft kan natuurlijk beter, maak d'r maar een mooie functie van ;)
ja die functie is nu gelukt... hij doet het.


maar ik moet nu (voor de netwerkversie) weten welk panel precies aangeklikt word... kan ik dat op de een of andere manier uit (sender) halen???

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
laat maar.. heb het al uitgevonden.. iets ts snel gepost..

ik zet gewoon het nr in de tag en dan doe ik
tpanel(sender).tag

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
weer een probleempje ik moety me programma op een panel laten klikken, alleen dat gaan bij een panel niet zo als met een button..
dus niet met
code:
1
2
3
4
5
panel1.click;

//bij button..

button1.click;

in snap het niet want tpanel heeft wel een onclick event

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
Op woensdag 20 maart 2002 16:02 schreef THIJZEL het volgende:
weer een probleempje ik moety me programma op een panel laten klikken, alleen dat gaan bij een panel niet zo als met een button..
dus niet met
code:
1
2
3
4
5
panel1.click;

//bij button..

button1.click;

in snap het niet want tpanel heeft wel een onclick event
* THIJZEL geeft een zacht schopje naar boven..


weet niemand hie ik die kaln laten klikken??
tform1.panel1click(panels[strtoint(socket.receivetext)]);

dat werkt ook niet

(panels is een array waar alle panels instaan..

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

Tja, al dat kicken daar wordt niemand beter van.. En al helemaal niet jijzelf.. Nu ben ik wel genoodzaakt deze dicht te gooien...

Als je hier al veel moeite mee hebt, probeer dan eerst eens iets simpelere dingen met een GUI om dat goed onder de knie te krijgen...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.