Zitat von
Gerrit89:
Ich hab nicht behauptet, dass ich es besser weiß.
Ich zitiere: "es geht sogar einfacher
"
Zitat von
Gerrit89:
Es sind alles ganz normale Aussagen und bei mir tickt jeder völlig durch.
Keine Angst, so ist es nicht. Ich bezog mich einzig auf deine (von mir vermutete) Lernresistenz.
Zitat von
Gerrit89:
Habt ihr alle was gegen mich oder so?
Dank Waffengesetz: Nein
Zitat von
Gerrit89:
Ich versteh das mit dem Pointer auch nicht. Du hast es in deinen Quelltexten oben genau so gemacht
... und gesagt, daß es ein String sein soll. Bei einem String in Delphi (üblicherweise LongString/AnsiString) ist das erste Zeichen s[1] und damit der Pointer auf das erste Zeichen @s[1] vom Typ PChar.
Zitat von
Gerrit89:
Ich versteh die Welt nich mehr was das jetz sollte
Verstehst du's jetzt? Der Parameter muß auf einen Puffer zeigen der die Zeichenkette dann bekommt. Deshalb ist es korrekt entweder einen Puffer zu allozieren (GetMem/GetMemory usw) und einer PChar-Variablen zuzuweisen, oder - einfacher - die Länge eines Strings entsprechend zu erweitern (entspricht dem Allozieren) und dann einen Pointer auf das erste Zeichen, eben @s[1] zu übergeben.
Was du gemacht hast, ist, einen Pointer auf einen (nicht-zugewiesenen) Pointer auf ein Zeichen zu übergeben. Das kann zwar gutgehen, wie man bei dir gesehen hat, dies ist aber eher eine Ausnahme bzw. Zufall. Auf alle Fälle ist es Mist!
Zitat von
Gerrit89:
Delphi-Quellcode:
var
Text: String;
...
edit1 := GetDlgItem(hwnd, 1);
edit2 := GetDlgItem(hwnd, 2);
Length := SendMessage(edit1, WM_GETTEXTLENGTH, 0, 0) + 1;
SetLength(Text, Length);
SendMessage(edit1, WM_GETTEXT, Length, Integer(PChar(Text)));
SendMessage(edit2, WM_SETTEXT, Length, Integer(PChar(Text)));
Das entspricht exakt meinem Vorschlag, wobei PChar(s) eine Variante ist, die ich aus verschiedenen Gründen nicht mag, die aber auch ihre Berechtigung hat. Für Details suchst du nach
Motzis (Manuel Pöter) String-
Tutorial. Ich bevorzuge @s[1], es ist aber an dieser Stelle äquivalent!
Zitat von
Gerrit89:
Und nochmal: Ich freue mich über eure Hilfsbereitschaft und finde es schade, dass sich manche durch irgendwelche Sachen sofort aufn Schlips getreten fühlen. Ich hab mich einfach nach dem Codeschnippsel gerichtet, wo Pointer verwendet wurden, es hat funktioniert und war etwas kürzer als das Beispiel. Also wollt ich der Allgemeinheit mitteilen, dass es einfacher geht, weil ich es für korrekt gehalten habe. Wenn du das jetzt innen falschen Hals bekommen hast, dann werd ich mich wohl nächstes Mal deutlicher ausdrücken...
Kein Problem. Ich ging von Lernresistenz aus. Hast ja nachgewiesen, daß dem nicht so ist.
Ganz schön spät für eine(n) 5jährige(n)