![]() |
Zeigeroperation
Guten Abend,
Ich entschuldige mich erstmal für den Threadtitel, mir ist einfach nichts eingefallen wie ich mein Problem in wenigen Worten hätte umreißen können. :? Mein Problem ist folgendes:
Delphi-Quellcode:
Ich möchte in einem Memo (hier genannt 'membuffer') nach einem best. String suchen und je nach Ergebnis einen best. Button beschriften. Zufälligerweise ( :mrgreen: ) heißen die Strings, nach denen in einer Schleife gesucht werden soll, genau gleich wie die Buttons, von denen einer je nach Ergebnis beschriftet werden soll.
{Delphi 5 Std.}
function membufferscan(a:string) : boolean; begin if pos(a, Form1.membuffer.Lines.Text) > 0 then Result := true else result := false; end; [...] procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var strings: array [1..9] of string; x:integer; p:^string; begin strings[1] := 'FEins'; strings[2] := 'FZwei'; strings[3] := 'FDrei'; strings[4] := 'FVier'; strings[5] := 'FFuenf'; strings[6] := 'FSechs'; strings[7] := 'FSieben'; strings[8] := 'FAcht'; strings[9] := 'FNeun'; for x:=1 to 9 do begin if membufferscan(strings[x]) = true then begin break; p := @x; p^:= strings[x]; p^.caption := 'X'; {hier findet der fehler statt} end; Das Ganze wollte ich an dieser Stelle (nach einer absurden Idee xD ) mit einem Zeiger lösen, aber irgendwie will Delphi an dieser Stelle nicht ganz wie ich :( Der angezeigte Fehler lautet 'Record, Objekt oder Klassentyp erforderlich'. Nun meine Frage: Ist solch eine Operation nicht möglich wie ich das hier beabsichtige? Wenn ja wie? :) Ich bedanke mich schon einmal für Antworten und Hilfestellungen. MfG |
Re: Zeigeroperation
Ich sehe keinen Zeiger. Ich würde das Memo/die StringListe auch als Parameter übergeben
|
Re: Zeigeroperation
Zeiger seh ich zwar, aber was du damit machst ... naja :roll:
ich werf' da einfach mal ![]() |
Re: Zeigeroperation
Ich war gestern wohl etwas blind. der Code lässt sich ja ausklappen :oops:
|
Re: Zeigeroperation
Ein ^String hat keine .Caption Property.
Außerdem verlässt du den Block durch "break" bereits, bevor der darunterstehende Code ausgeführt werden kann? :gruebel: Und überhaupt ist dein Code irgendwie ... komisch. :mrgreen: |
Re: Zeigeroperation
jaa war ein wenig dumm...im grunde ging es eigentlich nur darum über den string den gleichnamigen button anzusprechen :duck: :mrgreen:
|
Re: Zeigeroperation
Das geht erstmal schöner:
Zitat:
Du brauchst einen Button (var b: TButton) und dessen Name mit
Delphi-Quellcode:
kannst du den zuweisen, und dann mit b.caption dessen caption setzen.
b := TButton(FindComponent('meintollerbutton'));
Allerdings solltest du noch darauf achten, dass der Button wirklich existiert [edit=mkinzler]Codehighlighting eingefügt Mfg, mkinzler[/edit] |
Re: Zeigeroperation
Eon Softcast wäre wohl besser oder vorher auf Typ prüfen
Delphi-Quellcode:
b := (FindComponent('meintollerbutton') as TButton);
|
Re: Zeigeroperation
Zitat:
Zitat:
vielen dank! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz