Добавлено спустя 50 секунд:
TImage:
QT работает.
GTK-2 альфа канал не работает, все маскируется. Раньше альфа канал работал, но на фоне сыпало шум
Как поняли? Можно пример?
Модератор: Модераторы
TImage:
QT работает.
GTK-2 альфа канал не работает, все маскируется. Раньше альфа канал работал, но на фоне сыпало шум
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.LoadFromFile('../ttt.png');
end;
NXP писал(а):Я использовал Daily Snapshot (win32)
Lazarus-0.9.25-fpc-2.2.3-20080807-win32.exe
Вот участки кода:
{ customcombobox.inc }
procedure TCustomComboBox.KeyUp(var Key: Word; Shift: TShiftState);
var iSelStart: Integer;
sCompleteText, sPrefixText, sResultText: String;
tmpiSelStart: Integer; //mak
begin
inherited KeyUp(Key, Shift);
if ((cbactEnabled in FAutoCompleteText) and (Style <> csDropDownList)) then
begin
//Only happens with alpha-numeric keys and return key and editable Style
if (IsEditableTextKey(Key) or (Key = VK_RETURN) or (ssShift in Shift)) then
begin
if (Key = VK_RETURN) then
SelectAll else
begin
iSelStart := SelStart;//Capture original cursor position
//End of line completion
tmpiSelStart := Length(WideString(Text));//mak Если в дальнейшем String будет определена, как WideString, - эта строка не приведет ни к каким последствиям.
if (tmpiSelStart < Length(Text)) and (tmpiSelStart = iSelStart) then tmpiSelStart := Length(Text)
else tmpiSelStart := iSelStart; //mak
if ((tmpiSelStart < Length(Text)) and (cbactEndOfLineComplete in FAutoCompleteText)) then Exit;
sPrefixText := LeftStr(Text, tmpiSelStart); //mak
sCompleteText := GetCompleteText(Text, tmpiSelStart,
(cbactSearchCaseSensitive in FAutoCompleteText),
(cbactSearchAscending in FAutoCompleteText), Items);
if not (sCompleteText = Text) then
begin
sResultText := sCompleteText;
if ((cbactEndOfLineComplete in FAutoCompleteText) and
(cbactRetainPrefixCase in FAutoCompleteText)) then
begin//Retain Prefix Character cases
Delete(sResultText, 1, tmpiSelStart); //mak
Insert(sPrefixText, sResultText, 1);
end;//End if ((cbactEndOfLineComplete in FAutoCompleteText) and....
Text := sResultText;
SelStart := iSelStart;
SelLength := Length(Text);
end;//End if not (sCompleteText = Text)
end;//End if (Key = VK_RETURN)
end;//End if (IsEditableTextKey(Key) or (Key = VK_RETURN) or (ssShift in Shift))
end;//End if ((cbactEnabled in FAutoCompleteText) and (Style = csDropDown))
//SelectAll when hitting return key for AutoSelect feature
if (Key = VK_RETURN) then
begin
if FAutoSelect then
begin
SelectAll;
if (SelText = Text) then FAutoSelected := True;
end;//End if FAutoSelect
end;//End if (Key = VK_RETURN)
end;
{ lclproc.pas }
function GetCompleteText(sText: string; iSelStart: Integer;
bCaseSensitive, bSearchAscending: Boolean; slTextList: TStrings): string;
function IsSamePrefix(sCompareText, sPrefix: string; iStart: Integer;
var ResultText: string): Boolean;
var sTempText: string;
begin
Result := False;
sTempText := LeftStr(sCompareText, iStart);
if not bCaseSensitive then sTempText := AnsiUpperCase(sTempText); //mak old UpperCase
if (sTempText = sPrefix) then
begin
ResultText := sCompareText;
Result := True;
end;//End if (sTempText = sPrefix)
end;//End function IsSamePrefix
var i: Integer;
sPrefixText: string;
begin
Result := sText;//Default to return original text if no identical text are found
if (sText = '') then Exit;//Everything is compatible with nothing, Exit.
if (iSelStart = 0) then Exit;//Cursor at beginning
if (slTextList.Count = 0) then Exit;//No text list to search for idtenticals, Exit.
sPrefixText := LeftStr(sText, iSelStart);//Get text from beginning to cursor position.
if not bCaseSensitive then
sPrefixText := AnsiUpperCase(sPrefixText); //mak old UpperCase
if bSearchAscending then
begin
for i:=0 to slTextList.Count-1 do
if IsSamePrefix(slTextList[i], sPrefixText, iSelStart, Result) then Break;
end else
begin
for i:=slTextList.Count-1 downto 0 do
if IsSamePrefix(slTextList[i], sPrefixText, iSelStart, Result) then Break;
end;//End if bSearchAscending
end;
{ fpc-2.2.2/packages/fcl-db/src/sqldb/postgres/pqconnection.pp }
function TPQConnection.TranslateFldType(res : PPGresult; Tuple : integer; var Size : integer) : TFieldType;
begin
Size := 0;
case PQftype(res,Tuple) of
Oid_varchar,Oid_bpchar,
Oid_name : begin
Result := ftstring;
size := PQfsize(Res, Tuple);
if (size = -1) then
begin
size := pqfmod(res,Tuple)-4;
// if size = -5 then size := dsMaxStringSize;//Old oreginal release
//mak release
if size = -5 then size := dsMaxStringSize
else inc(size, size); //удваиваем размер буффера
//end mak
end;
if size > dsMaxStringSize then size := dsMaxStringSize;
end;
// Oid_text : Result := ftstring;
Oid_text : Result := ftBlob;
Oid_Bytea : Result := ftBlob;
Oid_oid : Result := ftInteger;
Oid_int8 : Result := ftLargeInt;
Oid_int4 : Result := ftInteger;
Oid_int2 : Result := ftSmallInt;
Oid_Float4 : Result := ftFloat;
Oid_Float8 : Result := ftFloat;
Oid_TimeStamp : Result := ftDateTime;
Oid_Date : Result := ftDate;
Oid_Time : Result := ftTime;
Oid_Bool : Result := ftBoolean;
Oid_Numeric : begin
Result := ftBCD;
size := PQfmod(res,Tuple);
if size = -1 then
size := 4
else
size := size -4;
end;
Oid_Money : Result := ftCurrency;
Oid_Unknown : Result := ftUnknown;
else
Result := ftUnknown;
end;
end;
Logo писал(а):Я просмотрел немного LCL и понял, что идет процесс перехода на UTF. Поэтому решил выложить свое решение проблемы в TCombobox:
Logo писал(а):tmpiSelStart := Length(WideString(Text));//mak Если в дальнейшем String будет определена, как WideString, - эта строка не приведет ни к каким последствиям.
Павел Ишенин писал(а):v-t-l писал(а):Меня больше беспокоит UTF-8 в БД-компонентах. БД-контролы не знают о реальных размерах строковых полей БД и при превышении размера получаем либо обрезание строки, либо сообщение от сервера.
Нужен пример и желательно не требующий сервера - т.е. dbf.
Павел Ишенин писал(а):Logo, неужели сложно прикрепить демо-пример? ...
Локальное время
????????? ?????
TComboBox Events:
onDrawItem - не вызывается
onContextPopup - не вызывается
onMeasureItem - не вызывается
onGetItems - вызывается как onDropDown
onKeyPress - вызывается только при наборе латиницы, на кирилицу не реагирует
Кстати, QT под Linux пока до путя, наверное, тоже доводить не будут, или стоит надеяться?
И вопрос по QT для Linux. Его пока игнорировать, или этот widgetsets будет доводиться. Например, если откомпилировать IDE в QT, то Lazarus после некоторого времени работы, или простоя просто виснет, не реагируя ни на что.
Компилятор жалуется на Дубликат идентефикатора Height.
в QT по прежнему первый символ остается тот, что ввели, а не тот, что в списке.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 32