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

Вниз

Создание компонентов в run-time?   Найти похожие ветки 

 
yusla   (2005-06-28 09:48) [0]

помогите разобраться пожайлуста,
есть код:
tForm.Create(self).Name := "login";
with tForm(FindComponent("login")) do
 begin
  Position := poDesktopCenter; BorderStyle := bsDialog;
  Height := 100; Width := 200;
 end;
tEdit.Create(self).Name := "useredit";
with tEdit(FindComponent("useredit")) do
  begin
   Parent := tForm(FindComponent("login"));
   Left := 10; Top := 10;
  end;
tForm(FindComponent("login")).ShowModal;

почему то Edit не появляется на форме login 8(


 
evvcom ©   (2005-06-28 09:57) [1]

Мрак. Все через ... сделано.

var Form: TForm;

...
Form := TForm.Create(Application);
Form.Name := "login"; // Хотя это необязательно вовсе
Form.Position := poDesktopCenter;
Form.SetBounds(Left, Top, 200, 100); // Вместо отдельных присваиваний Height и Width


 
Ega23 ©   (2005-06-28 10:00) [2]


var
aForm:TForm;
begin
aForm:=tForm.Create(self).Name := "login";
with aForm do
begin
 Position := poDesktopCenter; BorderStyle := bsDialog;
 Height := 100; Width := 200;
end;
tEdit.Create(aForm).Name := "useredit";
with tEdit(FindComponent("useredit")) do
 begin
  Parent := aForm;
  Left := 10; Top := 10;
 end;
aForm.ShowModal;

.....



 
evvcom ©   (2005-06-28 10:23) [3]


> aForm:=tForm.Create(self).Name := "login";

Это чего это ты такое намутил?


 
Ega23 ©   (2005-06-28 10:26) [4]

Это чего это ты такое намутил?

Да текст егоный впопыхах правил. Вот:



function ShowSQLDebugMessages:Boolean;
       procedure BtnClearClick(Sender:TObject);
       var
        i:Integer;
       begin
        if (Sender is TForm) then
         begin
          With TForm(Sender) do
           begin
            for i:=0 to ControlCount-1 do
             if (Controls[i] is TMemo) then
              if UpperCase(TMemo(Controls[i]).Name)=UpperCase("memSQLLogMonitor") then
               begin
                TMemo(Controls[i]).Clear;
                TMemo(Controls[i]).Lines.SaveToFile(ExtractFilePath(Application.ExeName)+"SQLLog.log");
                Break;
               end;
           end;//With TForm(Sender) do
         end;//if (Sender is TForm) then
       end;//procedure BtnClearClick(
var
aForm:TForm;
OnClearClick:TMethod;
List:TStringList;
i:Integer;
begin
Result:=False;
try
 Application.CreateForm(TForm, aForm);
 try
  With aForm do
   begin
    Caption:="SQL Transaction Log";
    BorderStyle:=bsSingle;
    Height:=500;
    Width:=750;
    Position:=poScreenCenter;
   end;
  With TMemo.Create(aForm) do
   begin
    Parent:=aForm;
    Name:="memSQLLogMonitor";
    Align:=alTop;
    ScrollBars:=ssBoth;
    Height:=440;
    Clear;
    if FileExists(ExtractFilePath(Application.ExeName)+"SQLLog.log") then
     begin
      List:=TStringList.Create;
      List.LoadFromFile(ExtractFilePath(Application.ExeName)+"SQLLog.log");
      for i:=List.Count-1 downto 0 do Lines.Add(List.Strings[i]);
      List.Free;
     end;
   end;
  With TButton.Create(aForm) do
   begin
    Parent:=aForm;
    Cancel:=True;
    Height:=25;
    Width:=100;
    Font.Size:=10;
    Top:=aForm.ClientHeight-30;
    Left:=aForm.ClientWidth-110;
    Caption:="Çàêðûòü";
    ModalResult:=mrOK;
   end;
  With TButton.Create(aForm) do
   begin
    Parent:=aForm;
    Height:=25;
    Width:=100;
    Font.Size:=10;
    Top:=aForm.ClientHeight-30;
    Left:=aForm.ClientWidth-220;
    Caption:="Î÷èñòèòü";
    OnClearClick.Code:=@BtnClearClick;
    OnClearClick.Data:=aForm;
    OnClick:=TNotifyEvent(OnClearClick);
   end;
  aForm.ShowModal;
 finally
  aForm.Free;
 end;
except on E:Exception do
 raise Exception.Create("ShowSQLDebugMessages "+E.Message);
end;
end;



 
-=XP=- ©   (2005-06-28 10:41) [5]

      procedure BtnClearClick(Sender:TObject);
      var
       i:Integer;
      begin
       if (Sender is TForm) then
        begin
         With TForm(Sender) do
          begin
           for i:=0 to ControlCount-1 do
            if (Controls[i] is TMemo) then
             if UpperCase(TMemo(Controls[i]).Name)=UpperCase("memSQLLogMonitor") then
              begin
               TMemo(Controls[i]).Clear;
               TMemo(Controls[i]).Lines.SaveToFile(ExtractFilePath(Application.ExeName)+"SQLLog.log");
               Break;
              end;
          end;//With TForm(Sender) do
        end;//if (Sender is TForm) then
      end;//procedure BtnClearClick(


Извините, это что?


 
Ega23 ©   (2005-06-28 10:42) [6]

Извините, это что?

Это? Это КАРИЕС!!!!   :-))))))))


 
-=XP=- ©   (2005-06-28 10:46) [7]

