Ja tu nie widze żadnych dwóch linii.
A Tak wygląda kod pod przyciskiem do wysyłania zapytań SQL:
procedure TForm1.Button2Click(Sender: TObject);
const
SELECT_SQL = 'Select * From ';
dodatkowa_dlugosc = 10 ;
var
PNode: PVirtualNode;
PData: PVirtualRec;
pomoc, n: Integer;
max_dlugosc: array [0..30] of Integer;
QueryStr: string;
begin
//sprawdza ktore sa zaznaczone
PNode:= VirtualStringTree1.GetFirstChecked(csCheckedNormal, True);
PData:= VirtualStringTree1.GetNodeData(PNode);
//ShowMessage(PData.Caption); //SPRAWDZENIE - w puźniwjazym etapie do usunięcia
PNode:= VirtualStringTree1.FocusedNode;
PData:= VirtualStringTree1.GetNodeData(PNode); //pobieramy dane
//ShowMessage(PData.Caption); //wyswietlenie etykiety podswietlonej na niebiesko
form1.Label1.Caption:=(PData.Caption); //SPRAWDZENIE - w puźniwjazym etapie do usunięcia
if PData.Caption= 'Karty Muzyczne' then
begin
PData:= VirtualStringTree1.GetNodeData(PNode); //Nadanie nazwy tabeli do zapytania SQL
PData.TableName:= 'NB_KartyMuzyczne';
QueryStr:= SELECT_SQL + PData.TableName; //teraz w QueryStr masz cale zapytanie i robisz z nim co chcesz
ShowMessage(QueryStr); //ja je dla przykladu wyswietle
DM.ZReadOnlyQuery1.SQL.Add(QueryStr);
DM.ZReadOnlyQuery1.Active:=true;
DM.ZQuery1.SQL.Add(QueryStr);
DM.ZQuery1.Active := true;
end;
if PData.Caption= 'Dyski Twarde' then
begin
PData:= VirtualStringTree1.GetNodeData(PNode);
PData.TableName:= 'NB_HDD_SATA'; //Nadanie nazwy tabeli do zapytania SQL
QueryStr:= SELECT_SQL + PData.TableName; //teraz w QueryStr masz cale zapytanie i robisz z nim co chcesz
ShowMessage(QueryStr); //ja je dla przykladu wyswietle
DM.ZReadOnlyQuery1.SQL.Add(QueryStr);
DM.ZReadOnlyQuery1.Active:=true;
DM.ZQuery1.SQL.Add(QueryStr);
DM.ZQuery1.Active := true;
end;
//-------------------ustawienie szerokosci kolumn------------------
begin
with form1.DBGrid1 do
begin
Canvas.Font := Font;
//zapamiętanie długości napisów w tytułach kolumn
for n := 0 to Columns.Count - 1 do
max_dlugosc[n] := Canvas.TextWidth(Fields[n].FieldName) + dodatkowa_dlugosc;
DataSource.DataSet.First;
//jeśli pole jest dłuższe niż długość kolumny, to ustawiamy nowy max_dlugosc
while not DataSource.DataSet.EOF do
begin
for n := 0 to Columns.Count - 1 do
begin
pomoc := Canvas.TextWidth(trim(Columns[n].Field.DisplayText)) +
dodatkowa_dlugosc;
if pomoc > max_dlugosc[n] then max_dlugosc[n] := pomoc;
end;
DataSource.DataSet.Next;
end;
//ustawiamy nową szerokość kolumn
DataSource.DataSet.First;
for n := 0 to Columns.Count - 1 do
if max_dlugosc[n] > 0 then
Columns[n].Width := max_dlugosc[n];
end;
end;
end;