Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Menu in Klasse auslagern und über txt steuern (https://www.delphipraxis.net/111665-menu-klasse-auslagern-und-ueber-txt-steuern.html)

Christian18 7. Apr 2008 15:18


Menu in Klasse auslagern und über txt steuern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich kann über eine Menu.txt Datei mein Menü steuern. Es wird einfach die Anzahl der Zeilen in der txt genommen und so viele Images gezeichnet. Diese befunden sich horizontal nebeneinander. Wenn ich ein Image anklicke möchte ich nun, dass es leuchtend bleibt. (Das Active Image soll immer rot sein, also das was geklickt wurde) Wie kann ich das machen? Ich hänge meinen Code einfach mal an.

So wie ich es gemacht habe funktiniert es leider nicht. (FActiveImage)

PS: Die Caption wird nich nicht angezeigt!!!

MFG Christian18

phreax 7. Apr 2008 16:34

Re: Menu in Klasse auslagern und über txt steuern
 
Guten Tag, schon im Create hast Du etwas sinnlosen Code ;)
Delphi-Quellcode:
     
  if i = 0 then
        begin
          FImage[i].Picture.LoadFromFile(FPath + 'BtnMove.bmp'); //Lade das Bild in FImage[i]
          FActiveImage:=FImage[i]; //FActive Image (Pointer!) verweist jetzt auch auf FImage[I]
          FActiveImage.Picture.LoadFromFile(FPath + 'BtnMove.bmp'); //Lade das Bild ERNEUT in FImage[i]!
        end
EDIT: Ausserdem würde ich empfehlen, mit TStringList zu arbeiten und nicht mit file, das geht hundertmal besser und man muss nicht alles von Hand machen, z.B. den Counter...

EDIT2: Und neben dem, dass mir nicht ganz klar ist, was Du eigentlich machen willst fehlt dir ein extrem wichtiges inherited Create deshalb bekommst Du immer Zugriffsverletzungen wenn auf deine Felder zugreifst... behebt den Fehler doch nicht...

EDIT3:
Delphi-Quellcode:
procedure TForm1.Start(Sender: TObject);
begin
   Menu.ActiveImage:=TImage(Sender); //Hier exception...
  //weil: interner Aufruf:
  Self.Menu.ActiveImage:=TImage(Sender);
  //Workaround:
  Form1.Menu.ActiveImage:=TImage(Sender);
  ShowMessage('Start');
end;
Die Exception tritt auf, weil imho dein Event nicht den richtigen (versteckten) Self-Paramter mitgibt... Wie man das richtig macht kann ich Dir aber leider auch nicht sagen

Gruß phreax

Christian18 8. Apr 2008 15:14

Re: Menu in Klasse auslagern und über txt steuern
 
Hallo,

hat sonst jemand eine Idee? Die Informationen von phreax bringen mich nicht wirklich weiter.

MFG Christian18


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 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