Nach Hause
Top.Mail.Ru Yandeks.Metrika
Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

Nach unten

Bestimmen Sie die Nummer des Menüelements Finden Sie ähnliche Zweige


T2   (2001-12-16 07:29) [0]

Programmgesteuert ein Menü erstellen. Ich stecke die Namen der verfügbaren Festplatten in das Popup-Menü (es ist im Voraus nicht bekannt, wie viele). Wie kann man herausfinden, welcher Menüpunkt ausgewählt wurde, vorzugsweise in einem Bearbeitungsvorgang?



KilkennyCat   (2001-12-16 08:02) [1]

Ich mache das:

Ich erstelle eine Verarbeitungsprozedur, an die ich von allen Elementen Klicks sende. Typ:

Prozedur TForm1.popClick (Sender: TObject);
beginnen
Wenn Sender = B, dann ShowMeldung ("B"); // klicke auf das Objekt mit dem Namen b
Wenn Absender = A, dann ShowNachricht ("A"); // gepresster Artikel mit dem Namen a
end;

Bei einer großen Anzahl von Punkten müssen Sie natürlich indexiert werden.



T2   (2001-12-16 08:59) [2]

Ja, aber die Namen "a" und "b" sind vor der Erstellung unbekannt. Es gibt keine Menüpunkte, wenn
kompilieren und beim Vergleich von Sender = a wird der Fehler "Nicht deklarierter Bezeichner:" a "angezeigt. Kann der Code klarer sein?

Prozedur TMain.pu2Popup (Sender: TObject);
var s: tstringlist; i: byte; NewItem: TMenuItem; f: int64; d: string [1];
beginnen
pu2.Items.Clear; s: = tstringlist.create;
si.GetDriveList (s); für i: = 0 bis s.Count-1 beginnen
NewItem: = TMenuItem.Create (Self);
d: = copy (Großbuchstaben (s.strings [i]), 1,1);
f: = diskfree (ord (d [1]) - 64); Wenn f = -1, dann ist f: = 0;
NewItem.Caption: = "&" + d + ": (" "+ Inttostr (f) +" Byte) ";
newitem.OnClick: = ddd;
imagelist1.getbitmap (0, newitem.Bitmap);
pu2.items.Add (NewItem);
ende; s.frei;
end;

Prozedur tmain.ddd (Absender: Objekt);
beginnen
wenn sender = c1, dann showmessage ("Disk <C> select"); // also?
end;

Alles ist richtig?



KilkennyCat   (2001-12-16 09:07) [3]

um ... meiner Meinung nach müssen Sie einen NewItem.Name erstellen (zum Beispiel a)



Anatoly Podgoretsky   (2001-12-16 10:11) [4]

Sie haben NewItem.Caption. Der zweite Buchstabe ist der Name der Festplatte, dies reicht zur Identifizierung aus



Dmitriy(new)   (2001-12-16 12:09) [5]

Prozedur tmain.ddd (Absender: Objekt); var d: string [1];
beginnen
d: = Kopie (TMenuItem (Sender) .Caption, 2,1);
showmessage ("Disk <" + D + "> select");
// Wenn Sender = c1, dann showmessage ("Disk <C> select"); // also?
end;



Петрович   (2001-12-17 04:47) [6]

Und Sie können versuchen, die Tag-Eigenschaft zu verwenden!



GennadyS   (2001-12-17 08:45) [7]

Ich habe die TAG-Eigenschaft in solchen Fällen immer angewendet. Und je nach Anzahl der Punkte wusste er genau, auf welchen Klick. (für alle Positionen eine einzige Bearbeitungsprozedur) In dieser Prozedur:

Fall (Sender als TComponent) .tag von
1: // Datenträger B Verarbeitung
2: // - / - C
...



Seiten: 1 ganze Branche

Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

nach oben









Speicher: 0.57 MB
Zeit: 0.03 c
1-22160
Yakudza
2001-12-20 16:46
2002.01.08
In die Zwischenablage kopieren


6-22289
Kirill
2001-10-03 18:33
2002.01.08
IE Kontextmenü


1-22254
Leichtigkeit
2001-12-17 13:32
2002.01.08
Daten archivieren


1-22100
Avol
2001-12-15 18:29
2002.01.08
Wie erstellt man in Delphi eine Tabelle mit Datensätzen für das Spiel?


7-22425
Andrey
2001-06-19 15:45
2002.01.08
Scannerfunktion





Afrikanisch Albanien Arabisch Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarian katalanisch Chinesisch (vereinfacht) Chinesische Tradition) kroatisch Tschechisch Dänisch Dutch Englisch estnisch Philippinisch Finnish Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole Hebräisch Hindi ungarisch isländisch Indonesian irisch Italian Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegian
persisch Polnisch Portugiesisch Rumänisch Russisch serbisch Slovakisch Slowenisch Spanisch Suaheli Swedish Thai Türkisch Ukrainisch Urdu Vietnamesisch Walisisch Jiddisch Bengalisch bosnisch
cebuano Esperanto Gujarati Hausa Hmong igbo Javanisch kannada khmer Laotisch Lateinisch Maorisch Marathi Mongolisch nepali Pandschabi Somalisch Tamilisch Telugu Yoruba
Zulu
Английский Französisch Deutsch Italienisch Португальский Russisch Spanisch