AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Arrayelement anklicken

Ein Thema von Sotov · begonnen am 20. Jan 2007 · letzter Beitrag vom 21. Jan 2007
Antwort Antwort
Seite 1 von 3  1 23      
Sotov

Registriert seit: 7. Mär 2006
Ort: Trier
18 Beiträge
 
Delphi 7 Enterprise
 
#1

Arrayelement anklicken

  Alt 20. Jan 2007, 23:25
Ich habe folgendes Problem!

Ich habe ein array of TImage und möchte, dass die einzelnen elemnte angeklickt werden können.

Karte[1].OnClick funktioniert nicht

Delphi-Quellcode:
var
  Form1: TForm1;
  var karte : array [1..100] of TImage;

implementation

{$R *.DFM}


procedure TForm1.FormCreate(Sender: TObject);
var j,i,a,b :integer;
begin
a:=2;
b:=2;
for j:= 1 to 4 do begin
for i:=1 to 5 do begin
  Karte[i]:=TImage.Create(Self);
  Karte[i].Parent:= Self;
  Karte[i].Left:=a;
  Karte[i].Top:= b;
  Karte[i].AutoSize:=True;
  Karte[i].Picture := Image1.picture;
  a:=a+100;
  end;
  a:= 2;
  b:= b+ 100;
 end;

end;
Ich habe die Bilder in die Form geladen um "picture.loadfromfile();" nicht zu benutzen, damit ich am Ende nur eine Exedatei habe.

Ich möchte das Spiel Memory machen.

Vielen Dank im Voraus!
Dimitri
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Arrayelement anklicken

  Alt 20. Jan 2007, 23:33
Du musst dem OnClieck-Event auch eine Prozedur zuweisen
Oder was genau funktioniert nicht ?

Gruß
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Sotov

Registriert seit: 7. Mär 2006
Ort: Trier
18 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Arrayelement anklicken

  Alt 20. Jan 2007, 23:45
Ja, aber ich kann ja mit einem Array keine OnClick procedur machen!

Ich möchte, dass wenn ich auf das element karte[1] klicke dann folgendes passiert karte[1].picture := Image2.picture;
Aber das klappt nur, wenn sich dieses Element auch anklicken lässt, nur weiss ich nicht, wie ich es dazu bringen soll, anklickbar zu sein!
Dimitri
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Arrayelement anklicken

  Alt 20. Jan 2007, 23:50
Sotov,

Zitat von Sotov:
Ja, aber ich kann ja mit einem Array keine OnClick procedur machen!
Wieso nicht?

Delphi-Quellcode:
TForm1 = class(TForm)
//...
  procedure Image1Click(Sender: TObject);
//...


procedure TForm1.Image1Click(Sender: TObject);
begin
//...
end;

//...

Karte[i].OnClick := Image1Click;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Arrayelement anklicken

  Alt 20. Jan 2007, 23:54
Deine OnClick Prozedur müsste dann ungefair so aussehen:

Delphi-Quellcode:
procedure TForm1.OnMyClick(Sender: TObject);
begin
  (Sender as TImage).picture := Image2.picture;
end;
Gruß
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Sotov

Registriert seit: 7. Mär 2006
Ort: Trier
18 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Arrayelement anklicken

  Alt 20. Jan 2007, 23:58
Hmm, so hatte ich es mir am Anfang auch gedacht, aber irgendwie klappt es nicht!

Delphi-Quellcode:
procedure TForm1.Image1Click(Sender: TObject);
begin
Karte[1].OnClick := Image1Click;
showmessage('hi');
end;
Es passiert absolut nichts, wenn ich das objekt karte[1] anklicke!

Zitat:
Deine OnClick Prozedur müsste dann ungefair so aussehen:
Sorry, ich bin ein Anfänger und den Code habe ich leider nicht verstanden!
Dimitri
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Arrayelement anklicken

  Alt 21. Jan 2007, 00:01
Dieser Teil muss in deine Schleife, dass jedes Image, diese Prozedur zugewiesen bekommt.
Karte[1].OnClick := Image1Click; [Add]
Zitat von Sotov:
Sorry, ich bin ein Anfänger und den Code habe ich leider nicht verstanden!
Diesen Code (Sender as TImage).picture := Image2.picture; schreibst du in dein Image1Click.
Zur Erklärung:
Durch Sender "weis" die Prozedur, welches TImage angeklickt wurde und in das läd er dann das Bild aus Picture2.

Gruß
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Sotov

Registriert seit: 7. Mär 2006
Ort: Trier
18 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Arrayelement anklicken

  Alt 21. Jan 2007, 00:04
Super! Klappt alles!

Vielen dank!
Dimitri
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

Re: Arrayelement anklicken

  Alt 21. Jan 2007, 00:16
bist du sicher, daß alles richtig funktioniert?
Delphi-Quellcode:
for j := 1 to 4 do begin
for i := 1 to 5 do begin
  Karte[i]

so wäre es wohl etwas besser
Delphi-Quellcode:
for j := 1 to 4 do begin
for i := 1 to 5 do begin
  Karte[(j - 1) * 5 + i]
oder 0-basierend
Delphi-Quellcode:
var karte : array [0..99] of TImage;

for j := 0 to 3 do begin
for i := 0 to 4 do begin
  Karte[j * 5 + i]
$2B or not $2B
  Mit Zitat antworten Zitat
Sotov

Registriert seit: 7. Mär 2006
Ort: Trier
18 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Arrayelement anklicken

  Alt 21. Jan 2007, 00:20
Hmm, ich weiss nicht was es geändert haben soll, denn es hat sich absolut nichts verändert!
Aber trotzdem vielen dank!
Dimitri
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz