Argument can't be assined [gelöst]

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
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:

Argument can't be assined [gelöst]

Beitrag von Bauer321 »

Ich hab hier nen fehler und keine ahnung was das heißen soll...

Code: Alles auswählen

procedure Tfmorev.BitBtn1Click(Sender: TObject);
var
  o, p, q: 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));
    If Assigned(o) And (o Is TEdit)
      Then Begin
        if TEdit(o).text <> '' then name[x] {der erste fehler wird hier markiert }:= TEdit(o).text;
      end;
    If Assigned(p) And (o Is TFileNameEdit)
      Then Begin
        if TFileNameEdit(p).filename <> '' then path[x] := TFileNameEdit(p).filename;
      end;
    If Assigned(q) And (o Is TDirectoryEdit)
      Then Begin
        if TDirectoryEdit(q).directory <> '' then dpath[x] := TDirectoryEdit(q).directory;
      end;
  end;
fmorev.hide;
end;
Das ist der Code und diese Fehler bekomme ich:

Code: Alles auswählen

uaddversion.pas(193,37) Error: Argument can't be assigned to
uaddversion.pas(193,48) Error: Incompatible types: got "AnsiString" expected "Char"
Kann mir Wer sagen was das heißen soll
Zuletzt geändert von Bauer321 am Do 16. Jun 2011, 18:37, insgesamt 1-mal geändert.
www.mcpatcher.net | www.hoeper.me

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Argument can't be assined

Beitrag von MAC »

Der Fehler ist eigentlich ein Standartfehler.
Der heißt, das ist üngültig, und dadrunter sogar noch wieso, weil der Array name (oder was auch immer name auch ist) von typ char, also ein einzelnes Zeichen und nicht von typ string (mehrere Zeichen) ist...
Heißt: suche in deinem Code

Code: Alles auswählen

name[1..16] array of char; 
{-->} name[1..16] array of string;
Wenn das schon so ist, dann liegt es wahrscheinlich daran, das der Bezeichner Name schon woanders verwendet wurde... , nenn es einfach mal Myname oder so ...

Übrigens: Du hast Copy&Paste benutzt...
bei der Routine für p und q steht noch "If Assigned(p) And (o Is TFileNameEdit)" statt p :D

Code: Alles auswählen

Signatur := nil;

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Argument can't be assined

Beitrag von Socke »

Da du einfach nur "name[x]" schreibst, wirst du auf der Eigenschaft "Name" deines Formulars landen und da dann auf dem x. Buchstaben. Tja, und wie MAC schon schreibt, kann man in einem einzelnen Buchstaben wirklich nur einen einzigen speichern und nicht eine ganze Kette davon (String).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

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: Argument can't be assined

Beitrag von carli »

Solange du uns nicht sagst, wie dpath und path definiert ist, können wir dir gar nix sagen.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Argument can't be assined

Beitrag von pluto »

Ist doch klar, wie path und dpath dekaliert sind. Es werde Strings sein.
MFG
Michael Springwald

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: Argument can't be assined

Beitrag von carli »

pluto hat geschrieben:Ist doch klar, wie path und dpath dekaliert sind. Es werde Strings sein.
Wenn das so wäre, dann hätten wir den Fehler ja gefunden. Die Adressierung der Characters via [] ist nämlich vom Datentyp Char und dem kann man keine Strings zuweisen.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Argument can't be assined

Beitrag von pluto »

Das hat doch Socke so schön beschrieben. Das ist immer das gleiche Muster in diesem Code.
MFG
Michael Springwald

Antworten