Autor Beitrag
read
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57

Win XP prof.
Delphi7 + Delphi2 Developer
BeitragVerfasst: 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
ausblenden volle Höhe Delphi-Quelltext
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 user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.

_________________
Es gibt Tage da verliert man, und dann gibt es Tage da gewinnen die anderen
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: 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:

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57

Win XP prof.
Delphi7 + Delphi2 Developer
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57

Win XP prof.
Delphi7 + Delphi2 Developer
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: 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 AnweisungIrgendeineStringvariable := Label8.Caption;???
read Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57

Win XP prof.
Delphi7 + Delphi2 Developer
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57

Win XP prof.
Delphi7 + Delphi2 Developer
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57

Win XP prof.
Delphi7 + Delphi2 Developer
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57

Win XP prof.
Delphi7 + Delphi2 Developer
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: 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):
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: 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