AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Alles richtig, trotzdem "Incompatible Types TString List and Integer"?
Thema durchsuchen
Ansicht
Themen-Optionen

Alles richtig, trotzdem "Incompatible Types TString List and Integer"?

Ein Thema von pmros · begonnen am 9. Sep 2015 · letzter Beitrag vom 10. Sep 2015
Antwort Antwort
Seite 1 von 2  1 2      
pmros

Registriert seit: 8. Sep 2015
22 Beiträge
 
#1

Alles richtig, trotzdem "Incompatible Types TString List and Integer"?

  Alt 9. Sep 2015, 21:05
Delphi-Version: 7
Kann da mal schnell jemand drüber schauen und mir sagen, warum

Delphi-Quellcode:
function commands (request:string):TStringList; stdcall;
var
s1, s2, s3: String;
Liste: TStringList;

begin
s1:='H';
s2:='G0';
s3:='G1';
Liste := TStringList.Create;
Liste:=
    Liste.Add(s1);
    Liste.Add(s2);
    Liste.Add(s3);

result:=Liste;
end;

exports commands;

Das hier ausgibt?!:

Code:
[Error] Project2.dpr(24): Incompatible types: 'TStringList' and 'Integer'
Ich habe doch s1 - s3 als strings definiert und nicht als integer, wo ist denn das Problem?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Alles richtig, trotzdem "Incompatible Types TString List and Integer"?

  Alt 9. Sep 2015, 21:09
Du willst ein Objekt aus einer DLL zurückgeben? Das wird so nichts. Informiere dich mal über "DLL und Objekte".
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#3

AW: Alles richtig, trotzdem "Incompatible Types TString List and Integer"?

  Alt 9. Sep 2015, 21:12
Delphi-Quellcode:
function commands (request:string):TStringList; stdcall;
var
s1, s2, s3: String;
Liste: TStringList;

begin
s1:='H';
s2:='G0';
s3:='G1';
Liste := TStringList.Create;
Liste:= //schau mal hier
    Liste.Add(s1); // und hier
    Liste.Add(s2);
    Liste.Add(s3);

result:=Liste;
end;

exports commands;
Du weist der Stringliste mit dem Namen "Liste" den Rückgabewert der Funktion Liste.Add zu. Und dies ist der Index des eingefügten Wertes, also ein Integer, denn die markierten Zeilen Deines Quelltextes ergeben:

Delphi-Quellcode:

Liste := Liste.Add(s1);

Ob das mit der Übergabe funktioniert, wie Luckie moniert, hat ersteinmal nichts mit dem jetzt erzeugten Fehler zu tun.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.

Geändert von BadenPower ( 9. Sep 2015 um 21:15 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Alles richtig, trotzdem "Incompatible Types TString List and Integer"?

  Alt 9. Sep 2015, 21:15
Das auch, aber der Fehler ist in hier:
Delphi-Quellcode:
Liste:=
    Liste.Add(s1);
Liste.Add gibt den Index des neu hinzugefügten Eintrages zurück ( ein Integer) welchen Du dann der Liste zuweisen willst.
Markus Kinzler
  Mit Zitat antworten Zitat
pmros

Registriert seit: 8. Sep 2015
22 Beiträge
 
#5

AW: Alles richtig, trotzdem "Incompatible Types TString List and Integer"?

  Alt 9. Sep 2015, 21:16
Du weist der Stringliste mit dem Namen "Liste" den Rückgabewert der Funktion Liste.Add zu. Und dies ist der Index des eingefügten Wertes, also ein Integer, denn die markierten Zeilen Deines Quelltextes ergeben:

Ob das mit der Übergabe funktioniert, wie Luckie moniert, hat ersteinmal nichts mit dem jetzt erzeugten Fehler zu tun.
Gnah, natürlich. Übersehen. Vielen Dank. Und ja, doch. Es funktioniert jetzt. Ich kann die Stringliste übergeben.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: Alles richtig, trotzdem "Incompatible Types TString List and Integer"?

  Alt 9. Sep 2015, 21:17
Auch wenn ich nicht weiß, ob mein Vorschlag auch nur ansatzweise sinnvoll erscheinen könnte, vermutlich hätte ich es so gemacht:
Delphi-Quellcode:
function commands (request:string):TStringList; stdcall;
begin
Result := TStringList.Create;
Result.Add('H');
Result.Add('G0');
Result.Add('G1');
end;
Was soll denn hier passieren?
Delphi-Quellcode:
Liste:=
    Liste.Add(s1);
Add ist eine Methode von Liste, aber die weist man doch nicht bei dem Aufruf gleichzeitig wieder der Liste zu?

Auch dashier verstehe ich nicht:result:=Liste; mit einem result.AddStrings(Liste); und dem dann zwingend folgende Liste.Free könnte ich ja noch leben.

Geändert von nahpets ( 9. Sep 2015 um 21:17 Uhr) Grund: immer diese Schreibfehler :-(
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Alles richtig, trotzdem "Incompatible Types TString List and Integer"?

  Alt 9. Sep 2015, 21:18
Ob das mit der Übergabe funktioniert, wie Luckie moniert, hat ersteinmal nichts mit dem jetzt erzeugten Fehler zu tun.
Ich als Visionär sehe nur das große Ganze.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Alles richtig, trotzdem "Incompatible Types TString List and Integer"?

  Alt 9. Sep 2015, 21:19
Ich kann die Stringliste übergeben.
Das dürfte aber nur gehen, wenn du die Sharemem.dll einbindest.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

AW: Alles richtig, trotzdem "Incompatible Types TString List and Integer"?

  Alt 9. Sep 2015, 21:21
Wann, und wie, wenn überhaupt, wird die Stringliste denn wieder freigegeben?
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#10

AW: Alles richtig, trotzdem "Incompatible Types TString List and Integer"?

  Alt 9. Sep 2015, 21:23
Ob das mit der Übergabe funktioniert, wie Luckie moniert, hat ersteinmal nichts mit dem jetzt erzeugten Fehler zu tun.
Ich als Visionär sehe nur das große Ganze.
Dafür war ich mal schneller als mkinzler.

Aber auch der Einwand von nahpets hat seine Berechtigung und sollte berücksichtigt werden.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz