Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Für Fragen von Einsteigern und Programmieranfängern...
Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von Bauer321 »

Ich habe folgenden code:

Code: Alles auswählen

procedure Tfmorev.BitBtn1Click(Sender: TObject);
var
  o, p, q, r, s: TObject;
  x: integer;
begin
For x := 1 To 16 Do
  Begin
    o := FindChildControl('ename' + inttostr(x));
    p := FindChildControl('fnpath' + inttostr(x));
    q := FindChildControl('depath' + inttostr(x));
    r := FindChildControl('ever' + inttostr(x));
    s := FindChildControl('eopt' + inttostr(x));
    If Assigned(o) And (o Is TEdit)
      Then Begin
        if TEdit(o).text <> '' then vname[x] := TEdit(o).text;
      end;
    If Assigned(p) And (p Is TFileNameEdit)
      Then Begin
        if TFileNameEdit(p).filename <> '' then path[x] := TFileNameEdit(p).filename;
      end;
    If Assigned(q) And (q Is TDirectoryEdit)
      Then Begin
        if TDirectoryEdit(q).directory <> '' then dpath[x] := TDirectoryEdit(q).directory;
      end;
    If Assigned(r) And (r Is TEdit)
      Then Begin
        if TEdit(r).text <> '' then opt[x] := TEdit(r).text;
      end;
    If Assigned(s) And (s Is TEdit)
      Then Begin
        if TEdit(s).text <> '' then ver[x] := TEdit(s).text;
      end;
  end;
ShowMessage('vname[1] = '+vname[1]+sLineBreak+
            'path[1] = '+path[1]+sLineBreak+
            'dpath[1] = '+dpath[1]+sLineBreak+
            'ver[1] = '+ver[1]+sLineBreak+
            'opt[1] = '+opt[1]);
fmorev.hide;
end;
Der soll eigentlich aus verschieden objekten strings in array abspeichern, jedoch funktioniert dies nicht(habe ich durch das showmessage getestet)
Weiß wer woran das liegen könnte?
www.mcpatcher.net | www.hoeper.me

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von Bauer321 »

keiner der mir weiterhelfen kann
www.mcpatcher.net | www.hoeper.me

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von Maik81ftl »

Informationen über die fehlerausgabe würde es uns leiter machen dein vorhaben zu verstehen :!:
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von Bauer321 »

ne also nicht falsch verstehen. es wird kein fehler ausgegeben jedoch wird die gewüschte funktion nicht erfüllt.
es soll halt aus diesen feldern edit fileedits usw die daten ausgelesen werden und in den dazugehörigen array gepackt werden.
leider funktioniert dies nicht.
www.mcpatcher.net | www.hoeper.me

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von Maik81ftl »

Poste mal bitte die Defintion deines Arrays.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von Bauer321 »

also ich habe mehrere Formen eine Hauptform und dann eine Form für die einstellungen.
in der ersten Form sind folgende arrays global definiert:

Code: Alles auswählen

vname: array[1..16] of string;
path: array[1..16] of string;
dpath: array[1..16] of string;
ver: array[1..16] of string;
opt: array[1..16] of string;
und der oben gezeigte quellcode isd dann in der zweiten Form.
www.mcpatcher.net | www.hoeper.me

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von Maik81ftl »

Versuch mal eine Selective auswertung deiner If - Anweisungen!

Ändere dafür mal z.B. die Zeilen für

Code: Alles auswählen

If Assigned(o) And (o Is TEdit)
      Then Begin
        if TEdit(o).text <> '' then vname[x] := TEdit(o).text;
      end;
in

Code: Alles auswählen

If Assigned(o) And (o Is TEdit) then 
begin
  Caption:= 'O  is TEdit ';
  if TEdit(o).text <> '' then vname[x] := TEdit(o).text
  else Caption := Caption + ' & vname[x] = ' + vname[x];
  end;
Dies an jede deine Abfragen angepasst und du solltest den fehler schnell finden können.
wenn du den Fehler hast, die Controllmeldungen wieder rausnehmen. sonst wird der Enduser sich über die daten wundern :D :D :D

ist zwar zugegeben etwas aufwendig diese art der fehlersuche, aber wenn du dies richtig auffährst und Komentierst ist dies eine Sehr gute hilfe,

wie gesagt. ist jetzt aus der Kalten geschrieben von daher keine sicherheit auf funktion ich arbeite aber immer so und hat bisher immer geholfen.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von Bauer321 »

ok werd ich morgen mal ausprobieren und mich dann wieder melden

edit:
folgendes geht schonmal: vname[1] := ename1.Text;
also muss irgennwie beim tobject nen fehler sein ma weiter suchen....

edit2:
bei folgendem versuch:

Code: Alles auswählen

o := FindChildControl('ename1');
  If Assigned(o) And (o Is TEdit)
      Then Begin
        if TEdit(o).text <> '' then vname[1] := TEdit(o).text;
      end else showmessage('error');
