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

Вниз

Chart и Splitter   Найти похожие ветки 

 
Катерина   (2003-09-22 17:11) [0]

Run-time я создаю форму и размещаю на ней неизвестное заранее кол-во графиков (Chart), разделенных Splitter`ами, чтобы можно было вручную регулировать высоту графиков:
procedure TForm_info.But_ChartClick(Sender: TObject);
Type ChartSplType = record Chart : TChart; Spl : TSplitter; end;
var ChForm : TForm;
Charts : array of ChartSplType;
i, k : integer;
ChHeight : integer;
begin
ChForm := TForm.Create(Owner);
ChForm.Position := poScreenCenter;
ChForm.Caption := "Графическая информация";
ChForm.Height := 480;
ChForm.Width := 640;

k := ord(chOts.Checked)+
ord(chEtv.Checked)+
ord(chH.Checked)+
ord(chD.Checked)+
ord(chG.Checked)+
ord(chAn.Checked);

SetLength(Charts,k);

ChHeight := (ChForm.Height-12) div k - 7;

for i := 0 to k-1 do
begin
Charts[i].Chart := TChart.Create(Owner);
Charts[i].Chart.Parent := ChForm;
Charts[i].Chart.Align := alTop;
Charts[i].Chart.Height := ChHeight;
Charts[i].Chart.Name := "Chart"+IntToStr(i);

Charts[i].Spl := TSplitter.Create(Owner);
Charts[i].Spl.Parent := ChForm;
Charts[i].Spl.Align := alTop;
Charts[i].Spl.Height := 5;
Charts[i].Spl.MinSize := 1;
Charts[i].Spl.Beveled := TRUE;
Charts[i].Chart.Name := "Spl"+IntToStr(i);
end;

ChForm.Show;

end;

Но у меня все Splitter`ы собираются вверху, а затем следуют Chart`ы. Хотя, если вручную собираю на форме компоненты, они так и располагаются, в каком порядке я их добавляю: Chart, Splitter, Chart, Splitter. Что нужно сделать, чтобы в run-time сохранялся этот же порядок?


 
ZEE   (2003-09-22 17:28) [1]

скорее не сохраняться, а задаваться должен порядок расположения

создавая их сначала оставляй Align=alNone
потом выстраивай компонентый как надо (Top/Left)
ну а после перебирай их последовательно (сверху вниз) и ставь Align=alTop

примерно так (вероятно можно и проще)


 
афвуд   (2003-09-22 17:31) [2]

Charts[i].Spl.MinSize := 1;
Charts[i].Spl.Beveled := TRUE;
Charts[i].Chart.Name := "Spl"+IntToStr(i);
end;

Здесь вот ошибочка, вместо Chart.Name надо Spl.Name. НО это наверно проблему не решит.

Знаешь, я писал конструктор форм, наподобие дельфовского, так у меня там всё нормально, как и в Дельфе, кладёшь Chart, потом Splitter, потом опять Chart ... и всё нормально показывалось.


 
BOA_KAA   (2003-09-22 17:43) [3]

На самом деле все очень просто:

ChForm := TForm.Create(Owner);
ChForm.Position := poScreenCenter;
ChForm.Caption := "Графическая информация";
ChForm.Height := 480;
ChForm.Width := 640;

ChForm.Show;

k := ord(chOts.Checked)+
ord(chEtv.Checked)+
ord(chH.Checked)+
ord(chD.Checked)+
ord(chG.Checked)+
ord(chAn.Checked);

SetLength(Charts,k);

ChHeight := (ChForm.Height-12) div k - 7;

for i := 0 to k-1 do
begin
Charts[i].Chart := TChart.Create(Owner);
Charts[i].Chart.Parent := ChForm;
Charts[i].Chart.Align := alTop;
Charts[i].Chart.Height := ChHeight;
Charts[i].Chart.Name := "Chart"+IntToStr(i);

Charts[i].Spl := TSplitter.Create(Owner);
Charts[i].Spl.Parent := ChForm;
Charts[i].Spl.Align := alTop;
Charts[i].Spl.Height := 5;
Charts[i].Spl.MinSize := 1;
Charts[i].Spl.Beveled := TRUE;
Charts[i].Chart.Name := "Spl"+IntToStr(i);
end;


 
BOA_KAA   (2003-09-22 17:47) [4]

Виноват, обмишурился :( Прогнал для одного раза
Так они внизу соберутся. :)



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

Форум: "Основная";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
1-18448
Василиск
2003-09-24 19:28
2003.10.06
Почему в QReporte при печати текст вылезает за облать компонента?


1-18335
fc_off
2003-09-23 17:05
2003.10.06
Позиция курсора в TEdit


14-18631
jack128
2003-09-17 00:32
2003.10.06
Именинники 17 сентября


1-18396
BigVova
2003-09-25 17:46
2003.10.06
Правильный подход


1-18326
Gaber-IIEP
2003-09-23 18:39
2003.10.06
Delphi 6.0 vs Delphi 7.0





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский