property BorderWidth;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property Hint;
property Constraints;
property Min;
property Max;
property Orientation;
property ParentShowHint;
property PopupMenu;
property Position;
property ShowFrame: boolean read FShowFrame write SetShowFrame;
property ShowHint;
property Smooth;
property Step;
property TabOrder;
property TabStop;
property Visible;
property OnContextPopup;
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end;
procedure Register;
implementation
{ TVSProgressBar }
constructor TVSProgressBar.Create(AOwner: TComponent);
begin
Inherited;
FShowFrame:= True;
end;
procedure TVSProgressBar.SetShowFrame(Value: boolean);
begin
if FShowFrame <> Value then begin
FShowFrame:= Value;
RecreateWnd;
end;
end;
procedure TVSProgressBar.WMNCPAINT(var Msg: TMessage);
var
DC: HDC;
RC: TRect;
begin
if ShowFrame then begin
Inherited; // если рамка – родитель сам разберется
Invalidate;
end else begin
DC := GetWindowDC(Handle);
try
Windows.GetClientRect(Handle, RC); // площадка под ProgressBar
with RC do begin // учтем 3D эффект
Right:= Right + 2;
Bottom:= Bottom + 2;
end;
Windows.FillRect(DC, RC, Brush.Handle); // зальем площадку цветом подложки
finally
ReleaseDC(Handle, DC);
end;
end;
end;
procedure Register;
begin
RegisterComponents('Controls', [TVSProgressBar]);
end;
end.
Теперь ProgressBar может появиться на форме «неожиданно», как бы из ничего, если ShowFrame:= False.
C уважением, VS
Query
Можно ли использовать результаты выполнения одного TQuery для другого TQuery?
Nomadic отвечает:
Если Вы работаете с локальными БД, то Вам поможет –
DbiMakePermanent(SourceQuery.Handle, RName, false);
Можно ли вызвать хранимую процедуру через TQuery, если она не возвращает курсора?
Nomadic отвечает:
В случае MS SQL нужно написать:
Query1.Sql := 'declare @res' + #13#10 + 'exec MyFunc :Param1, :Param2, @res OUTPUT';
Query1.Open;
Result := Query1.FieldByName( 'Column1' ).Value;
Query1.Close;
TQUERY и TDBGRID
Delphi 1
1. После ключевого слова where используйте оператор order
Select fname, lname, title
from T_EMPLOYEE
where title = 'MGR'
order by lname, fname
2. Попробуйте использовать событие ColEnter.
Две и более команд в свойстве TQUERY.SQL
Delphi 1
Я предлагаю вас попытаться подключить новый запрос к существующему TQuery.
Query1.Sql.Clear;
Query1.Close;
Query1.Sql.Add('select * from «monitor.dbf» order by location,dept');
Query1.Open;
Query1.Refresh;
Хитрость кроется в закрытии вашего запроса перед назначением нового.
RichEdit
Как вставить в нужное место Rich Text в TRichEdit?
Nomadic советует:
Вы можете послать сообщение EM_STREAMIN с параметром SFF_SELECTION методом Perform для замены текущего Selection. Выдержка из Help: