Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Auswahlmenü (https://www.delphipraxis.net/46035-auswahlmenue.html)

StoRmtec 17. Mai 2005 09:02

Datenbank: Interbase • Version: 6.5 • Zugriff über: TIBQuery

Auswahlmenü
 
Hallo

Ich hätte eine Frage.

Und zwar möchte ich so eine Art Auswahlmenü machen.

//ALT//Das heißt.
Das er mir da alle meine Drucker anzeigt die im System gespeichert sind und wenn ich einen auswähle das er mir es dann in die andere eigendlich Form übernimmt und ich dann dort mit dem ausgewählten Drucker arbeiten kann. Und das er mir aber keinen anderen Drucker mehr nimmt dann.//ALT//

Habe es was geändert. Und zwar habe ich in der eigenen Form jetzt die ListBox gemacht und er zeigt mir auch die Drucker an. Aber wie kann ich das jetzt machen das wenn ich einen Drucker auswähle ich den Datensatz dann habe und nicht einen anderen.

mfg
StoRmtec

[edit=alcaeus]Thema zurueckverschoben und Infos gesetzt Mfg, alcaeus[/edit]

marabu 17. Mai 2005 09:51

Re: Auswahlmenü
 
Zitat:

Zitat von StoRmtec
Das er mir da alle meine Drucker anzeigt die im System gespeichert sind

Binde die Unit Printers in deine Anwendung ein. Printer.Printers ist eine Liste aller Drucker, die zur Laufzeit bekannt sind.

Zitat:

Zitat von StoRmtec
und wenn ich einen auswähle das er mir es dann in die andere eigendlich Form übernimmt und ich dann dort mit dem ausgewählten Drucker arbeiten kann. Und das er mir aber keinen anderen Drucker mehr nimmt dann.

Wenn du in deinem Auswahldialog folgendes machst, dann hast du was du willst:

Delphi-Quellcode:
// im OnCreate-Event der Form
Listbox.Items.Assign(Printer.Printers);

// im OnClick-Event der Listbox
Printer.PrinterIndex := Listbox.ItemIndex;
Grüße vom marabu

StoRmtec 17. Mai 2005 10:08

Re: Auswahlmenü
 
Hallo
Danke

Du die Printer.Printers ist das der name der Form oder was anderes.
Das verstehe ich nicht ganz.

Kannst du mir da ein Beispiel sagen.
Und ich habe aber eine DBGrid wegen der Datenbank.

mfg
StoRmtec

Stanlay Hanks 17. Mai 2005 10:14

Re: Auswahlmenü
 
Hi. Also Printer.Printers dürfte eine Liste der verfügbaren Drucker sein.

Man liest sich, Stanlay :hi:

StoRmtec 17. Mai 2005 10:17

Re: Auswahlmenü
 
und wie bekomme ich das dann her alles.

Das verstehe ich nicht ganz.

Also ich habe eine Form mit der DBGrid wo mir die Drucker angezeigt werden und wenn ich dann auf den Drucker klicke übernimmt er mir das dann in meinen andere Form.

Wie binde ich das alles ein. Bin noch nicht so der Held im Delphi.

Bitte um Hilfe. Und vielleicht um Code wenn es geht.

mfg
StoRmtec

marabu 17. Mai 2005 12:50

Re: Auswahlmenü
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ein PrinterSelectDialog, den du in deine Form einbinden kannst. Einfach aufrufen mit ShowModal. Kommst du zurecht?

marabu

StoRmtec 17. Mai 2005 12:58

Re: Auswahlmenü
 
Hallo

Danke für die Hilfe.
Aber es soll nichts mit den Windowsdrucker gemacht werden sondern mit den Drucker die in der Datenbank gespeichert sind. Vielleicht kannst ma da auch helfen. Wäre sehr dankbar.

mfg
StoRmtec

marabu 17. Mai 2005 13:07

Re: Auswahlmenü
 
Ich möchte dir ja gerne helfen, aber ich verstehe nicht genau, was dein Problem ist. Nach deiner Änderung scheint es sich gar nicht um ein Druckerproblem zu handeln. Mir scheint, dass du nur nicht weisst, wie du auf den Datensatz zugreifst, den du in einer DBListBox ausgewählt hast - liege ich da richtig?

Versuche mal eine genauere Beschreibung.

marabu

alcaeus 17. Mai 2005 13:11

Re: Auswahlmenü
 
Hallo Stormtec,

bitte versuch doch mal genau zu erklaeren, was du machen willst. Was bitte hat der Drucker mit der Datenbank zu tun?
Also wenn ich dich richtig verstanden habe, dann hast du Druckereintraege in der DB gespeichert. Was soll aber mit denen gemacht werden? Oder willst du einen der Systemdrucker auswaehlen lassen? Bitte beschreib mal genau was du machen willst, hier kennt sich irgendwie keiner aus :-?

Greetz
alcaeus

StoRmtec 17. Mai 2005 13:24

Re: Auswahlmenü
 
Hallo

Also ich mache ein Druckerverwaltungsprogramm.

Habe jetzt eine Form wo ich die Drucker anlege mit den Abteilungen und so sachen.

So jetzt habe ich eine Druckerinfo wo zb.: Reparaturen, Tonerausgabe, Zählerstand und so gespeichert werden soll.
Jetzt wenn ich aus der ListBox einen Drucker auswähle dann sollte er mir da alles dazu anzeigen und auch das ich damit dann arbeiten kann.

Und noch was habe ich gesehen wie kann ich die ListBox mit den mehreren Daten füllen lassen kann weil jetzt zeigt er mir nur einen Datensatz an.

mfg
StoRmtec

marabu 17. Mai 2005 13:51

Re: Auswahlmenü
 
Kannst du nicht einfach die gleichen Formulare für die Anzeige der Drucker-Detail-Informationen verwenden, die du schon für die Erfassung verwendet hast? Deine Beschreibung ist leider immer noch sehr unverständlich.

marabu

StoRmtec 17. Mai 2005 14:24

Re: Auswahlmenü
 
Hallo

Also die Form zum Druckeranlegen ist eine eigene Form. Da das Programm dann noch weiter entwickelt werden soll.

Also in der Druckeranlegenform wird der Druckername die Abteilung hinzugefügt das funktioniert eh.

Jetzt möchte ich das ich bei der Druckerinfo dann die Drucker die ich angelegt habe in der ListBox auflisten lassen kann und mir dann den Drucker aussuchen kann mit dem ich was machen möchte. Also die Druckerinfo hat wieder eine eigene Tabelle wo alles gespeichert wird. Wie gesagt es soll da die möglichkeit sein Reparaturen, Tonerausgabe, Zählerstand und so sachen zum speichern. Wenn ich dann den Drucker auswähle das ich dann mit dem die ganze Zeit was machen kann bis ich wieder einen anderen auswähle. Das heißt das ich den Zählerstand bei den Richtigen Drucker eintrage dann.

Das ganze mach ich über die Interbase Datenbank. Die Infos bzw. die Felder mache ich mit der TDBEdit und TDBText.

Da ich eine genaue Aufstellung immer brauche.

mfg
StoRmtec

marabu 17. Mai 2005 14:45

Re: Auswahlmenü
 
Du könntest dir in der Listbox den Schlüssel der dort angezeigten Drucker unsichtbar mitführen und im OnClick-Ereignis der Listbox eine Query ausführen, die dir die Detail-Informationen besorgt.

SQL-Code:
Query.SQL.Text := Format('SELECT * FROM druckerinfo WHERE id = %d', [idDrucker]);
Wenn du die DataSource deiner Info-Felder auf die Query zeigen lässt, dann erscheinen die Infos in deinen Edit-Feldern.

marabu

StoRmtec 17. Mai 2005 14:50

Re: Auswahlmenü
 
Kannst du mir das vielleicht verständlicher erklären weil wie gesagt ich habe das noch nie gemacht und bin erst ein Newbie im Programmieren.

Vielleicht ein Beispielcode oder so mit genauer Bezeichnung und so sachen wäre fein.

mfg
StoRmtec

alcaeus 17. Mai 2005 15:51

Re: Auswahlmenü
 
Hallo StoRmtec,

was marabu meinte ist folgendes: zur Zeit fuegst du ja z.B. Den Namen des Druckers der Liste hinzu. Du kannst aber mehr abspeichern als nur einen String.
Mal ein Beispiel. So fuegst du einen String hinzu:
Delphi-Quellcode:
SomeListBox.Items.Add('SomeString');
Um mehr als nur den Text hinzuzufuegen, verwendest du folgendes:
Delphi-Quellcode:
SomeListBox.Items.AddObject('SomeString', SomeObject);
wobei SomeObject von TObject abgeleitet sein muss.

Man muss aber nicht zwingend ein Objekt abspeichern. Mit dem folgenden Code fuege ich einfach eine Nummer hinzu, und zeige die Anschliessend wieder an. Beachte dass die Nummer nur zu Kontrollzwecken im Text angezeigt wird:
Delphi-Quellcode:
procedure TSomeFOrm.AddButtonClick(Sender: TObject);
var
   i: Integer;
begin
   i := Random(100);
   SomeListBox.Items.AddObject('Test: '+IntToStr(i), TObject(i));
end;

procedure TSomeForm.ShowButtonClick(Sender: TObject);
begin
   if SomeListBox.ItemIndex < 0 then
      exit;
   ShowMessage(IntToStr(Integer(SomeListBox.Items.Objects[SomeListBox.ItemIndex])));
end;
Beim hinzufuegen generiere ich eine Zufallszahl, caste die Zahl nach TObject und fuege sie hinzu. Beim Auslesen caste ich den Inhalt wieder nach Integer und zeige ihn an. So aehnlich kannst du es auch machen: du fuegst die ID des jeweiligen Datensatzes in der Datenbank hinzu, und beim Klick auf ein bestimmtes Item, fuehrst du ein Query aus, welches den aktuell ausgewaehlten Datensatz aus der Datenbank holt.
Ich hoffe du verstehst worauf das Ganze hinauslaufen soll.

Greetz
alcaeus

StoRmtec 18. Mai 2005 09:49

Re: Auswahlmenü
 
Hallo

Danke für die Info. Aber wie kann ich das jetzt mit der Datenbank machen das habe ich noch nicht herausgefunden.

mfg
StoRmtec

mschaefer 18. Mai 2005 11:18

Re: Auswahlmenü
 
Hm,Moin: also mal so vom der Thematik her würde ich das mit zwei Formularen machen

1. Formular mit einem DBGrid oder auch DBCtrlGrid zur Datensatzauswahl und mit dem Button neuer Datensatz
Das ganze würde ich als readonly, also ohne Änderungsmöglichkeit halten.

2. Formular mit den Feldern zur eingabe und einem Memo für die Beschreibung

3. Beide Formulare sollten auf die gleich Datasetkomponente in einem Datenmodul zugreifen, sodaß sie den
gleichen Datensatz anzeigen.

Der Weg über Listboxen und Handeinfüllen ist zwar Möglich, aber irgendwie auch etwas hm, ziemlich aufwendig.


Grüße // Martin


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