Caption ändern mit OnMouseDown
Ich möchte die Caption eines Panels mit einem Rechtsklick ändern, aber Ich weiß nicht, warum mein Versuch fehlschlägt.
procedure TForm1.P_0_0MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);Bitte nicht zu kompliziert. Bin auf Schulniveau :) Und entschuldugt bitte, falls mein Beitrag im falschen Thema ist. Bin neu hier. |
AW: Caption ändern mit OnMouseDown
Und was geht nicht?
|
AW: Caption ändern mit OnMouseDown
Bei mir funktioniert das. Ist der EventHandler auch dem Ereignis zugewiesen (Objektinspektor)?
|
AW: Caption ändern mit OnMouseDown
Funktioniert aber nur, wenn das 1. Zeiche von P_0_0.Caption ein 'F', '_' oder '?' ist.
Wenn das 1. Zeichen auch etwas anderes sein konnte, dann so:
Delphi-Quellcode:
procedure TForm1.P_0_0MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var s: string; c: char; begin s := P_0_0.Caption; c := s[1]; if (Button = mbRight) then begin case c of '_': c := 'F'; 'F': c := '?'; '?': c := '_'; else c := '_'; // <- hinzufügen end; end; P_0_0.Caption := c; end; |
AW: Caption ändern mit OnMouseDown
Interessant wäre welche Caption das Panel ganz zu Anfang hat. Wenn das erste Zeichen kein _, F oder ? ist, dann klappt das nicht. Ansonsten müssts klappen.
|
AW: Caption ändern mit OnMouseDown
Also wenn schon, dann IMO eher so:
Delphi-Quellcode:
procedure TForm1.P_0_0MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var s: string; c: char; begin s := P_0_0.Caption; //Standard bei Leerstring setzen if s <> '' then c := s[1] else c := '_'; if (Button = mbRight) then begin case c of '_': c := 'F'; 'F': c := '?'; else c := '_'; end; end; P_0_0.Caption := c; end; |
AW: Caption ändern mit OnMouseDown
Zitat:
Ich wollte doch nur auf die nächste Frage warten, die dann gelautet hätte: "Ich bekomme eine Zugriffverletzung" in der Zeile:
Delphi-Quellcode:
c := s[1];
|
AW: Caption ändern mit OnMouseDown
Man muss die Threads ja nicht künstlich in die Länge ziehen, es gibt schon genug, wo seitenweise über Kleinigkeiten diskutiert wird.
|
AW: Caption ändern mit OnMouseDown
Zitat:
Aber der Lerneffekt für "Greife nie auf Dinge zu, die eventuell nicht da sind." wäre größer gewesen. Jetzt hat er eine Lösung und weiss warscheinlich gar nicht, wo ohne die If-Abfrage das Problem gewesen wäre. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz