Einzelnen Beitrag anzeigen

stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: verschiedene Hilfetexte auf einer PaintBox

  Alt 31. Dez 2004, 17:22
Also, hier die Lösung dafür, dass ausserhalb der Objekte nichts angezeigt wird...

Delphi-Quellcode:
procedure THotelForm.PaintBox1MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
var mausPos: TPoint;
    zma, i: Integer;
    merker: Boolean;
begin
  mausPos.X := x-hRand;
  mausPos.Y := y-vRand;
  zma := length(zimmerObj);
  merker:= false;

  for i := 0 to zma-1 do
  begin
    if zimmerObj[i].clicked(mausPos) = true then
    begin
      PaintBox1.ShowHint := false;
      PaintBox1.Hint := 'Zimmer ' + zimmerObj[i].zimNum + ': wieder frei am ' +
                        FormatDateTime('dd.mm.yyyy', zimmerObj[i].buchung.abreise);
      PaintBox1.ShowHint := true;
      merker := true;
    end;
  end;
  if merker = false then
  begin
    PaintBox1.ShowHint := false;
    PaintBox1.Hint := '';
    PaintBox1.ShowHint := true;
  end;
end;
Ich habe einen Merker eingeführt, der am Anfang des Ereignisses auf false gestellt wird.
Sobald ein Objekt mit clicked=true antwortet, wird dieser auch auf true gesetzt. Ein Objekt ist von der Maus erfasst.
Sind alle Objekte durch laufen, und ist der Merker immer noch false, ist kein Objekt markiert und Hint wird auf null gesetzt.
Mit else konnte es nicht gehen, weil dieses else innerhalb der for-Schleife stand. Da nach einem positiven Objekt kein Abbruch der Schleife stattfand, wurde immer noch einmal else ausgeführt...

Also, mein Problem liegt immer noch darin, dass ich nicht hintereinander zweimal einen Hilfetext anzeigen lassen kann, ohne die Paintbox zwischen durch mit der Maus zuverlassen...
Wer kann mir helfen??? Zur Not im neuen Jahr!!!

Ich wünsche einen guten Rutsch!!!
stoermi
  Mit Zitat antworten Zitat