Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Problem mit Hint und Variablenverknüpfung
delphi10 - Do 29.01.09 22:21
Titel: Problem mit Hint und Variablenverknüpfung
Hallo
Weiß jemand warum
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| Hint := hint + String; oder Hint := String; nicht funktioniert, dagegen Hint := 'Text'; ohne Probleme läuft? |
Eine Recherche über alle postings ergab, dass es vielleicht an der Delphi-Version liegen könnte. Kann das jemand sicher bestätigen?
Besten Dank
Gruß Delphi10
jaenicke - Do 29.01.09 22:29
Das sollte normalerweise keine Probleme machen. Hast du ein konkretes Beispiel?
Und was heißt es läuft nicht? Passiert nix? Hat Hint einen falschen Inhalt? Gibt es einen Fehler beim Kompilieren?
Ein Problem kann dabei z.B. auftreten, wenn du z.B. durch eine Bereichsüberschreitung bei dynamischen Arrays aus Versehen einen falschen Speicherbereich überschrieben hast. Denn das äußert sich dann durch solche "unerklärlichen Phänomene".
delphi10 - Do 29.01.09 23:05
Hallo Jaenicke
Danke für die schnelle Antwort.
Bei Zuweisung einer reinen Stringvariablen wird hint leer, bzw. nicht angezeigt.
Bei Zuweisung eines Textes + String wird nur der Text angezeigt. Ein Array benutze ich nicht, es sind immer explizit einzelne Zuweisungen.
Bespiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| DriveList := Form5.GetLogicalDrivesStr(false); Form5.CheckBox1.Hint := DriveList[n]; Form5.CheckBox1.Hint := 'Laufwerk: ' + DriveList[n]; |
jaenicke - Do 29.01.09 23:13
Was ist n? Liegt das sicher im Bereich der Stringlänge?
Wenn dabei eine Bereichsüberschreitung auftritt, dann wird dies nicht angezeigt, es sei denn du aktivierst das in den Optionen.
delphi10 - Do 29.01.09 23:32
jaenicke hat folgendes geschrieben : |
Was ist n? Liegt das sicher im Bereich der Stringlänge?
Wenn dabei eine Bereichsüberschreitung auftritt, dann wird dies nicht angezeigt, es sei denn du aktivierst das in den Optionen. |
n soll hier - wie üblich - bei allgemeinen Erläuterungen einen beliebigen Wert in gültigen Grenzen ersetzen. Ich hätte auch schreiben können
Delphi-Quelltext
1:
| Form5.CheckBox1.Hint := 'Laufwerk: ' + DriveList[2]; |
Ja, n liegt sicher im Bereich der Stringlänge. Die einfachen möglichen Ursachen habe ich schon mal ausgeschlossen.
jaenicke - Do 29.01.09 23:39
Naja, weil ich habe das ausprobiert, das klappt problemlos. :nixweiss:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm144.Button1Click(Sender: TObject);
function GetMyString: string; var i: Integer; begin for i := 65 to 70 do Result := Result + Chr(i); end;
var a: string; n: Integer; begin a := GetMyString; n := Length(a) div 2; Form144.CheckBox1.Hint := 'Laufwerk: ' + a[n]; end; |
Testprojekt mit diesem Quelltext inkl. Exe und auch von Delphi 2006 (die steht bei dir ja im Profil) im Anhang.
delphi10 - Fr 30.01.09 22:24
Hallo Jaenicke
Besten Dank für Deine Hilfe. Also, Dein Kompilat lief auch bei mir sofort und nachdem ich die Sourcen bei mir kompiliert habe, funktionierte das auch sofort. Weiß der Teufel warum, aber danach(sic) lief auch mein Programm richtig. Was auch immer da verklemmt war, ich kann den Fehler nicht mehr reproduzieren. Vielleicht steige ich da später nochmal ein, im Moment ist es ja ok. Nochmals Danke.
cu delphi10
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!