Hoi Mensen,
Ik ben nieuw met Lazarus.
Ik heb een Delphi unit die ik wil gebruiken in Lazarus.
Delphi Code:
function TMyHintWindow.CalcHintRect(MaxWidth: Integer; const AHint: string; AData: Pointer): TRect;
var
vLineBreaks :Integer;
xx :Integer;
LongestStr :string;
begin
Canvas.Font.Name := SingletonHintTeksten.FontName;
Canvas.Font.Size := SingletonHintTeksten.FontSize;
xx:=0;
LongestStr:=LongestString(AHint);
vLineBreaks:=Occurrences(sLineBreak,AHint);
if SingletonHintTeksten.ShowTitle then
begin
Result := Rect(0,0,Canvas.TextWidth(LongestStr),((vLineBreaks+2)*Canvas.TextHeight(AHint))+10) // +2 : 1 extra voor de kop en 1 extra omdat bij 1 enter er twee regels bestaan.
end
else
begin
Result := Rect(0,0,Canvas.TextWidth(LongestStr),((vLineBreaks+1)*Canvas.TextHeight(AHint))+5) // +1 : 1 extra omdat bij 1 enter er twee regels bestaan.
end;
end;
Bij regel 14 wordt na een build devolgende melding gegeven:
Code:
F:\lazarus\lcl\uhintteksten.pp(77,23) Fatal: Syntax error, ")" expected but "," found.
De cursor staat dan op de komma achter de eerste 0 (nul).
Als ik CTRL-SHIFT-SPACE indruk, staat er dat ik tussen de haakjes inderdaad Left, Top, Right, Bottom moet opgeven.
Wat doe ik fout?
Ter aanvulling:
vLineBreaks = Het aantal linebreaks in de hint tekst.
LongestString = De langste regel in de hint tekst. Die gebruik ik om de breedte van de hint te bepalen.
Bookmarks