Боюсь, гораздо ниже... :-(


 
Ega23 ©   (2005-06-28 11:26) [8]

Боюсь, гораздо ниже... :-(

Не спорю. Писалось очень давно. Сейчас сделал бы совсем по другому.


 
-=XP=- ©   (2005-06-28 11:32) [9]

Не спорю. Писалось очень давно. Сейчас сделал бы совсем по другому.

Нет. Я не совсем про это. Для чего это?


 
Ega23 ©   (2005-06-28 11:39) [10]

Ну как же? Это "реакция" на нажатие кнопки "Стереть".
Просто функция содержится в библиотеке, там ей подобных - штук 20. ErrorLog вывести, параметры соединения с БД посмотреть, и т.п.


 
evvcom ©   (2005-06-28 11:48) [11]

Судя по
> function ShowSQLDebugMessages:Boolean;
здесь нет Self, и в
> procedure BtnClearClick(Sender:TObject);
тоже нет Self, а в TNotifyEvent передается 2 параметра: неявно Self и явно Sender. Кроме того BtnClearClick является процедурой внутри функции, а там происходят некие фокусы вокруг ebp. Сомневаюсь, что такие манипуляции будут корректны даже при использовании function TMyClass.ShowSQLDebugMessages:Boolean;
Надо будет посмотреть на досуге.


 
-=XP=- ©   (2005-06-28 11:49) [12]

Ну да ладно. Не суть важно.
Хотя, покоя не дает вторая строка:

TMemo(Controls[i]).Clear;
TMemo(Controls[i]).Lines.SaveToFile(ExtractFilePath(Application.ExeName)+"SQLLog.log");


Буду считать, что это рабочая версия. ;-)


 
Ega23 ©   (2005-06-28 11:57) [13]

Дык не просто с экрана, а И с экрана, И файл зачистить.


 
-=XP=- ©   (2005-06-28 12:00) [14]

А! Семен Семеныч!

:-)



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

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

Наверх




Память: 0.49 MB
Время: 0.041 c
1-1120118956
Андрей_СК
2005-06-30 12:09
2005.07.18
Прикрепление одной формы к другой


14-1119507902
ntman
2005-06-23 10:25
2005.07.18
Закачка файла


14-1119877554
Axis_of_Evil
2005-06-27 17:05
2005.07.18
Outsourcing


14-1119601302
Ломброзо
2005-06-24 12:21
2005.07.18
Flash - ссылкой?


14-1120006103
Витёк
2005-06-29 04:48
2005.07.18
Изменить память по адресу





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