Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];

Вниз

Выборка из 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-19166
igorr
2002-02-21 15:59
2002.03.07
Копирование в буфер


1-19120
mr_X
2002-02-13 14:40
2002.03.07
MDI


3-19099
kserg@ukr.net
2002-02-07 10:53
2002.03.07
Нужен совет: что лучше использовать для создания отчетов?


4-19396
BorisM
2002-01-07 19:40
2002.03.07
Как сделать Paste в другое приложение


1-19214
macinsoft
2002-02-19 13:39
2002.03.07
Копирование свойств объекта





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский