-123oho "Hello I'm Marco Cantu, fuc..ing Genius and delphi guru"
Poniżej zamieszczam kod komponentu
type TDBClientBox = class( TAdvMultiColumnDropDown )
private
// Komponent - Połączenie z bazą danych
FUniConnection : TUniConnection;
// Komponent - Zapytania SQL
FUniQuery : TUniQuery;
// Lista baz danych
FDataBase : TStrings;
protected
//function SetDataBase : String;
procedure SetUniConnection( const value : TUniConnection );
procedure SetUniQuery( const value : TUniQuery );
procedure SetUniDataBase;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property UniConnection : TUniConnection read FUniConnection Write SetUniConnection;
property UniQuery : TUniQUery read FUniQuery Write SetUniQuery;
property UniDataBase : TStrings read FDataBase write FDataBase;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('SoftSource', [TDBClientBox]);
end;
//------------------------------------------------------------------------------
constructor TDBClientBox.Create(AOwner: TComponent);
begin
inherited;
self.FDataBase := TStringList.Create;
end;
//------------------------------------------------------------------------------
destructor TDBClientBox.Destroy;
begin
FreeAndNil( self.FDataBase );
inherited;
end;
//------------------------------------------------------------------------------
procedure TDBClientBox.SetUniConnection( const value: TUniConnection);
begin
self.FUniConnection := value;
self.SetUniDataBase;
end;
//------------------------------------------------------------------------------
procedure TDBClientBox.SetUniQuery( const value: TUniQuery);
begin
self.FUniQuery := value;
self.SetUniDataBase;
end;
//------------------------------------------------------------------------------
procedure TDBClientBox.SetUniDataBase;
var i : integer;
begin
if ( Assigned( self.FUniConnection )) AND ( Assigned( self.FUniQuery )) AND ( self.UniConnection.Connected ) then
with self.FUniQuery do Begin
SQL.Clear;
SQL.Add( 'Select name from sys.databases' );
Execute;
for i := 1 to RecordCount do Begin
self.FDataBase.Add( FieldByName('name').AsString );
RecNo := RecNo + 1;
End;
End;
end;
//------------------------------------------------------------------------------
w wyniku tego kodu dostaje rezultat: Załącznik1
po podpięciu komponentów: UniConnection oraz UniQuery, pole UniDataBase wypełnia mi się listą baz występujących na podłączonym serwerze.
Problem w tym, że bazy wylistowane są w formie Memo. Ja chciałbym, żeby było to w formie ComboBoxa ( załącznik nr 2 ).
Gdzie użytkownik wybiera sobie, na której bazie mój komponent ma pracować.
Pozdrawiam,