Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
ВнизСоздание компонентов в 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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.047 c