Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi new.item.Onclick verzweiflung (https://www.delphipraxis.net/39208-new-item-onclick-verzweiflung.html)

tom1002 30. Jan 2005 14:50


new.item.Onclick verzweiflung
 
Hallo zusammen,

ich komm hier einfach nicht weiter. Hab schon auf zig seiten(auf hier) verschiedene lösungen gefunden, aber nichts funktioniert.
hier mein problem;

ich erstelle aus eine datenbank menüeinträge:

Delphi-Quellcode:
bilder.First;
while not bilder.eof do
  begin
    NewItem := TMenuItem.Create(Self);
    NewItem.Caption :=bilderbeschreibung.asstring;
    newItem.onClick:= untere procedur übergabe der variable 'weg';
    mbilder.add(NewItem);
    bilder.Next;
  end;
bei onclick soll eine variable weitergegeben werden an folgende procedure

Delphi-Quellcode:
procedure TForm1.bilderklick(sender: TObject; weg:string);
begin
if sender = TMainMenu
ShellExecute(Application.Handle,'OPEN',PCHar('http://www....index.php?weg='+weg),nil,nil,sw_ShowNormal);
end;

ich habe irgendwo was von tnotifyevent gelesen
weiß aber nicht wo genau was hin kommt z.b. procedure bilderklick(Sender: TObject; weg:string);

hier kann mir bestimmt jemand weiterhelfen. :-) schon mal besten dank

[edit=MrSpock]Delphi Tags eingefügt. Mfg, MrSpock[/edit]

ibp 30. Jan 2005 14:56

Re: new.item.Onclick verzweiflung
 
das geht so nicht! oder du musst dir deine eigene menuitem klasse ableiten und das entsprechende onklick ereignis abändern!
es gibt aber die möglichkeit irgendwie strings im tag zu speichern, schau mal bei den schweitzern!

tom1002 30. Jan 2005 15:16

Re: new.item.Onclick verzweiflung
 
mh. nix verstanden.
was heißt menuitem klasse ableiten ?
die einträge im menü änder ich doch in einer mysqldatenbank. wäre die konstant wäre das kein thema

MrSpock 30. Jan 2005 15:37

Re: new.item.Onclick verzweiflung
 
Hallo tom,

du kannst dem OnKlick Event nur eine Methode zuweisen, die die vordefinierten Parameter nutzt. Also hier nur Sender: TObject.

Wenn du also zusätzlich den Parameter Weg benötigst, kannst du das entweder über eine globale Variable machen oder aber in dem du ein eigenes Objekt von TObject ableitest, dass die Eigenschaft "Weg" hat. Dann kannst du z.B. so auf den Wert zugreifen:

Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
begin
   if Sender is myObjectMitWeg then
     ShellExecute(Application.Handle,'OPEN',PCHar('http://www....index.php?weg='
                                                  +(Sender as myObjectMitWeg).Weg),nil,nil,sw_ShowNormal);
end;

tom1002 30. Jan 2005 15:45

Re: new.item.Onclick verzweiflung
 
das ist ja grad das problem. die variable weg würde dann nicht ausgelesen, bzw. nicht gespeichert.
die einfachste möglichkeit-fällt mir grad so ein- wäre die datenbank noch mal zu öffnen nach der beschriebung zu suchen und dann den wert weg ausgeben.
das sollte eigentlich funzen. aber ist das elegant????

MrSpock 30. Jan 2005 15:56

Re: new.item.Onclick verzweiflung
 
Hallo tom,

mir ist noch nicht klar, wo der "Weg" denn herkommt?

tom1002 30. Jan 2005 16:04

Re: new.item.Onclick verzweiflung
 
ich habe eine mysql-datenbank
dort gibt es die felder beschreibung und weg.
weg gibt ein verzeichnis an, in dem die bilder gepsichert liegen.

toms 30. Jan 2005 16:05

Re: new.item.Onclick verzweiflung
 
Möglichkeit (od. über andere Variable)

Delphi-Quellcode:
..
while not bilder.eof do
  begin
   ..
    newItem.onClick:= bilderklick;
    NewItem.Hint := weg;
   ..
  end;

Delphi-Quellcode:
procedure TForm1.bilderklick(sender: TObject);
...
 weg := TMenuItem(Sender).Hint

tom1002 30. Jan 2005 16:24

Re: new.item.Onclick verzweiflung
 
Ja, das ist ja super!!!!!
Besten dank!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz