AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Name von Dyn. generiertem Image auf einem Dyn. gener. Panel
Thema durchsuchen
Ansicht
Themen-Optionen

Name von Dyn. generiertem Image auf einem Dyn. gener. Panel

Ein Thema von Deven · begonnen am 1. Jan 2004 · letzter Beitrag vom 1. Jan 2004
Antwort Antwort
Deven

Registriert seit: 27. Jun 2003
49 Beiträge
 
Delphi 7 Enterprise
 
#1

Name von Dyn. generiertem Image auf einem Dyn. gener. Panel

  Alt 1. Jan 2004, 21:01
Hallo zusammen

Ich habe wieder ein Problem bei dme ich keine Lösung finde

Wie schon so oft gesagt programmiere ich der Zeit ein Memoryspiel.

Das Programm erstellt Dynamisch Panels die als Spielkarten dienen.
Auf den Panels werden ebenfalls Dynamisch Images erzeugt und diesen per zufall Motive zugeordnet.
Jedes Motiv genau 2 mal wie es beim Memory halt sein muss.

Nun bin ich dabei das eigentliche Spielprinzip zu programmieren und habe den Dyn. generierten Panels eine Onclick Prozedur zugefügt.

Delphi-Quellcode:
// 4 Spielkarten erstellen
procedure TForm1.Case1;
var i:integer;
    test:string;
const
   NamePrefix = 'Panel';
   NamePrefix2 = 'Image';
begin
        links :=10;
        oben :=10;
        breite :=120;
        hoehe :=120;
        verschiebung :=130;
        bild := 0;
        loop := 0;
        use := 0;
        use1 := 0;
        pa := 1;

        for i := 1 to 4 do
        begin
         MyPanel1 := TPanel.Create(Self);
         with MyPanel1 do
          begin
            Name := NamePrefix + IntToStr(i);
            Caption := 'Virtual-Memory';
            Color := clCream;
            onClick := Form1.dynPanelOnClick;
            SetBounds(links, oben, breite, hoehe);
            Inc(oben,verschiebung); // Erhöht "oben" um "verschiebung"

            if i = 2 then
              begin
                Inc(links,verschiebung);
                oben := 10;
              end;
           parent:=Self;
          end;

         MyImage1 := TImage.Create(Self);
         with MyImage1 do
          begin
            Name := NamePrefix2 + IntToStr(i);
            SetBounds(12,12,95,95);
            
              repeat
                bild := Random(2);
                bilderzuordnung;
              until loop = 1;

            bilderzuordnung2;

            Picture.LoadFromFile(useBild);

            parent:=MyPanel1;
          end;
        end;

end;
nun kann ich durch den (Sender as TPanel) den namen des Panels bekommen und diesen somit ausbleden wenn der User zwei der gleichen motive aufdeckt, welches ich durch den Tag unterscheide (Jedes bild ein Tag-Wert)

Nun ist mir aufgefallen das ich die Motive ja erstmal sichtbar machen muss, was heisst ich muss den Image den ich am Anfang visible := false; setze true setzen sobald der User auf die Karte klickt.

MEINE FRAGE:

Woher bekomme ich den Namen des Images, welcher sich auf dem panel befindet den der User angeklickt hat?

Weiß jemand Rat?
Weil ich habe so langsam keinen Schimmer mehr was ich machen soll.

Hier noch die OnClick Prozedur.

Delphi-Quellcode:
// OnClick mit einem Dynamischen Panel
procedure TForm1.dynPanelOnClick(sender: TObject);
begin
with (Sender as TPanel) do begin

zug := (Sender as TPanel).Name;

if merker = 0 then
    begin

        name1 := (Sender as TPanel).Name;
        tag1 := (Sender as TPanel).Tag;
        merker := 1;
    end;


if zug <> name1 then
    begin
        (Sender as TPanel).Visible := true;
        name2 := (Sender as TPanel).Name;
        tag2 := (Sender as TPanel).Tag;
        merker := 0;
    end;




Label1.Caption := name1;
Label2.Caption := IntToStr(tag1);

Label3.Caption := name2;
Label4.Caption := IntToStr(tag2);
end;
end;
Vielen Dank schon im Voraus!
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Name von Dyn. generiertem Image auf einem Dyn. gener. Pa

  Alt 1. Jan 2004, 21:08
Zitat:
MEINE FRAGE:

Woher bekomme ich den Namen des Images, welcher sich auf dem panel befindet den der User angeklickt hat?
Delphi-Quellcode:
procedure TForm1.Panel1Click(Sender: TObject);
begin
  Caption := TImage(Panel1.Controls[0]).Name // Vorausgesetzt, es gibt nur ein Image Control auf dem Panel.