kommt immer error d.h. das tedit gibts nicht oder es ist kein tedit

edit3:
kann das evtl mit dem Elternobjekt zusammenhängen?
das ganze sieht so aus:
Bild
wenn ja was müsste ich dann an stelle von ename1 eintragen?
www.mcpatcher.net | www.hoeper.me

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von Maik81ftl »

Mal eine kurze Frage zwischendurch??? wieso zum geier wird hier auf TEdit zugegriffen, wenn du am ende ein Opjekt namens ename1 verschleuderst??? könnte ggf schon die Lösung deines Problemes sein.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von carli »

Ich bin mir ziemlich sicher, dass es mit dem Elternobjekt zusammenhängt.
Wenn du das ganze dynamisch machen willst, geht glaubich auch das mit dem doppelten Namen nicht so einfach. Das Formular hat doch ein Attribut namens "ename1", warum nimmst du nicht einfach das?

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von Bauer321 »

Maik81ftl hat geschrieben:Mal eine kurze Frage zwischendurch??? wieso zum geier wird hier auf TEdit zugegriffen, wenn du am ende ein Opjekt namens ename1 verschleuderst??? könnte ggf schon die Lösung deines Problemes sein.
wie meinste das mit verschleudern?
carli hat geschrieben:Ich bin mir ziemlich sicher, dass es mit dem Elternobjekt zusammenhängt.
Wenn du das ganze dynamisch machen willst, geht glaubich auch das mit dem doppelten Namen nicht so einfach. Das Formular hat doch ein Attribut namens "ename1", warum nimmst du nicht einfach das?
?
Sorry ich bin nicht so der beste ;)
habe die lösung mit dem TObject aus einem älteren Projekt herausgefischt.
über ein kleines beispiel wäre ich sehr dankbar
... ich könnte da auch einfach um die 80 zeilen hionschreiben nur das sit dann bestimmte nicht so die optimale lösung ;)
Zuletzt geändert von Bauer321 am Sa 18. Jun 2011, 12:26, insgesamt 1-mal geändert.
www.mcpatcher.net | www.hoeper.me

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von carli »

Bauer321 hat geschrieben:
carli hat geschrieben:Ich bin mir ziemlich sicher, dass es mit dem Elternobjekt zusammenhängt.
Wenn du das ganze dynamisch machen willst, geht glaubich auch das mit dem doppelten Namen nicht so einfach. Das Formular hat doch ein Attribut namens "ename1", warum nimmst du nicht einfach das?
?
Sorry ich bin nicht so der beste ;)
habe die lösung mit dem TObject aus einem älteren Projekt herausgefischt.
über ein kleines beispiel wäre ich sehr dankbar
Erzähl mir doch erst mal, ob du's wirklich so dynamisch machen willst, wie es dein Sourcecode vermuten lässt. Oder hast du wirklich bloß irgendwas rauskopiert?

Paste doch mal die Typdefinition von Tfmorev

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von Bauer321 »

das ist eine Form(FMoreV: TFMoreV;)
www.mcpatcher.net | www.hoeper.me

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von Maik81ftl »

Bauer321 hat geschrieben:
Maik81ftl hat geschrieben:Mal eine kurze Frage zwischendurch??? wieso zum geier wird hier auf TEdit zugegriffen, wenn du am ende ein Opjekt namens ename1 verschleuderst??? könnte ggf schon die Lösung deines Problemes sein.
wie meinste das mit verschleudern?
unter verschleudern meine ich, das du dieses Objekt zwar erstellst, aber nicht wirklich verwendest.
Bauer321 hat geschrieben:
carli hat geschrieben:Ich bin mir ziemlich sicher, dass es mit dem Elternobjekt zusammenhängt.
Wenn du das ganze dynamisch machen willst, geht glaubich auch das mit dem doppelten Namen nicht so einfach. Das Formular hat doch ein Attribut namens "ename1", warum nimmst du nicht einfach das?
?
Sorry ich bin nicht so der beste ;)
habe die lösung mit dem TObject aus einem älteren Projekt herausgefischt.
über ein kleines beispiel wäre ich sehr dankbar
... ich könnte da auch einfach um die 80 zeilen hionschreiben nur das sit dann bestimmte nicht so die optimale lösung ;)
brauchst auch keine 80 Zeilen hier rein tippen... kannst aus als Archiv anhängen...
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Fehler? - Geht nicht aber ich finde den Fehler leider nicht

Beitrag von Bauer321 »

Source... (zip|~254KB) edit: link entfernt...
(habe vor ca.30sec die datei nochmal minimal verändert....der problemfall befindet sich in der unit "uaddversion")
Zuletzt geändert von Bauer321 am Sa 18. Jun 2011, 18:58, insgesamt 1-mal geändert.
www.mcpatcher.net | www.hoeper.me

Antworten