Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.07;
Скачать: CL | DM;

Вниз

Выборка из ListBox a   Найти похожие ветки 

 
ezh   (2002-02-18 14:15) [0]

Здравствуйте!
У меня есть такой вопрос.
На форме есть TPageControl с двумя страничками, на первой есть TStringGrid. Нужно во второй столбик по PopUpMenu вызвать скрытый ListBox и выбрать из него какойнибудь элемент и поместить его во второй столбик и в строчку, по которой щёлкнули.


 
MBo ©   (2002-02-18 14:26) [1]

пояснее бы


 
ezh ©   (2002-02-18 14:30) [2]

Вот я привожу текст программы
unit Main;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, Menus, ComCtrls, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Menu: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
EditMenu: TPopupMenu;
IzSpiska: TMenuItem;
PageControl1: TPageControl;
SpisRab: TTabSheet;
usgrd: TStringGrid;
PoGodam: TTabSheet;
SvodSpis: TStringGrid;
Spisok: TListBox;
procedure FormCreate(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure IzSpiskaClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
i,a:integer;
TempSpisok:TListBox;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
USgrd.Cells[0,0]:="";
USgrd.Cells[1,0]:="";
USgrd.Cells[2,0]:="";
USgrd.Cells[3,0]:="";
USgrd.Cells[4,0]:="";
USgrd.Cells[5,0]:="";
USgrd.Cells[6,0]:="";
USgrd.Cells[7,0]:="";
USgrd.Cells[8,0]:="";
end;

procedure TForm1.N2Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.N3Click(Sender: TObject);
begin
Form2.Show;
Form1.Enabled:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
{i:=Spisok.SelCount;
a:=usgrd.Row;
usgrd.Cells[2,2]:=Spisok.Items.Strings[i];}
end;

procedure TForm1.IzSpiskaClick(Sender: TObject);
begin

Spisok.Parent:=PageControl1.Pages[1];
Spisok.Top:=24+usgrd.DefaultRowHeight*usgrd.RowCount;
Spisok.Visible:=True;
Spisok.Enabled:=True;
Spisok.SetFocus;
end;

end.


 
MBo ©   (2002-02-18 15:12) [3]

а надо именно по меню или просто SelectCell подойдет?


 
ezh ©   (2002-02-18 17:56) [4]

Мне врочем надо, чтобы ЛистБокс высвечивался под нужной строкой, по нужному элементу тыкаешь два раза, и он добавляется в СтрингГрид.


 
MBo ©   (2002-02-19 06:37) [5]

вот как можно с комбобоксом (IMHO в Grid он симпатичнее Listbox-а)
procedure TForm1.sg1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
var
R: TRect;
begin
if ARow =1 then //второй ряд
begin
R := SG1.CellRect(ACol, ARow);
cb1.left := R.Left+ SG1.Left+1;
cb1.top := R.Top + sg1.top+1;
cb1.Width := sg1.ColWidths[acol];
cb1.Tag:=ACol+65536*ARow;//запоминаем ячейку, здесь можно только ACol
cb1.Visible := True;
cb1.SetFocus;
end;
CanSelect := True;
end;

procedure TForm1.cb1Change(Sender: TObject);
begin
SG1.Cells[cb1.Tag mod 65536,cb1.tag div 65536]:=
cb1.Items[cb1.itemindex];
cb1.visible:=false;
end;

procedure TForm1.cb1Exit(Sender: TObject);
begin
cb1.visible:=false;
end;


 
Ezh ©   (2002-02-19 11:58) [6]

Very BIG Thanks! Большое спасибо, всё классно получилось, так и вправду симпатичнее!


 
Ezh ©   (2002-02-21 14:52) [7]

У меня снова есть вопросец:
один столбик полностью не влазит в стирггрид(точнее 5), а на нем стоит выбор из комбобокса, когда выделяешь ячейку из этого столбика, он (столбик) передвигается (скроллируется стрингрид), а комбобокс остается на прежнем месте, тем самым получается очень приочень некрасиво.
Посоветуйте кто-нибудь что-нибудь, чтобы это исправить.
Если надо, то могу выслать исходники проги.


 
MBo ©   (2002-02-21 15:52) [8]

изучи свойства, методы и события stringgrid
procedure TForm1.sg1TopLeftChanged(Sender: TObject);
var
R: TRect;
begin
R := SG1.CellRect(cb1.Tag mod 65536,cb1.tag div 65536);
cb1.left := R.Left+ SG1.Left+1;
end;



Страницы: 1 вся ветка

Текущий архив: 2002.03.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
14-19326
Геннадий Михалев
2002-01-19 18:29
2002.03.07
Вопрос коммерч. характера.


1-19234
kaif
2002-02-17 17:55
2002.03.07
Как спастись от авторазмера MDIChildren?


14-19304
ZEE
2002-01-21 02:49
2002.03.07
Resource WorkShop


4-19395
JS
2002-01-06 00:56
2002.03.07
Загрузка DLL в чужой процесс


6-19288
greenrul
2001-12-21 17:36
2002.03.07
Помогите с отсылкой POST из программы в скрипт