Entwickler-Ecke
Windows API - Was übergeben um Array[0..255] of Char zu füllen
Tweafis - Sa 21.06.03 14:06
Titel: Was übergeben um Array[0..255] of Char zu füllen
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure ListboxAddItem(hWnd: HWND; ItemText: array of Char); var buffer: Array[0..255] of Char; begin buffer := ItemText; SendMessage(hwndListbox, LB_ADDSTRING, 0, Integer(@buffer)); end; |
Mit diesem Code probiere ich einer Listbox Items hinzuzufügen.
Wenn ich bei ItemText ein DWOrd übergebe und dcirekt an SendMEssage weitergebe geht es, also so:
Delphi-Quelltext
1: 2:
| buffer := 'Bla'; ListboxAddItem(hwndListbox, Integer(@buffer)); |
Was muss ich der proc übergeben damit es geht?
Delete - Sa 21.06.03 15:21
Delphi-Quelltext
1: 2: 3: 4:
| procedure ListboxAddItem(hWnd: HWND; ItemText: String); begin ´ SendMessage(hwndListbox, LB_ADDSTRING, 0, Integer(@ItmeText[1])); end; |
Versuch es mal so. :wink:
Tweafis - Sa 21.06.03 21:37
Hmm, das geht :D
Wird mit @ItemText[1] Der Pointer auf das erste Zeichen des Strings übergeben? und bei @buffer der Pointer auf das erste Array Element.
Kleine Frage, wie kann ich einen buffer mit einem anderen string verbinden, mit lstrcat geht es ja nicht (ist wohl kein neuer Thread nötig, oder?)
Delete - Sa 21.06.03 22:11
Erste Frage: Ja.
Zweite Frage: Geht auch mit lstrcat.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var s1, s2: String; buffer: array[0..255] of Char; begin lstrcat(buffer, @s[1]); s1 := String(buffer)+s2; |
Tweafis - Sa 21.06.03 22:17
Ich glaube ich muss mir das mit den Array of Char nochmal anschauen. Ein string ist doch auch nur ein Array of Char, oder? nur halt nicht null-terminiert
TomT - So 22.06.03 03:47
nee, an stelle 0 steht beim datentyp string die anzahl der stellen bzw. zeichen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!