Autor Beitrag
delphi10
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 447
Erhaltene Danke: 2

W2K, XP, Vista64, Win7 64
RAD-Studio 2010
BeitragVerfasst: Do 29.01.09 22:21 
Hallo

Weiß jemand warum
ausblenden 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

_________________
Salus populi suprema lex esto
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19340
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 447
Erhaltene Danke: 2

W2K, XP, Vista64, Win7 64
RAD-Studio 2010
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
DriveList := Form5.GetLogicalDrivesStr(false);
// Inhalt = 'CDEFGHIJKN'
Form5.CheckBox1.Hint := DriveList[n];
// Keine Anzeige
// Schreib ich so:
Form5.CheckBox1.Hint := 'Laufwerk: ' + DriveList[n];
// wird nur Laufwerk: angezeigt

_________________
Salus populi suprema lex esto
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19340
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 447
Erhaltene Danke: 2

W2K, XP, Vista64, Win7 64
RAD-Studio 2010
BeitragVerfasst: Do 29.01.09 23:32 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
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
ausblenden 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.

_________________
Salus populi suprema lex esto
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19340
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 29.01.09 23:39 
Naja, weil ich habe das ausprobiert, das klappt problemlos. :nixweiss:
ausblenden 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.
Einloggen, um Attachments anzusehen!
delphi10 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 447
Erhaltene Danke: 2

W2K, XP, Vista64, Win7 64
RAD-Studio 2010
BeitragVerfasst: 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

_________________
Salus populi suprema lex esto