end;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Name von Dyn. generiertem Image auf einem Dyn. gener. Pa

  Alt 1. Jan 2004, 21:21
Fast:

Code:
[b]Procedure[/b] TForm1.Panel1Click(Sender: TObject);
  [b]Begin[/b]
    Caption := TImage([color=red]Sender[/color].Controls[0]).Name;
  [b]End[/b];
Code:
[color=gray]Objekt[/color].ComponentCount [color=midnightblue]{Anzahl der untergeordneten Komponenten}[/color]
[color=gray]Objekt[/color].Components[x] [color=midnightblue]{eine der untergeordneten Komponenten}[/color]
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Deven

Registriert seit: 27. Jun 2003
49 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Name von Dyn. generiertem Image auf einem Dyn. gener. Pa

  Alt 1. Jan 2004, 21:28
das hört sich schonmal sehr gut an

könnt ihr mir auch noch sagen wo ich das im Quellcode eintragen muss??

Und warum caption?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Name von Dyn. generiertem Image auf einem Dyn. gener. Pa

  Alt 1. Jan 2004, 21:38
Das Caption hatte toms nur für's Beispiel verwendet, er wollte das Ergebnis (den Namen) ja irgendwo zuweisen.

Delphi-Quellcode:
Procedure TForm1.dynPanelOnClick(Sender: TObject);
  Begin
    With (Sender as TPanel) do Begin
      zug := (Sender as TPanel).Name;
      If merker = 0 Then Begin
        name1 := (Sender as TPanel).Name;
        tag1 := (Sender as TPanel).Tag;
        {Imagename1 := TImage(Sender.Controls[0]).Name;}
        Imagename1 := (Sender.Controls[0] as TImage).Name;
        merker := 1;
      End;
      If zug <> name1 Then Begin
        (Sender as TPanel).Visible := true;
        name2 := (Sender as TPanel).Name;
        tag2 := (Sender as TPanel).Tag;
        {Imagename1 := TImage(Sender.Controls[0]).Name;}
        Imagename1 := (Sender.Controls[0] as TImage).Name;
        merker := 0;
      End;
      Label1.Caption := name1;
      Label2.Caption := IntToStr(tag1);
      Label3.Caption := name2;
      Label4.Caption := IntToStr(tag2);
    End;
  End;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Name von Dyn. generiertem Image auf einem Dyn. gener. Pa

  Alt 1. Jan 2004, 21:50
OK, der Fehler ist behoben.

(Sender.Controls[0] würde überarbeitet)

Delphi-Quellcode:
Procedure TForm1.dynPanelOnClick(Sender: TObject);
  Begin
    With (Sender as TPanel) do Begin
      zug := (Sender as TPanel).Name;
      If merker = 0 Then Begin
        name1 := (Sender as TPanel).Name;
        tag1 := (Sender as TPanel).Tag;
        {Imagename1 := TImage(TPanel(Sender).Controls[0]).Name;}
        Imagename1 := ((Sender as TPanel).Controls[0] as TImage).Name;
        merker := 1;
      End;
      If zug <> name1 Then Begin
        (Sender as TPanel).Visible := true;
        name2 := (Sender as TPanel).Name;
        tag2 := (Sender as TPanel).Tag;
        {Imagename2 := TImage(TPanel(Sender).Controls[0]).Name;}
        Imagename2 := ((Sender as TPanel).Controls[0] as TImage).Name;
        merker := 0;
      End;
      Label1.Caption := name1;
      Label2.Caption := IntToStr(tag1);
      Label3.Caption := name2;
      Label4.Caption := IntToStr(tag2);
    End;
  End;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Name von Dyn. generiertem Image auf einem Dyn. gener. Pa

  Alt 1. Jan 2004, 22:06
Ich hab Ihn in ICQ dran, nicht das ihr noch denkt, ich mache Selbstgespräche

Delphi-Quellcode:
Var Image1, Image2: TImage;

Procedure TForm1.dynPanelOnClick(Sender: TObject);
  Begin
    With (Sender as TPanel) do Begin
      zug := (Sender as TPanel).Name;
      If merker = 0 Then Begin
        name1 := (Sender as TPanel).Name;
        tag1 := (Sender as TPanel).Tag;
        Image1 := (Sender as TPanel).Controls[0] as TImage;
        merker := 1;
      End;
      If zug <> name1 Then Begin
        (Sender as TPanel).Visible := true;
        name2 := (Sender as TPanel).Name;
        tag2 := (Sender as TPanel).Tag;
        Image2 := (Sender as TPanel).Controls[0] as TImage;
        merker := 0;
      End;
      Label1.Caption := name1;
      Label2.Caption := IntToStr(tag1);
      Label3.Caption := name2;
      Label4.Caption := IntToStr(tag2);
    End;
  End;


Image1.Visible := True;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:31 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