| Autor |
Beitrag |
read
      
Beiträge: 57
Win XP prof.
Delphi7 + Delphi2 Developer
|
Verfasst: So 16.01.05 08:45
guten morgen zusammen
hab mal wieder ein prob und keinen richtigen plan wie ich's umsetzen soll
als erstes mal worum es geht:
ich hab eine listbox, welche beim programmstart eine textdatei lädt - ein editfeld in welches ich meine daten eingebe - neben dem editfeld ist ein label, welches beim drücken der taste enter den nächsten wert aus der listbox annimmt
hier mal der code bis hierhin
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); var c : string; begin label11.Caption :=''; if not (key in['0'..'9',#8,#13]) then begin key := #0; end; if key = chr(13) then begin if (edit1.text<>'')And (label8.Caption ='EL05') then form5.StringGrid1.Cells[0, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='AL01') then form5.StringGrid1.Cells[1, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='AL02') then form5.StringGrid1.Cells[2, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='BO01') then form5.StringGrid1.Cells[3, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='LT99') then form5.StringGrid1.Cells[4, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='BO03') then form5.StringGrid1.Cells[5, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='BO04') then form5.StringGrid1.Cells[6, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='BO05') then form5.StringGrid1.Cells[7, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='BO06') then form5.StringGrid1.Cells[8, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='BO07') then form5.StringGrid1.Cells[9, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='BO08') then form5.StringGrid1.Cells[10, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='AL05') then form5.StringGrid1.Cells[11, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='LT02') then form5.StringGrid1.Cells[12, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='LT13') then form5.StringGrid1.Cells[13, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='EM01') then form5.StringGrid1.Cells[14, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='BO99') then form5.StringGrid1.Cells[15, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='LT15') then form5.StringGrid1.Cells[16, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='AL99') then form5.StringGrid1.Cells[17, 2] := edit1.Text; if (edit1.text<>'')And (label8.Caption ='Gutstückzahl') then begin form5.StringGrid1.Cells[18, 2] := edit1.Text; form5.StringGrid1.Cells[0, 0] := listbox2.Items[0]; form1.Hide; form5.show end; edit1.Clear; if (listbox2.itemindex + 1) < listbox2.items.count then listbox2.itemindex := listbox2.itemindex + 1; c := Listbox2.items[listbox2.itemindex]; label8.Visible := true; label8.caption := c; end; end; |
nun mein problem - der inhalt der listbox ist variabel dementsprechend kann ich jetzt natürlich die label8.caption im code net fix machen genausowenig wie die cells 0-17
wie kann ich realisieren, das der inhalt des labels in die fixedrow spaltenweise eintragen kann+edit.text und das ganze dann eins weiter springt - also zu nächsten spalte
sämtliche versuche, welche ich bisher gestartet hatte, endeten darin das die ganze row mit dem gerade aktiven werten gefüllte wurde
gruß
marco
Moderiert von Christian S.: Code- durch Delphi-Tags ersetzt.
_________________ Es gibt Tage da verliert man, und dann gibt es Tage da gewinnen die anderen
|
|
grayfox
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: So 16.01.05 09:04
hallo marko!
abgesehen davon, dass ich die logik deines projektes noch nicht durchblickt hab, würde ich den anfang auf diese art vereinfachen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| var aCol: SmallInt; . . . if (key = chr(13)) AND (edit1.text<>'') then begin if label8.Caption = 'EL05' then aCol:= 0 else if label8.Caption ='AL01' then aCol := 1 . . . StringGrid1.Cells[aCol, 2]:= edit1.Text; . . |
das erspart dir schon mal jede menge tipperei
mfg, stefan
|
|
read 
      
Beiträge: 57
Win XP prof.
Delphi7 + Delphi2 Developer
|
Verfasst: So 16.01.05 09:14
hi grayfox
nett das du dich wieder bemühst
aber da ist wieder das problem, du sagst auch if label :='el05'
aber der erste eintrag in der listbox ist nicht immer 'el05' das ist abhängig von der textdatei die ich beim programmstart lade
das programm soll auf verschiedenen rechnern laufen - und bei jedem gibt es eine unterschiedlich fehlercodierung - also kann ich ja net sagen if label :'el05', sondern müßte also sagen die caption von label8 (egal welcher inhalt) soll weitergegeben werden
hoffe das war jetzt verständlich !?!
genauso, wie es halt 19 einträge in der listbox geben kann oder auch nur 11 oder 15 ....
gruß
marco
_________________ Es gibt Tage da verliert man, und dann gibt es Tage da gewinnen die anderen
|
|
grayfox
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: So 16.01.05 09:35
| Zitat: |
aber der erste eintrag in der listbox ist nicht immer 'el05' das ist abhängig von der textdatei die ich beim programmstart lade
|
vielleicht hilft dir
ListBox.Items[ListBox.ItemIndex]
weiter?
| Zitat: |
hoffe das war jetzt verständlich
|
leider nicht. beschreib mal, was das ganze überhaupt werden bzw tun soll.
ich bin mir sicher, dass es einfachere lösungswege dafür gibt
mfg, stefan
|
|
read 
      
Beiträge: 57
Win XP prof.
Delphi7 + Delphi2 Developer
|
Verfasst: So 16.01.05 09:50
hi grayfox
hoffe ich kann's verständlich rüberbringen:
also stell dir vor du bist in einem produktivbetrieb, ein auftrag hat 'ne bestimmte losgröße und wird durch verschieden abteilungen zusammengebaut
in jeder abteilung kann es zu fehlern kommen, welche dem bereich zugeordnet sind -verschiedene fehlercodes
jetzt wird der auftrag in abteilung xy gestartet -ziellosgröße 2000- es fallen fehler an...drei hiervon, 2 davon usw. das ganze wird in einem programm erfaßt und in einer tabelle für jede abteilung gespeichert
damit man jetzt net für jede abteilung ein extra programm schreiben muß, soll die fehlercodierung in jeder abteilung per textdatei zugeordnet werden und in eine tabelle eingetragen werden
wenn der auftrag durch ist werden die tabellen der einzelnen abteilungen zur auswertung - wo gab's welch ausfälle und wieviel( wegen evtl einschreiten) - zur auswertung eingesehen
isses verstänlich????
marco
_________________ Es gibt Tage da verliert man, und dann gibt es Tage da gewinnen die anderen
|
|
IngoD7
      
Beiträge: 629
D7
|
Verfasst: So 16.01.05 11:33
Ich hab's immer noch nicht verstanden.
Aus deinem Code geht eine klare feste Zuordnug der Spalten deines StringGrids zu den Inhalten des Labels hervor. So landet z.B. der Inhalt von Edit1 immer in der Spalte 10, wenn das Label "B008" enthält. Soll das auch so sein, oder nicht?
Und:
| read hat folgendes geschrieben: | | wie kann ich realisieren, das der inhalt des labels in die fixedrow spaltenweise eintragen kann+edit.text und das ganze dann eins weiter springt - also zu nächsten spalte |
Bei aller Liebe, wer soll so einen "Satz" verstehen???
|
|
IngoD7
      
Beiträge: 629
D7
|
Verfasst: So 16.01.05 11:39
| read hat folgendes geschrieben: | sondern müßte also sagen die caption von label8 (egal welcher inhalt) soll weitergegeben werden
|
Den Inhalt vom Label gibst du bisher ja noch nirgends weiter.
Du scheiterst doch wohl nicht an der Anweisung IrgendeineStringvariable := Label8.Caption;???
|
|
read 
      
Beiträge: 57
Win XP prof.
Delphi7 + Delphi2 Developer
|
Verfasst: So 16.01.05 11:49
ja, sicher ... noch habb ich eine feste zuordnung, aber genau das will ich ja net haben
nur um erstmal zwischdurch testen zu können, hab ich diese feste zuordnung reingebracht...und bekomm sie jetzt net weg
dem label8 weise ich ja jetzt schon den eintrag der listbox zu, jetzt will ich halt auch dem stringrid in der row 0 den inhalt der listbox zuweisen
und stringrid.item(=label.caption) <=> edit.text in's stringrid übergeben
gruß
marco
_________________ Es gibt Tage da verliert man, und dann gibt es Tage da gewinnen die anderen
|
|
IngoD7
      
Beiträge: 629
D7
|
Verfasst: So 16.01.05 12:01
| read hat folgendes geschrieben: |
dem label8 weise ich ja jetzt schon den eintrag der listbox zu, jetzt will ich halt auch dem stringrid in der row 0 den inhalt der listbox zuweisen
|
Row 0 (in Worten: Null) ????
Du willst also die möglichen Inhalte von Label8 zu Spaltenüberschriften deines Stringgrids machen?
|
|
read 
      
Beiträge: 57
Win XP prof.
Delphi7 + Delphi2 Developer
|
Verfasst: So 16.01.05 12:10
hi ingo ...
ja, genau das möchte ich gern machen
und bei der übergabe an row - zero( 0, null)  - auch gleich den text aus dem editfeld ein oder zwei spalten tiefer einsetzen....
gruß
marco
_________________ Es gibt Tage da verliert man, und dann gibt es Tage da gewinnen die anderen
|
|
IngoD7
      
Beiträge: 629
D7
|
Verfasst: So 16.01.05 12:19
| read hat folgendes geschrieben: | hi ingo ...
ja, genau das möchte ich gern machen
und bei der übergabe an row - zero( 0, null) - auch gleich den text aus dem editfeld ein oder zwei spalten tiefer einsetzen....
|
Ich fasse es nicht .... Warum schreibst du das nicht?
Abgesehen davon musst du wohl deinen ganzen Code da neu entwickeln.
Überlege mal: Das Programm startet, du hast das Edit1, in dem du Ziffern eingeben kannst. Irgendwann drückt man Enter und ..... in Label8 steht nichts drin.
Das heißt doch schon mal, dass Label8 vorher gesetzt werden muss mit dem ersten Eintrag aus der Listbox. Verstehe ich das richtig?
Sehe ich ausserdem richtig, dass grundsätzlich alle Einträge in der Listbox am Ende der Bearbeitung als Spalten im StringGrid auftauchen - ergänzt halt um die Eingabe im Edit1 zwei Zeilen tiefer? (Wenn ja, so solltest du eine Schleife machen, in der die Listbox abgearbeitet wird.)
|
|
read 
      
Beiträge: 57
Win XP prof.
Delphi7 + Delphi2 Developer
|
Verfasst: So 16.01.05 12:36
so, vielleicht vereinfacht das hier das ganze etwas
beim start sieht's folgendermaßen aus:
www.read-this.de/neu/front.bmp
danach erfolgt auswahl aus listbox rechts:
www.read-this.de/neu/auswahl1.bmp
danach:
www.read-this.de/neu/auswahl1.bmp
und die tabelle:
www.read-this.de/neu/tabelle.bmp
wie ihr seht, klappt's net mit row.0
und die zuordnung ist halt fix im prog und die soll weg
gruß
marco
_________________ Es gibt Tage da verliert man, und dann gibt es Tage da gewinnen die anderen
|
|
IngoD7
      
Beiträge: 629
D7
|
Verfasst: So 16.01.05 12:51
Sorry, Marco, ich muss jetzt mal ein bisschen Kritik üben.
| read hat folgendes geschrieben: | | wie ihr seht, klappt's net mit row.0 |
Das wusste ich schon. Dazu brauche ich keine Bilder.
| read hat folgendes geschrieben: | | und die zuordnung ist halt fix im prog und die soll weg |
Auch das war bekannt.
Was hast du jetzt an neuen Informationen gebracht? Keine.
Was möchtest du? Fertigen Quellcode? Okay, aber den bekommst du zumindest nicht von mir.
Warum beantwortest du denn nicht meine beiden Fragen aus dem vorherigen Posting? Ich bin momentan der Hoffnung, dass du zum richtigen Lösungsansatz hingeführt werden kannst. Sonst würde ich mich mit diesem Thread nicht befassen.
Ich sitze hier zum Spaß, aber ich stelle meine Fragen nicht aus Spaß, sondern verfolge einen Zweck damit.
Also gehe bitte auch auf die Postings/Antworten speziell ein. Dann kommst du auch weiter.
|
|
read 
      
Beiträge: 57
Win XP prof.
Delphi7 + Delphi2 Developer
|
Verfasst: So 16.01.05 13:46
ich dachte eigentlich mit meienm letzten posting deine fragen beantwortet zu haben
und fertigen code will ich auch net, 'n lösungsansatz wäre prima gewesen .... na egal, der tag is lang...
_________________ Es gibt Tage da verliert man, und dann gibt es Tage da gewinnen die anderen
|
|
IngoD7
      
Beiträge: 629
D7
|
Verfasst: So 16.01.05 18:16
| read hat folgendes geschrieben: | ich dachte eigentlich mit meienm letzten posting deine fragen beantwortet zu haben
und fertigen code will ich auch net, 'n lösungsansatz wäre prima gewesen .... na egal, der tag is lang... |
Ich versuche, dir Lösungsansätze zu geben! Um aber nicht an den Anforderungen vorbei zu arbeiten, möchte ich die Anforderungen genau abgeklärt haben, da ich sie noch nicht genau verstanden habe. Und dazu gehört nun mal, dass du Fragen, wenn man sie an dich richtet, auch beantwortest.
In meinem Posting von heute, 12:19h stehen genau 3 Fragezeichen. Das erste darfst du vergessen. Die beiden anderen gehören zu Fragen, deren Beantwortung nicht irgendwelche Bilder oder die wiederholte (Teil-)Beschreibung deines Problems sind, sondern ein klares "Ja, das siehst du richtig" oder ein "Nein, das siehst du falsch, weil ...".
Alles klar? Lese das Posting nochmal aufmerksam durch. Am Ende des Postings steht sogar schon ein Lösungsansatz (die Bemerkung in Klammern).
Beschäftige dich richtig und ausführlich mit den Postings anderer Leute, die dir helfen wollen, oder lasse es. Wenn du es lässt, kein Problem, ist ja deine Sache. Aber dann wundere dich bitte nicht, wenn du damit den Anschein erweckst, nur fertigen Code haben zu wollen.
Wenn meine Vermutungen von 12:19h korrekt sind, dann brauchst du doch nur folgendes zu tun ( Pseudo-Code):
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| for i := 1 to AnzahlDerEintägeInListbox do begin Eintrag(i)AusListboxInLabel8Schreiben; WartenAufEingabeInEdit1; Label8InReihe(0)Spalte(i)Schreiben; Edit1InReihe(2)Spalte(i)Schreiben; end; |
|
|
grayfox
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: So 16.01.05 23:12
hallo marco!
zunächst mal ein paar grundlegende fragen....
sind die bildschirmmasken, die verwendeten komponeten und der erfassungsvorgang von jemandem so definiert worden, oder hast du sie entworfen?
wenn das ganze programm auch anwenderfreundlich werden soll, dann würde ich ein stringgrid verwenden, da man auf einem blick sieht, bei welchem erzeugnis schon etwas eingetragen wurde und wo noch einträge fehlen
ausserdem befinden sind dann die spalten bei allen grids der verschiedenen fertigungsabteilung in der gleichen reihenfolge und der arme user, der sie auswerten soll, hat es viel einfacher.
oder hab ich dein vorhaben immer noch nicht gänzlich durchschaut?
mfg, stefan
|
|
|